diff --git a/epi_judge_cpp/absent_value_array.cc b/epi_judge_cpp/absent_value_array.cc index 770cbbfc9..40b3872ce 100644 --- a/epi_judge_cpp/absent_value_array.cc +++ b/epi_judge_cpp/absent_value_array.cc @@ -20,11 +20,12 @@ int FindMissingElementWrapper(const vector& stream) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"stream"}; - generic_test_main(argc, argv, param_names, "absent_value_array.tsv", - &FindMissingElementWrapper); + GenericTestMain(args, "absent_value_array.tsv", &FindMissingElementWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/adding_credits.cc b/epi_judge_cpp/adding_credits.cc index a5d016675..a779b2abf 100644 --- a/epi_judge_cpp/adding_credits.cc +++ b/epi_judge_cpp/adding_credits.cc @@ -71,11 +71,12 @@ void ClientsCreditsInfoTester(const std::vector& ops) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"ops"}; - generic_test_main(argc, argv, param_names, "adding_credits.tsv", - &ClientsCreditsInfoTester); + GenericTestMain(args, "adding_credits.tsv", &ClientsCreditsInfoTester, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/advance_by_offsets.cc b/epi_judge_cpp/advance_by_offsets.cc index b0ec6cfdf..9db655cc4 100644 --- a/epi_judge_cpp/advance_by_offsets.cc +++ b/epi_judge_cpp/advance_by_offsets.cc @@ -7,11 +7,12 @@ bool CanReachEnd(const vector& max_advance_steps) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"max_advance_steps"}; - generic_test_main(argc, argv, param_names, "advance_by_offsets.tsv", - &CanReachEnd); + GenericTestMain(args, "advance_by_offsets.tsv", &CanReachEnd, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/alternating_array.cc b/epi_judge_cpp/alternating_array.cc index b293cd03f..88166ceaf 100644 --- a/epi_judge_cpp/alternating_array.cc +++ b/epi_judge_cpp/alternating_array.cc @@ -44,11 +44,12 @@ void RearrangeWrapper(TestTimer& timer, vector A) { CheckAnswer(A); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "A"}; - generic_test_main(argc, argv, param_names, "alternating_array.tsv", - &RearrangeWrapper); + GenericTestMain(args, "alternating_array.tsv", &RearrangeWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/anagrams.cc b/epi_judge_cpp/anagrams.cc index 05b2508c7..18dfea711 100644 --- a/epi_judge_cpp/anagrams.cc +++ b/epi_judge_cpp/anagrams.cc @@ -9,12 +9,13 @@ vector> FindAnagrams(const vector& dictionary) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"dictionary"}; - generic_test_main( - argc, argv, param_names, "anagrams.tsv", &FindAnagrams, - &UnorderedComparator>>); + GenericTestMain(args, "anagrams.tsv", &FindAnagrams, + &UnorderedComparator>>, + param_names); return 0; } diff --git a/epi_judge_cpp/apply_permutation.cc b/epi_judge_cpp/apply_permutation.cc index 02b6bc5d9..1f0186e73 100644 --- a/epi_judge_cpp/apply_permutation.cc +++ b/epi_judge_cpp/apply_permutation.cc @@ -12,11 +12,12 @@ vector ApplyPermutationWrapper(vector perm, vector A) { return A; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"perm", "A"}; - generic_test_main(argc, argv, param_names, "apply_permutation.tsv", - &ApplyPermutationWrapper); + GenericTestMain(args, "apply_permutation.tsv", &ApplyPermutationWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/arbitrage.cc b/epi_judge_cpp/arbitrage.cc index 2f15e8749..5b5c89dfe 100644 --- a/epi_judge_cpp/arbitrage.cc +++ b/epi_judge_cpp/arbitrage.cc @@ -7,11 +7,12 @@ bool IsArbitrageExist(vector> graph) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"graph"}; - generic_test_main(argc, argv, param_names, "arbitrage.tsv", - &IsArbitrageExist); + GenericTestMain(args, "arbitrage.tsv", &IsArbitrageExist, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/binomial_coefficients.cc b/epi_judge_cpp/binomial_coefficients.cc index dd2545c2f..571f60e9a 100644 --- a/epi_judge_cpp/binomial_coefficients.cc +++ b/epi_judge_cpp/binomial_coefficients.cc @@ -5,11 +5,13 @@ int ComputeBinomialCoefficient(int n, int k) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n", "k"}; - generic_test_main(argc, argv, param_names, "binomial_coefficients.tsv", - &ComputeBinomialCoefficient); + GenericTestMain(args, "binomial_coefficients.tsv", + &ComputeBinomialCoefficient, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/bonus.cc b/epi_judge_cpp/bonus.cc index 080a3b8e5..512931b30 100644 --- a/epi_judge_cpp/bonus.cc +++ b/epi_judge_cpp/bonus.cc @@ -7,10 +7,12 @@ int CalculateBonus(const vector& productivity) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"productivity"}; - generic_test_main(argc, argv, param_names, "bonus.tsv", &CalculateBonus); + GenericTestMain(args, "bonus.tsv", &CalculateBonus, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/bst_from_preorder.cc b/epi_judge_cpp/bst_from_preorder.cc index f0af4ef5b..711bd9db6 100644 --- a/epi_judge_cpp/bst_from_preorder.cc +++ b/epi_judge_cpp/bst_from_preorder.cc @@ -11,11 +11,12 @@ unique_ptr> RebuildBSTFromPreorder( return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"preorder_sequence"}; - generic_test_main(argc, argv, param_names, "bst_from_preorder.tsv", - &RebuildBSTFromPreorder); + GenericTestMain(args, "bst_from_preorder.tsv", &RebuildBSTFromPreorder, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/bst_from_sorted_array.cc b/epi_judge_cpp/bst_from_sorted_array.cc index ebc54b740..a679cd0af 100644 --- a/epi_judge_cpp/bst_from_sorted_array.cc +++ b/epi_judge_cpp/bst_from_sorted_array.cc @@ -26,11 +26,13 @@ int BuildMinHeightBSTFromSortedArrayWrapper(TestTimer& timer, return BinaryTreeHeight(result); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "A"}; - generic_test_main(argc, argv, param_names, "bst_from_sorted_array.tsv", - &BuildMinHeightBSTFromSortedArrayWrapper); + GenericTestMain(args, "bst_from_sorted_array.tsv", + &BuildMinHeightBSTFromSortedArrayWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/bst_merge.cc b/epi_judge_cpp/bst_merge.cc index db23b39db..61b3aafcc 100644 --- a/epi_judge_cpp/bst_merge.cc +++ b/epi_judge_cpp/bst_merge.cc @@ -10,10 +10,12 @@ shared_ptr> MergeTwoBSTs(shared_ptr> A, return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "B"}; - generic_test_main(argc, argv, param_names, "bst_merge.tsv", &MergeTwoBSTs); + GenericTestMain(args, "bst_merge.tsv", &MergeTwoBSTs, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/bst_to_sorted_list.cc b/epi_judge_cpp/bst_to_sorted_list.cc index 443a3f615..e08e3506b 100644 --- a/epi_judge_cpp/bst_to_sorted_list.cc +++ b/epi_judge_cpp/bst_to_sorted_list.cc @@ -33,11 +33,12 @@ std::vector BSTToDoublyLinkedListWrapper( return v; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree"}; - generic_test_main(argc, argv, param_names, "bst_to_sorted_list.tsv", - &BSTToDoublyLinkedListWrapper); + GenericTestMain(args, "bst_to_sorted_list.tsv", &BSTToDoublyLinkedListWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/buy_and_sell_stock.cc b/epi_judge_cpp/buy_and_sell_stock.cc index 4c979f710..654deeefd 100644 --- a/epi_judge_cpp/buy_and_sell_stock.cc +++ b/epi_judge_cpp/buy_and_sell_stock.cc @@ -7,11 +7,12 @@ double BuyAndSellStockOnce(const vector& prices) { return 0.0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"prices"}; - generic_test_main(argc, argv, param_names, "buy_and_sell_stock.tsv", - &BuyAndSellStockOnce); + GenericTestMain(args, "buy_and_sell_stock.tsv", &BuyAndSellStockOnce, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/buy_and_sell_stock_k_times.cc b/epi_judge_cpp/buy_and_sell_stock_k_times.cc index 46864297e..c2301d36b 100644 --- a/epi_judge_cpp/buy_and_sell_stock_k_times.cc +++ b/epi_judge_cpp/buy_and_sell_stock_k_times.cc @@ -7,11 +7,12 @@ double BuyAndSellStockKTimes(const vector& prices, int k) { return 0.0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"prices", "k"}; - generic_test_main(argc, argv, param_names, "buy_and_sell_stock_k_times.tsv", - &BuyAndSellStockKTimes); + GenericTestMain(args, "buy_and_sell_stock_k_times.tsv", + &BuyAndSellStockKTimes, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/buy_and_sell_stock_twice.cc b/epi_judge_cpp/buy_and_sell_stock_twice.cc index 6df815a76..cad4b14ad 100644 --- a/epi_judge_cpp/buy_and_sell_stock_twice.cc +++ b/epi_judge_cpp/buy_and_sell_stock_twice.cc @@ -7,11 +7,12 @@ double BuyAndSellStockTwice(const vector& prices) { return 0.0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"prices"}; - generic_test_main(argc, argv, param_names, "buy_and_sell_stock_twice.tsv", - &BuyAndSellStockTwice); + GenericTestMain(args, "buy_and_sell_stock_twice.tsv", &BuyAndSellStockTwice, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/calendar_rendering.cc b/epi_judge_cpp/calendar_rendering.cc index 72e1037ee..78a762f32 100644 --- a/epi_judge_cpp/calendar_rendering.cc +++ b/epi_judge_cpp/calendar_rendering.cc @@ -16,11 +16,12 @@ int FindMaxSimultaneousEvents(const vector& A) { template <> struct SerializationTraits : UserSerTraits {}; -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "calendar_rendering.tsv", - &FindMaxSimultaneousEvents); + GenericTestMain(args, "calendar_rendering.tsv", &FindMaxSimultaneousEvents, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/circular_queue.cc b/epi_judge_cpp/circular_queue.cc index 340e83068..52f148024 100644 --- a/epi_judge_cpp/circular_queue.cc +++ b/epi_judge_cpp/circular_queue.cc @@ -81,11 +81,12 @@ void QueueTester(const std::vector& ops) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"ops"}; - generic_test_main(argc, argv, param_names, "circular_queue.tsv", - &QueueTester); + GenericTestMain(args, "circular_queue.tsv", &QueueTester, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/closest_int_same_weight.cc b/epi_judge_cpp/closest_int_same_weight.cc index 2e4c3f0b0..3bd277a22 100644 --- a/epi_judge_cpp/closest_int_same_weight.cc +++ b/epi_judge_cpp/closest_int_same_weight.cc @@ -5,11 +5,12 @@ unsigned long ClosestIntSameBitCount(unsigned long x) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "closest_int_same_weight.tsv", - &ClosestIntSameBitCount); + GenericTestMain(args, "closest_int_same_weight.tsv", &ClosestIntSameBitCount, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/collatz_checker.cc b/epi_judge_cpp/collatz_checker.cc index 6d65f0e1d..d8a907976 100644 --- a/epi_judge_cpp/collatz_checker.cc +++ b/epi_judge_cpp/collatz_checker.cc @@ -7,11 +7,12 @@ bool TestCollatzConjecture(int n) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n"}; - generic_test_main(argc, argv, param_names, "collatz_checker.tsv", - &TestCollatzConjecture); + GenericTestMain(args, "collatz_checker.tsv", &TestCollatzConjecture, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/combinations.cc b/epi_judge_cpp/combinations.cc index 57f1f6f50..b3211c61a 100644 --- a/epi_judge_cpp/combinations.cc +++ b/epi_judge_cpp/combinations.cc @@ -7,11 +7,13 @@ vector> Combinations(int n, int k) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n", "k"}; - generic_test_main(argc, argv, param_names, "combinations.tsv", &Combinations, - &UnorderedComparator>>); + GenericTestMain(args, "combinations.tsv", &Combinations, + &UnorderedComparator>>, + param_names); return 0; } diff --git a/epi_judge_cpp/convert_base.cc b/epi_judge_cpp/convert_base.cc index e65dd71e2..408a8b049 100644 --- a/epi_judge_cpp/convert_base.cc +++ b/epi_judge_cpp/convert_base.cc @@ -7,10 +7,12 @@ string ConvertBase(const string& num_as_string, int b1, int b2) { return ""; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"num_as_string", "b1", "b2"}; - generic_test_main(argc, argv, param_names, "convert_base.tsv", &ConvertBase); + GenericTestMain(args, "convert_base.tsv", &ConvertBase, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/copy_posting_list.cc b/epi_judge_cpp/copy_posting_list.cc index 92432c692..0a37a184a 100644 --- a/epi_judge_cpp/copy_posting_list.cc +++ b/epi_judge_cpp/copy_posting_list.cc @@ -92,11 +92,12 @@ void CopyPostingsListWrapper(TestTimer& timer, AssertListsEqual(head, copy); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "l"}; - generic_test_main(argc, argv, param_names, "copy_posting_list.tsv", - &CopyPostingsListWrapper); + GenericTestMain(args, "copy_posting_list.tsv", &CopyPostingsListWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/count_bits.cc b/epi_judge_cpp/count_bits.cc index b707ff6f8..1a68a2455 100644 --- a/epi_judge_cpp/count_bits.cc +++ b/epi_judge_cpp/count_bits.cc @@ -4,10 +4,12 @@ short CountBits(unsigned int x) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "count_bits.tsv", &CountBits); + GenericTestMain(args, "count_bits.tsv", &CountBits, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/count_inversions.cc b/epi_judge_cpp/count_inversions.cc index 814cc93c1..70c44a8fe 100644 --- a/epi_judge_cpp/count_inversions.cc +++ b/epi_judge_cpp/count_inversions.cc @@ -7,11 +7,12 @@ int CountInversions(vector A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "count_inversions.tsv", - &CountInversions); + GenericTestMain(args, "count_inversions.tsv", &CountInversions, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/deadlock_detection.cc b/epi_judge_cpp/deadlock_detection.cc index 99009c611..d4571c6e1 100644 --- a/epi_judge_cpp/deadlock_detection.cc +++ b/epi_judge_cpp/deadlock_detection.cc @@ -49,11 +49,12 @@ bool HasCycleWrapper(TestTimer& timer, int num_nodes, return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "num_nodes", "edges"}; - generic_test_main(argc, argv, param_names, "deadlock_detection.tsv", - &HasCycleWrapper); + GenericTestMain(args, "deadlock_detection.tsv", &HasCycleWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/defective_jugs.cc b/epi_judge_cpp/defective_jugs.cc index 3dd55d83d..9c88388b3 100644 --- a/epi_judge_cpp/defective_jugs.cc +++ b/epi_judge_cpp/defective_jugs.cc @@ -20,11 +20,12 @@ bool operator==(const Jug& lhs, const Jug& rhs) { return lhs.low == rhs.low && lhs.high == rhs.high; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"jugs", "L", "H"}; - generic_test_main(argc, argv, param_names, "defective_jugs.tsv", - &CheckFeasible); + GenericTestMain(args, "defective_jugs.tsv", &CheckFeasible, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/delete_from_list.cc b/epi_judge_cpp/delete_from_list.cc index 027f234e9..b109dc01f 100644 --- a/epi_judge_cpp/delete_from_list.cc +++ b/epi_judge_cpp/delete_from_list.cc @@ -27,11 +27,12 @@ shared_ptr> DeleteFromListWrapper( return head; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "head", "node_idx"}; - generic_test_main(argc, argv, param_names, "delete_from_list.tsv", - &DeleteFromListWrapper); + GenericTestMain(args, "delete_from_list.tsv", &DeleteFromListWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/delete_kth_last_from_list.cc b/epi_judge_cpp/delete_kth_last_from_list.cc index 47214e1a2..95986827f 100644 --- a/epi_judge_cpp/delete_kth_last_from_list.cc +++ b/epi_judge_cpp/delete_kth_last_from_list.cc @@ -11,11 +11,12 @@ shared_ptr> RemoveKthLast(const shared_ptr>& L, return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L", "k"}; - generic_test_main(argc, argv, param_names, "delete_kth_last_from_list.tsv", - &RemoveKthLast); + GenericTestMain(args, "delete_kth_last_from_list.tsv", &RemoveKthLast, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/delete_node_from_list.cc b/epi_judge_cpp/delete_node_from_list.cc index 8d7b9b1bf..cdc8dad38 100644 --- a/epi_judge_cpp/delete_node_from_list.cc +++ b/epi_judge_cpp/delete_node_from_list.cc @@ -22,11 +22,12 @@ shared_ptr> DeletionFromListWrapper( return head; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "head", "node_to_delete_idx"}; - generic_test_main(argc, argv, param_names, "delete_node_from_list.tsv", - &DeletionFromListWrapper); + GenericTestMain(args, "delete_node_from_list.tsv", &DeletionFromListWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/descendant_and_ancestor_in_bst.cc b/epi_judge_cpp/descendant_and_ancestor_in_bst.cc index 32c108e6f..844a5bc0f 100644 --- a/epi_judge_cpp/descendant_and_ancestor_in_bst.cc +++ b/epi_judge_cpp/descendant_and_ancestor_in_bst.cc @@ -27,14 +27,15 @@ bool PairIncludesAncestorAndDescendantOfMWrapper( return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree", "possible_anc_or_desc_0", "possible_anc_or_desc_1", "middle"}; - generic_test_main(argc, argv, param_names, - "descendant_and_ancestor_in_bst.tsv", - &PairIncludesAncestorAndDescendantOfMWrapper); + GenericTestMain(args, "descendant_and_ancestor_in_bst.tsv", + &PairIncludesAncestorAndDescendantOfMWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/directory_path_normalization.cc b/epi_judge_cpp/directory_path_normalization.cc index 08235b923..50dcfa863 100644 --- a/epi_judge_cpp/directory_path_normalization.cc +++ b/epi_judge_cpp/directory_path_normalization.cc @@ -7,11 +7,12 @@ string ShortestEquivalentPath(const string& path) { return ""; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"path"}; - generic_test_main(argc, argv, param_names, "directory_path_normalization.tsv", - &ShortestEquivalentPath); + GenericTestMain(args, "directory_path_normalization.tsv", + &ShortestEquivalentPath, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/do_lists_overlap.cc b/epi_judge_cpp/do_lists_overlap.cc index 48b4d77c0..251db9d5e 100644 --- a/epi_judge_cpp/do_lists_overlap.cc +++ b/epi_judge_cpp/do_lists_overlap.cc @@ -84,12 +84,13 @@ void OverlappingListsWrapper(TestTimer& timer, shared_ptr> l0, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "l0", "l1", "common", "cycle0", "cycle1"}; - generic_test_main(argc, argv, param_names, "do_lists_overlap.tsv", - &OverlappingListsWrapper); + GenericTestMain(args, "do_lists_overlap.tsv", &OverlappingListsWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/do_terminated_lists_overlap.cc b/epi_judge_cpp/do_terminated_lists_overlap.cc index ba0720a6b..aaf4115be 100644 --- a/epi_judge_cpp/do_terminated_lists_overlap.cc +++ b/epi_judge_cpp/do_terminated_lists_overlap.cc @@ -47,11 +47,13 @@ void OverlappingNoCycleListsWrapper(TestTimer& timer, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "l0", "l1", "common"}; - generic_test_main(argc, argv, param_names, "do_terminated_lists_overlap.tsv", - &OverlappingNoCycleListsWrapper); + GenericTestMain(args, "do_terminated_lists_overlap.tsv", + &OverlappingNoCycleListsWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/drawing_skyline.cc b/epi_judge_cpp/drawing_skyline.cc index 16f039ca2..e564e2209 100644 --- a/epi_judge_cpp/drawing_skyline.cc +++ b/epi_judge_cpp/drawing_skyline.cc @@ -26,11 +26,12 @@ std::ostream& operator<<(std::ostream& out, const Rectangle& r) { return EpiPrint(out, std::make_tuple(r.left, r.right, r.height)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"buildings"}; - generic_test_main(argc, argv, param_names, "drawing_skyline.tsv", - &ComputeSkyline); + GenericTestMain(args, "drawing_skyline.tsv", &ComputeSkyline, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/dutch_national_flag.cc b/epi_judge_cpp/dutch_national_flag.cc index aa0323dfd..13596aeee 100644 --- a/epi_judge_cpp/dutch_national_flag.cc +++ b/epi_judge_cpp/dutch_national_flag.cc @@ -49,11 +49,12 @@ void DutchFlagPartitionWrapper(TestTimer& timer, const vector& A, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "A", "pivot_idx"}; - generic_test_main(argc, argv, param_names, "dutch_national_flag.tsv", - &DutchFlagPartitionWrapper); + GenericTestMain(args, "dutch_national_flag.tsv", &DutchFlagPartitionWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/element_appearing_once.cc b/epi_judge_cpp/element_appearing_once.cc index 968797da2..fd1cca03d 100644 --- a/epi_judge_cpp/element_appearing_once.cc +++ b/epi_judge_cpp/element_appearing_once.cc @@ -7,11 +7,12 @@ int FindElementAppearsOnce(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "element_appearing_once.tsv", - &FindElementAppearsOnce); + GenericTestMain(args, "element_appearing_once.tsv", &FindElementAppearsOnce, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/enumerate_balanced_parentheses.cc b/epi_judge_cpp/enumerate_balanced_parentheses.cc index 23cd209e3..ad7ecd187 100644 --- a/epi_judge_cpp/enumerate_balanced_parentheses.cc +++ b/epi_judge_cpp/enumerate_balanced_parentheses.cc @@ -9,12 +9,13 @@ vector GenerateBalancedParentheses(int num_pairs) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"num_pairs"}; - generic_test_main( - argc, argv, param_names, "enumerate_balanced_parentheses.tsv", - &GenerateBalancedParentheses, &UnorderedComparator>); + GenericTestMain(args, "enumerate_balanced_parentheses.tsv", + &GenerateBalancedParentheses, + &UnorderedComparator>, param_names); return 0; } diff --git a/epi_judge_cpp/enumerate_palindromic_decompositions.cc b/epi_judge_cpp/enumerate_palindromic_decompositions.cc index 226abdce8..56dd90fb8 100644 --- a/epi_judge_cpp/enumerate_palindromic_decompositions.cc +++ b/epi_judge_cpp/enumerate_palindromic_decompositions.cc @@ -17,12 +17,12 @@ bool Comp(vector> expected, vector> result) { return expected == result; }; -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"input"}; - generic_test_main(argc, argv, param_names, - "enumerate_palindromic_decompositions.tsv", - &PalindromeDecompositions, &Comp); + GenericTestMain(args, "enumerate_palindromic_decompositions.tsv", + &PalindromeDecompositions, &Comp, param_names); return 0; } diff --git a/epi_judge_cpp/enumerate_trees.cc b/epi_judge_cpp/enumerate_trees.cc index 61eeb0f94..6023636a1 100644 --- a/epi_judge_cpp/enumerate_trees.cc +++ b/epi_judge_cpp/enumerate_trees.cc @@ -43,11 +43,12 @@ vector> GenerateAllBinaryTreesWrapper(TestTimer& timer, return serialized; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "num_nodes"}; - generic_test_main(argc, argv, param_names, "enumerate_trees.tsv", - &GenerateAllBinaryTreesWrapper); + GenericTestMain(args, "enumerate_trees.tsv", &GenerateAllBinaryTreesWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/evaluate_rpn.cc b/epi_judge_cpp/evaluate_rpn.cc index 05f67a05f..1111d9367 100644 --- a/epi_judge_cpp/evaluate_rpn.cc +++ b/epi_judge_cpp/evaluate_rpn.cc @@ -7,10 +7,12 @@ int Evaluate(const string& expression) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"expression"}; - generic_test_main(argc, argv, param_names, "evaluate_rpn.tsv", &Evaluate); + GenericTestMain(args, "evaluate_rpn.tsv", &Evaluate, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/even_odd_array.cc b/epi_judge_cpp/even_odd_array.cc index 5b4f538c6..883ffbd6b 100644 --- a/epi_judge_cpp/even_odd_array.cc +++ b/epi_judge_cpp/even_odd_array.cc @@ -35,11 +35,12 @@ void EvenOddWrapper(TestTimer& timer, vector A) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "A"}; - generic_test_main(argc, argv, param_names, "even_odd_array.tsv", - &EvenOddWrapper); + GenericTestMain(args, "even_odd_array.tsv", &EvenOddWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/even_odd_list_merge.cc b/epi_judge_cpp/even_odd_list_merge.cc index 8d3f478fd..e06d768d9 100644 --- a/epi_judge_cpp/even_odd_list_merge.cc +++ b/epi_judge_cpp/even_odd_list_merge.cc @@ -6,11 +6,12 @@ shared_ptr> EvenOddMerge(const shared_ptr>& L) { return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L"}; - generic_test_main(argc, argv, param_names, "even_odd_list_merge.tsv", - &EvenOddMerge); + GenericTestMain(args, "even_odd_list_merge.tsv", &EvenOddMerge, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/find_salary_threshold.cc b/epi_judge_cpp/find_salary_threshold.cc index 5b77a5317..9449ca20d 100644 --- a/epi_judge_cpp/find_salary_threshold.cc +++ b/epi_judge_cpp/find_salary_threshold.cc @@ -7,11 +7,12 @@ double FindSalaryCap(int target_payroll, vector current_salaries) { return 0.0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"target_payroll", "current_salaries"}; - generic_test_main(argc, argv, param_names, "find_salary_threshold.tsv", - &FindSalaryCap); + GenericTestMain(args, "find_salary_threshold.tsv", &FindSalaryCap, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/first_missing_positive_entry.cc b/epi_judge_cpp/first_missing_positive_entry.cc index 122ef7b4c..1fa326d8e 100644 --- a/epi_judge_cpp/first_missing_positive_entry.cc +++ b/epi_judge_cpp/first_missing_positive_entry.cc @@ -8,11 +8,12 @@ int FindFirstMissingPositive(vector A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "first_missing_positive_entry.tsv", - &FindFirstMissingPositive); + GenericTestMain(args, "first_missing_positive_entry.tsv", + &FindFirstMissingPositive, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/gcd.cc b/epi_judge_cpp/gcd.cc index ccfaf0143..11c108060 100644 --- a/epi_judge_cpp/gcd.cc +++ b/epi_judge_cpp/gcd.cc @@ -4,10 +4,11 @@ long long Gcd(long long x, long long y) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x", "y"}; - generic_test_main(argc, argv, param_names, "gcd.tsv", &Gcd); + GenericTestMain(args, "gcd.tsv", &Gcd, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/graph_clone.cc b/epi_judge_cpp/graph_clone.cc index bc5410c06..cc4dd6c24 100644 --- a/epi_judge_cpp/graph_clone.cc +++ b/epi_judge_cpp/graph_clone.cc @@ -90,11 +90,12 @@ void CloneGraphTest(int k, const vector& edges) { CheckAndDeallocateGraph(result, graph); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"k", "edges"}; - generic_test_main(argc, argv, param_names, "graph_clone.tsv", - &CloneGraphTest); + GenericTestMain(args, "graph_clone.tsv", &CloneGraphTest, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/gray_code.cc b/epi_judge_cpp/gray_code.cc index 4dbe65c6a..ff03f8bbd 100644 --- a/epi_judge_cpp/gray_code.cc +++ b/epi_judge_cpp/gray_code.cc @@ -47,10 +47,12 @@ void GrayCodeWrapper(TestTimer& timer, int num_bits) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "num_bits"}; - generic_test_main(argc, argv, param_names, "gray_code.tsv", &GrayCodeWrapper); + GenericTestMain(args, "gray_code.tsv", &GrayCodeWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/group_equal_entries.cc b/epi_judge_cpp/group_equal_entries.cc index ba6a0eebb..050f9cffb 100644 --- a/epi_judge_cpp/group_equal_entries.cc +++ b/epi_judge_cpp/group_equal_entries.cc @@ -57,11 +57,12 @@ void GroupByAgeWrapper(TestTimer& timer, vector& people) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "people"}; - generic_test_main(argc, argv, param_names, "group_equal_entries.tsv", - &GroupByAgeWrapper); + GenericTestMain(args, "group_equal_entries.tsv", &GroupByAgeWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/hanoi.cc b/epi_judge_cpp/hanoi.cc index 0f509d15f..613912371 100644 --- a/epi_judge_cpp/hanoi.cc +++ b/epi_judge_cpp/hanoi.cc @@ -48,11 +48,12 @@ void ComputeTowerHanoiWrapper(TestTimer& timer, int num_rings) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "num_rings"}; - generic_test_main(argc, argv, param_names, "hanoi.tsv", - &ComputeTowerHanoiWrapper); + GenericTestMain(args, "hanoi.tsv", &ComputeTowerHanoiWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/huffman_coding.cc b/epi_judge_cpp/huffman_coding.cc index a2bd06eba..b78850675 100644 --- a/epi_judge_cpp/huffman_coding.cc +++ b/epi_judge_cpp/huffman_coding.cc @@ -38,11 +38,12 @@ double HuffmanEncodingWrapper(vector symbols) { return huffman::HuffmanEncoding(&symbols); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"symbols"}; - generic_test_main(argc, argv, param_names, "huffman_coding.tsv", - &HuffmanEncodingWrapper); + GenericTestMain(args, "huffman_coding.tsv", &HuffmanEncodingWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/insert_in_list.cc b/epi_judge_cpp/insert_in_list.cc index 8f774b49e..9064fc51a 100644 --- a/epi_judge_cpp/insert_in_list.cc +++ b/epi_judge_cpp/insert_in_list.cc @@ -28,12 +28,13 @@ shared_ptr> InsertListWrapper(TestTimer& timer, return l; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "l", "node_idx", "new_node_data"}; - generic_test_main(argc, argv, param_names, "insert_in_list.tsv", - &InsertListWrapper); + GenericTestMain(args, "insert_in_list.tsv", &InsertListWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/insert_operators_in_string.cc b/epi_judge_cpp/insert_operators_in_string.cc index 29a44a0dc..3fd4dd5db 100644 --- a/epi_judge_cpp/insert_operators_in_string.cc +++ b/epi_judge_cpp/insert_operators_in_string.cc @@ -7,11 +7,12 @@ bool ExpressionSynthesis(const vector& digits, int target) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"digits", "target"}; - generic_test_main(argc, argv, param_names, "insert_operators_in_string.tsv", - &ExpressionSynthesis); + GenericTestMain(args, "insert_operators_in_string.tsv", &ExpressionSynthesis, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/int_as_array_increment.cc b/epi_judge_cpp/int_as_array_increment.cc index 922de490f..dc3568784 100644 --- a/epi_judge_cpp/int_as_array_increment.cc +++ b/epi_judge_cpp/int_as_array_increment.cc @@ -7,11 +7,12 @@ vector PlusOne(vector A) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "int_as_array_increment.tsv", - &PlusOne); + GenericTestMain(args, "int_as_array_increment.tsv", &PlusOne, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/int_as_array_multiply.cc b/epi_judge_cpp/int_as_array_multiply.cc index 3cd1d7aef..67319ef35 100644 --- a/epi_judge_cpp/int_as_array_multiply.cc +++ b/epi_judge_cpp/int_as_array_multiply.cc @@ -7,11 +7,12 @@ vector Multiply(vector num1, vector num2) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"num1", "num2"}; - generic_test_main(argc, argv, param_names, "int_as_array_multiply.tsv", - &Multiply); + GenericTestMain(args, "int_as_array_multiply.tsv", &Multiply, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/int_as_list_add.cc b/epi_judge_cpp/int_as_list_add.cc index ab46a48f6..1060ff987 100644 --- a/epi_judge_cpp/int_as_list_add.cc +++ b/epi_judge_cpp/int_as_list_add.cc @@ -6,11 +6,12 @@ shared_ptr> AddTwoNumbers(shared_ptr> L1, return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L1", "L2"}; - generic_test_main(argc, argv, param_names, "int_as_list_add.tsv", - &AddTwoNumbers); + GenericTestMain(args, "int_as_list_add.tsv", &AddTwoNumbers, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/int_square_root.cc b/epi_judge_cpp/int_square_root.cc index d945cb153..a7909e83b 100644 --- a/epi_judge_cpp/int_square_root.cc +++ b/epi_judge_cpp/int_square_root.cc @@ -4,11 +4,12 @@ int SquareRoot(int k) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"k"}; - generic_test_main(argc, argv, param_names, "int_square_root.tsv", - &SquareRoot); + GenericTestMain(args, "int_square_root.tsv", &SquareRoot, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/intersect_sorted_arrays.cc b/epi_judge_cpp/intersect_sorted_arrays.cc index f2244b3cd..f8c1de6bc 100644 --- a/epi_judge_cpp/intersect_sorted_arrays.cc +++ b/epi_judge_cpp/intersect_sorted_arrays.cc @@ -8,11 +8,12 @@ vector IntersectTwoSortedArrays(const vector& A, return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "B"}; - generic_test_main(argc, argv, param_names, "intersect_sorted_arrays.tsv", - &IntersectTwoSortedArrays); + GenericTestMain(args, "intersect_sorted_arrays.tsv", + &IntersectTwoSortedArrays, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/interval_add.cc b/epi_judge_cpp/interval_add.cc index c046e650b..4ec34723f 100644 --- a/epi_judge_cpp/interval_add.cc +++ b/epi_judge_cpp/interval_add.cc @@ -25,10 +25,12 @@ std::ostream& operator<<(std::ostream& out, const Interval& i) { return EpiPrint(out, std::make_tuple(i.left, i.right)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"disjoint_intervals", "new_interval"}; - generic_test_main(argc, argv, param_names, "interval_add.tsv", &AddInterval); + GenericTestMain(args, "interval_add.tsv", &AddInterval, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/intervals_union.cc b/epi_judge_cpp/intervals_union.cc index 0f9a1dde3..314e33229 100644 --- a/epi_judge_cpp/intervals_union.cc +++ b/epi_judge_cpp/intervals_union.cc @@ -72,11 +72,12 @@ std::vector UnionOfIntervalsWrapper( return {begin(result), end(result)}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "intervals"}; - generic_test_main(argc, argv, param_names, "intervals_union.tsv", - &UnionOfIntervalsWrapper); + GenericTestMain(args, "intervals_union.tsv", &UnionOfIntervalsWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_anonymous_letter_constructible.cc b/epi_judge_cpp/is_anonymous_letter_constructible.cc index 796977bd3..7fc3a1268 100644 --- a/epi_judge_cpp/is_anonymous_letter_constructible.cc +++ b/epi_judge_cpp/is_anonymous_letter_constructible.cc @@ -8,12 +8,13 @@ bool IsLetterConstructibleFromMagazine(const string& letter_text, return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"letter_text", "magazine_text"}; - generic_test_main(argc, argv, param_names, - "is_anonymous_letter_constructible.tsv", - &IsLetterConstructibleFromMagazine); + GenericTestMain(args, "is_anonymous_letter_constructible.tsv", + &IsLetterConstructibleFromMagazine, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/is_array_dominated.cc b/epi_judge_cpp/is_array_dominated.cc index 5f18056b3..f03d7f81b 100644 --- a/epi_judge_cpp/is_array_dominated.cc +++ b/epi_judge_cpp/is_array_dominated.cc @@ -41,12 +41,13 @@ void ValidPlacementExistsWrapper(TestTimer& timer, const vector& team0, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "team0", "team1", "expected_01", "expected_10"}; - generic_test_main(argc, argv, param_names, "is_array_dominated.tsv", - &ValidPlacementExistsWrapper); + GenericTestMain(args, "is_array_dominated.tsv", &ValidPlacementExistsWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_circuit_wirable.cc b/epi_judge_cpp/is_circuit_wirable.cc index e96f68226..1ef810671 100644 --- a/epi_judge_cpp/is_circuit_wirable.cc +++ b/epi_judge_cpp/is_circuit_wirable.cc @@ -49,11 +49,13 @@ bool IsAnyPlacementFeasibleWrapper(TestTimer& timer, int k, return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "k", "edges"}; - generic_test_main(argc, argv, param_names, "is_circuit_wirable.tsv", - &IsAnyPlacementFeasibleWrapper); + GenericTestMain(args, "is_circuit_wirable.tsv", + &IsAnyPlacementFeasibleWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/is_list_cyclic.cc b/epi_judge_cpp/is_list_cyclic.cc index a013a6a65..4b114c940 100644 --- a/epi_judge_cpp/is_list_cyclic.cc +++ b/epi_judge_cpp/is_list_cyclic.cc @@ -67,11 +67,12 @@ void HasCycleWrapper(TestTimer& timer, const shared_ptr>& head, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "head", "cycle_idx"}; - generic_test_main(argc, argv, param_names, "is_list_cyclic.tsv", - &HasCycleWrapper); + GenericTestMain(args, "is_list_cyclic.tsv", &HasCycleWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_list_palindromic.cc b/epi_judge_cpp/is_list_palindromic.cc index 2f4bdf0b5..1fc7bbe6a 100644 --- a/epi_judge_cpp/is_list_palindromic.cc +++ b/epi_judge_cpp/is_list_palindromic.cc @@ -5,11 +5,12 @@ bool IsLinkedListAPalindrome(shared_ptr> L) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L"}; - generic_test_main(argc, argv, param_names, "is_list_palindromic.tsv", - &IsLinkedListAPalindrome); + GenericTestMain(args, "is_list_palindromic.tsv", &IsLinkedListAPalindrome, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_number_palindromic.cc b/epi_judge_cpp/is_number_palindromic.cc index 24a5bd107..ae007ebb6 100644 --- a/epi_judge_cpp/is_number_palindromic.cc +++ b/epi_judge_cpp/is_number_palindromic.cc @@ -4,11 +4,12 @@ bool IsPalindromeNumber(int x) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "is_number_palindromic.tsv", - &IsPalindromeNumber); + GenericTestMain(args, "is_number_palindromic.tsv", &IsPalindromeNumber, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_string_decomposable_into_words.cc b/epi_judge_cpp/is_string_decomposable_into_words.cc index c7c4c9b2d..2c5d1e521 100644 --- a/epi_judge_cpp/is_string_decomposable_into_words.cc +++ b/epi_judge_cpp/is_string_decomposable_into_words.cc @@ -12,12 +12,13 @@ vector DecomposeIntoDictionaryWords( return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"domain", "dictionary"}; - generic_test_main(argc, argv, param_names, - "is_string_decomposable_into_words.tsv", - &DecomposeIntoDictionaryWords); + GenericTestMain(args, "is_string_decomposable_into_words.tsv", + &DecomposeIntoDictionaryWords, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/is_string_in_matrix.cc b/epi_judge_cpp/is_string_in_matrix.cc index 94e1b4e08..243defc1b 100644 --- a/epi_judge_cpp/is_string_in_matrix.cc +++ b/epi_judge_cpp/is_string_in_matrix.cc @@ -8,11 +8,12 @@ bool IsPatternContainedInGrid(const vector>& grid, return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"grid", "pattern"}; - generic_test_main(argc, argv, param_names, "is_string_in_matrix.tsv", - &IsPatternContainedInGrid); + GenericTestMain(args, "is_string_in_matrix.tsv", &IsPatternContainedInGrid, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_string_palindromic_punctuation.cc b/epi_judge_cpp/is_string_palindromic_punctuation.cc index 3bd8d4daf..bb4c15c66 100644 --- a/epi_judge_cpp/is_string_palindromic_punctuation.cc +++ b/epi_judge_cpp/is_string_palindromic_punctuation.cc @@ -7,11 +7,12 @@ bool IsPalindrome(const string& s) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, - "is_string_palindromic_punctuation.tsv", &IsPalindrome); + GenericTestMain(args, "is_string_palindromic_punctuation.tsv", &IsPalindrome, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_string_permutable_to_palindrome.cc b/epi_judge_cpp/is_string_permutable_to_palindrome.cc index 0d95e01b0..2abcbff56 100644 --- a/epi_judge_cpp/is_string_permutable_to_palindrome.cc +++ b/epi_judge_cpp/is_string_permutable_to_palindrome.cc @@ -7,11 +7,12 @@ bool CanFormPalindrome(const string& s) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, "can_string_be_palindrome.tsv", - &CanFormPalindrome); + GenericTestMain(args, "can_string_be_palindrome.tsv", &CanFormPalindrome, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_tree_a_bst.cc b/epi_judge_cpp/is_tree_a_bst.cc index e9f039eae..80685ed72 100644 --- a/epi_judge_cpp/is_tree_a_bst.cc +++ b/epi_judge_cpp/is_tree_a_bst.cc @@ -9,11 +9,12 @@ bool IsBinaryTreeBST(const unique_ptr>& tree) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "is_tree_a_bst.tsv", - &IsBinaryTreeBST); + GenericTestMain(args, "is_tree_a_bst.tsv", &IsBinaryTreeBST, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_tree_balanced.cc b/epi_judge_cpp/is_tree_balanced.cc index 8035391d6..b0f7746de 100644 --- a/epi_judge_cpp/is_tree_balanced.cc +++ b/epi_judge_cpp/is_tree_balanced.cc @@ -6,11 +6,12 @@ bool IsBalanced(const unique_ptr>& tree) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "is_tree_balanced.tsv", - &IsBalanced); + GenericTestMain(args, "is_tree_balanced.tsv", &IsBalanced, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_tree_symmetric.cc b/epi_judge_cpp/is_tree_symmetric.cc index bc52a028a..064f1e8fe 100644 --- a/epi_judge_cpp/is_tree_symmetric.cc +++ b/epi_judge_cpp/is_tree_symmetric.cc @@ -5,11 +5,12 @@ bool IsSymmetric(const unique_ptr>& tree) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "is_tree_symmetric.tsv", - &IsSymmetric); + GenericTestMain(args, "is_tree_symmetric.tsv", &IsSymmetric, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_valid_parenthesization.cc b/epi_judge_cpp/is_valid_parenthesization.cc index 8775fcddc..f8265eecf 100644 --- a/epi_judge_cpp/is_valid_parenthesization.cc +++ b/epi_judge_cpp/is_valid_parenthesization.cc @@ -7,11 +7,12 @@ bool IsWellFormed(const string& s) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, "is_valid_parenthesization.tsv", - &IsWellFormed); + GenericTestMain(args, "is_valid_parenthesization.tsv", &IsWellFormed, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/is_valid_sudoku.cc b/epi_judge_cpp/is_valid_sudoku.cc index 15420b959..93ff3d25a 100644 --- a/epi_judge_cpp/is_valid_sudoku.cc +++ b/epi_judge_cpp/is_valid_sudoku.cc @@ -8,11 +8,12 @@ bool IsValidSudoku(const vector>& partial_assignment) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"partial_assignment"}; - generic_test_main(argc, argv, param_names, "is_valid_sudoku.tsv", - &IsValidSudoku); + GenericTestMain(args, "is_valid_sudoku.tsv", &IsValidSudoku, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/k_closest_stars.cc b/epi_judge_cpp/k_closest_stars.cc index 8d69127af..394023604 100644 --- a/epi_judge_cpp/k_closest_stars.cc +++ b/epi_judge_cpp/k_closest_stars.cc @@ -51,11 +51,12 @@ vector FindClosestKStarsWrapper(const vector& stars, int k) { return FindClosestKStars(cbegin(stars), cend(stars), k); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"stars", "k"}; - generic_test_main(argc, argv, param_names, "k_closest_stars.tsv", - &FindClosestKStarsWrapper, &Comp); + GenericTestMain(args, "k_closest_stars.tsv", &FindClosestKStarsWrapper, &Comp, + param_names); return 0; } diff --git a/epi_judge_cpp/k_largest_in_heap.cc b/epi_judge_cpp/k_largest_in_heap.cc index 32040d144..aeb610152 100644 --- a/epi_judge_cpp/k_largest_in_heap.cc +++ b/epi_judge_cpp/k_largest_in_heap.cc @@ -7,12 +7,12 @@ vector KLargestInBinaryHeap(const vector& A, int k) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "k"}; - generic_test_main(argc, argv, param_names, "k_largest_in_heap.tsv", - &KLargestInBinaryHeap, - &UnorderedComparator>); + GenericTestMain(args, "k_largest_in_heap.tsv", &KLargestInBinaryHeap, + &UnorderedComparator>, param_names); return 0; } diff --git a/epi_judge_cpp/k_largest_values_in_bst.cc b/epi_judge_cpp/k_largest_values_in_bst.cc index 5e0bff793..bbaac1622 100644 --- a/epi_judge_cpp/k_largest_values_in_bst.cc +++ b/epi_judge_cpp/k_largest_values_in_bst.cc @@ -11,11 +11,12 @@ vector FindKLargestInBST(const unique_ptr>& tree, int k) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree", "k"}; - generic_test_main(argc, argv, param_names, "k_largest_values_in_bst.tsv", - &FindKLargestInBST, &UnorderedComparator>); + GenericTestMain(args, "k_largest_values_in_bst.tsv", &FindKLargestInBST, + &UnorderedComparator>, param_names); return 0; } diff --git a/epi_judge_cpp/knapsack.cc b/epi_judge_cpp/knapsack.cc index 60fbdd66f..8ef8d34c9 100644 --- a/epi_judge_cpp/knapsack.cc +++ b/epi_judge_cpp/knapsack.cc @@ -16,11 +16,12 @@ int OptimumSubjectToCapacity(const vector& items, int capacity) { template <> struct SerializationTraits : UserSerTraits {}; -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"items", "capacity"}; - generic_test_main(argc, argv, param_names, "knapsack.tsv", - &OptimumSubjectToCapacity); + GenericTestMain(args, "knapsack.tsv", &OptimumSubjectToCapacity, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/kth_largest_element_in_two_sorted_arrays.cc b/epi_judge_cpp/kth_largest_element_in_two_sorted_arrays.cc index 2286898f1..8f56ecdaa 100644 --- a/epi_judge_cpp/kth_largest_element_in_two_sorted_arrays.cc +++ b/epi_judge_cpp/kth_largest_element_in_two_sorted_arrays.cc @@ -8,12 +8,12 @@ int FindKthInTwoSortedArrays(const vector& A, const vector& B, return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "B", "k"}; - generic_test_main(argc, argv, param_names, - "kth_largest_element_in_two_sorted_arrays.tsv", - &FindKthInTwoSortedArrays); + GenericTestMain(args, "kth_largest_element_in_two_sorted_arrays.tsv", + &FindKthInTwoSortedArrays, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/kth_largest_in_array.cc b/epi_judge_cpp/kth_largest_in_array.cc index c1a5575e2..2b2319932 100644 --- a/epi_judge_cpp/kth_largest_in_array.cc +++ b/epi_judge_cpp/kth_largest_in_array.cc @@ -14,11 +14,12 @@ int FindKthLargestWrapper(int k, vector& A) { return FindKthLargest(k, &A); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"k", "A"}; - generic_test_main(argc, argv, param_names, "kth_largest_in_array.tsv", - &FindKthLargestWrapper); + GenericTestMain(args, "kth_largest_in_array.tsv", &FindKthLargestWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/kth_node_in_tree.cc b/epi_judge_cpp/kth_node_in_tree.cc index 0f39e3b4a..4d833682f 100644 --- a/epi_judge_cpp/kth_node_in_tree.cc +++ b/epi_judge_cpp/kth_node_in_tree.cc @@ -97,11 +97,12 @@ int FindKthNodeBinaryTreeWrapper(const unique_ptr>& tree, return result->data; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree", "k"}; - generic_test_main(argc, argv, param_names, "kth_node_in_tree.tsv", - &FindKthNodeBinaryTreeWrapper); + GenericTestMain(args, "kth_node_in_tree.tsv", &FindKthNodeBinaryTreeWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/largest_rectangle_under_skyline.cc b/epi_judge_cpp/largest_rectangle_under_skyline.cc index 0223898ab..5bbe9e870 100644 --- a/epi_judge_cpp/largest_rectangle_under_skyline.cc +++ b/epi_judge_cpp/largest_rectangle_under_skyline.cc @@ -7,12 +7,12 @@ int CalculateLargestRectangle(const vector& heights) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"heights"}; - generic_test_main(argc, argv, param_names, - "largest_rectangle_under_skyline.tsv", - &CalculateLargestRectangle); + GenericTestMain(args, "largest_rectangle_under_skyline.tsv", + &CalculateLargestRectangle, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/left_right_justify_text.cc b/epi_judge_cpp/left_right_justify_text.cc index 84a4492ef..d8188e8c5 100644 --- a/epi_judge_cpp/left_right_justify_text.cc +++ b/epi_judge_cpp/left_right_justify_text.cc @@ -9,11 +9,12 @@ vector JustifyText(const vector& words, int L) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"words", "L"}; - generic_test_main(argc, argv, param_names, "left_right_justify_text.tsv", - &JustifyText); + GenericTestMain(args, "left_right_justify_text.tsv", &JustifyText, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/levenshtein_distance.cc b/epi_judge_cpp/levenshtein_distance.cc index 82a6449a4..2e6e97154 100644 --- a/epi_judge_cpp/levenshtein_distance.cc +++ b/epi_judge_cpp/levenshtein_distance.cc @@ -9,11 +9,12 @@ int LevenshteinDistance(const string& A, const string& B) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "B"}; - generic_test_main(argc, argv, param_names, "levenshtein_distance.tsv", - &LevenshteinDistance); + GenericTestMain(args, "levenshtein_distance.tsv", &LevenshteinDistance, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/line_though_most_points.cc b/epi_judge_cpp/line_though_most_points.cc index 26559135e..fb524c400 100644 --- a/epi_judge_cpp/line_though_most_points.cc +++ b/epi_judge_cpp/line_though_most_points.cc @@ -20,11 +20,12 @@ bool operator==(const Point& lhs, const Point& rhs) { return std::tie(lhs.x, lhs.y) == std::tie(rhs.x, rhs.y); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"points"}; - generic_test_main(argc, argv, param_names, "line_though_most_points.tsv", - &FindLineWithMostPoints); + GenericTestMain(args, "line_though_most_points.tsv", &FindLineWithMostPoints, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/list_cyclic_right_shift.cc b/epi_judge_cpp/list_cyclic_right_shift.cc index 788a4319e..8ff806463 100644 --- a/epi_judge_cpp/list_cyclic_right_shift.cc +++ b/epi_judge_cpp/list_cyclic_right_shift.cc @@ -10,11 +10,12 @@ shared_ptr> CyclicallyRightShiftList(shared_ptr> L, return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L", "k"}; - generic_test_main(argc, argv, param_names, "list_cyclic_right_shift.tsv", - &CyclicallyRightShiftList); + GenericTestMain(args, "list_cyclic_right_shift.tsv", + &CyclicallyRightShiftList, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/longest_contained_interval.cc b/epi_judge_cpp/longest_contained_interval.cc index 59fc1450d..a867c8a5a 100644 --- a/epi_judge_cpp/longest_contained_interval.cc +++ b/epi_judge_cpp/longest_contained_interval.cc @@ -7,11 +7,12 @@ int LongestContainedRange(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "longest_contained_interval.tsv", - &LongestContainedRange); + GenericTestMain(args, "longest_contained_interval.tsv", + &LongestContainedRange, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/longest_increasing_subarray.cc b/epi_judge_cpp/longest_increasing_subarray.cc index a5ee64139..f78fc2254 100644 --- a/epi_judge_cpp/longest_increasing_subarray.cc +++ b/epi_judge_cpp/longest_increasing_subarray.cc @@ -16,11 +16,13 @@ int FindLongestIncreasingSubarrayWrapper(const vector& A) { return result.end - result.start + 1; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "longest_increasing_subarray.tsv", - &FindLongestIncreasingSubarrayWrapper); + GenericTestMain(args, "longest_increasing_subarray.tsv", + &FindLongestIncreasingSubarrayWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/longest_nondecreasing_subsequence.cc b/epi_judge_cpp/longest_nondecreasing_subsequence.cc index b70300585..38095d2d1 100644 --- a/epi_judge_cpp/longest_nondecreasing_subsequence.cc +++ b/epi_judge_cpp/longest_nondecreasing_subsequence.cc @@ -7,12 +7,13 @@ int LongestNondecreasingSubsequenceLength(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, - "longest_nondecreasing_subsequence.tsv", - &LongestNondecreasingSubsequenceLength); + GenericTestMain(args, "longest_nondecreasing_subsequence.tsv", + &LongestNondecreasingSubsequenceLength, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/longest_subarray_with_distinct_values.cc b/epi_judge_cpp/longest_subarray_with_distinct_values.cc index 2abc04e09..0b1c02a23 100644 --- a/epi_judge_cpp/longest_subarray_with_distinct_values.cc +++ b/epi_judge_cpp/longest_subarray_with_distinct_values.cc @@ -7,12 +7,13 @@ int LongestSubarrayWithDistinctEntries(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, - "longest_subarray_with_distinct_values.tsv", - &LongestSubarrayWithDistinctEntries); + GenericTestMain(args, "longest_subarray_with_distinct_values.tsv", + &LongestSubarrayWithDistinctEntries, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/longest_subarray_with_sum_constraint.cc b/epi_judge_cpp/longest_subarray_with_sum_constraint.cc index 3da76d693..9409ad28e 100644 --- a/epi_judge_cpp/longest_subarray_with_sum_constraint.cc +++ b/epi_judge_cpp/longest_subarray_with_sum_constraint.cc @@ -7,12 +7,13 @@ int FindLongestSubarrayLessEqualK(const vector& A, int k) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "k"}; - generic_test_main(argc, argv, param_names, - "longest_subarray_with_sum_constraint.tsv", - &FindLongestSubarrayLessEqualK); + GenericTestMain(args, "longest_subarray_with_sum_constraint.tsv", + &FindLongestSubarrayLessEqualK, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/longest_substring_with_matching_parentheses.cc b/epi_judge_cpp/longest_substring_with_matching_parentheses.cc index 351d78c64..477c6060a 100644 --- a/epi_judge_cpp/longest_substring_with_matching_parentheses.cc +++ b/epi_judge_cpp/longest_substring_with_matching_parentheses.cc @@ -9,12 +9,13 @@ int LongestMatchingParentheses(const string& s) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, - "longest_substring_with_matching_parentheses.tsv", - &LongestMatchingParentheses); + GenericTestMain(args, "longest_substring_with_matching_parentheses.tsv", + &LongestMatchingParentheses, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/look_and_say.cc b/epi_judge_cpp/look_and_say.cc index c182e152e..09d61f7b9 100644 --- a/epi_judge_cpp/look_and_say.cc +++ b/epi_judge_cpp/look_and_say.cc @@ -7,10 +7,12 @@ string LookAndSay(int n) { return ""; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n"}; - generic_test_main(argc, argv, param_names, "look_and_say.tsv", &LookAndSay); + GenericTestMain(args, "look_and_say.tsv", &LookAndSay, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/lowest_common_ancestor.cc b/epi_judge_cpp/lowest_common_ancestor.cc index b33112052..05d8bbc39 100644 --- a/epi_judge_cpp/lowest_common_ancestor.cc +++ b/epi_judge_cpp/lowest_common_ancestor.cc @@ -26,11 +26,12 @@ int LcaWrapper(TestTimer& timer, const unique_ptr>& tree, return result->data; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree", "node0", "node1"}; - generic_test_main(argc, argv, param_names, "lowest_common_ancestor.tsv", - &LcaWrapper); + GenericTestMain(args, "lowest_common_ancestor.tsv", &LcaWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/lowest_common_ancestor_close_ancestor.cc b/epi_judge_cpp/lowest_common_ancestor_close_ancestor.cc index fd999955e..f047668ce 100644 --- a/epi_judge_cpp/lowest_common_ancestor_close_ancestor.cc +++ b/epi_judge_cpp/lowest_common_ancestor_close_ancestor.cc @@ -25,11 +25,12 @@ int LcaWrapper(TestTimer& timer, const unique_ptr>& tree, return result->data; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree", "node0", "node1"}; - generic_test_main(argc, argv, param_names, "lowest_common_ancestor.tsv", - &LcaWrapper); + GenericTestMain(args, "lowest_common_ancestor.tsv", &LcaWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/lowest_common_ancestor_in_bst.cc b/epi_judge_cpp/lowest_common_ancestor_in_bst.cc index e7ec90dec..0f2053da3 100644 --- a/epi_judge_cpp/lowest_common_ancestor_in_bst.cc +++ b/epi_judge_cpp/lowest_common_ancestor_in_bst.cc @@ -27,11 +27,12 @@ int LcaWrapper(TestTimer& timer, const std::unique_ptr>& tree, return result->data; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree", "s", "b"}; - generic_test_main(argc, argv, param_names, - "lowest_common_ancestor_in_bst.tsv", &LcaWrapper); + GenericTestMain(args, "lowest_common_ancestor_in_bst.tsv", &LcaWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/lowest_common_ancestor_with_parent.cc b/epi_judge_cpp/lowest_common_ancestor_with_parent.cc index eeb983b18..059779956 100644 --- a/epi_judge_cpp/lowest_common_ancestor_with_parent.cc +++ b/epi_judge_cpp/lowest_common_ancestor_with_parent.cc @@ -23,11 +23,12 @@ int LcaWrapper(TestTimer& timer, const unique_ptr>& tree, return result->data; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree", "node0", "node1"}; - generic_test_main(argc, argv, param_names, "lowest_common_ancestor.tsv", - &LcaWrapper); + GenericTestMain(args, "lowest_common_ancestor.tsv", &LcaWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/lru_cache.cc b/epi_judge_cpp/lru_cache.cc index 0b7a82cb2..58ab3d17b 100644 --- a/epi_judge_cpp/lru_cache.cc +++ b/epi_judge_cpp/lru_cache.cc @@ -62,10 +62,12 @@ void RunTest(const std::vector& commands) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"commands"}; - generic_test_main(argc, argv, param_names, "lru_cache.tsv", &RunTest); + GenericTestMain(args, "lru_cache.tsv", &RunTest, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/majority_element.cc b/epi_judge_cpp/majority_element.cc index 096406876..815527311 100644 --- a/epi_judge_cpp/majority_element.cc +++ b/epi_judge_cpp/majority_element.cc @@ -14,11 +14,12 @@ string MajoritySearchWrapper(const vector& stream) { return MajoritySearch(cbegin(stream), cend(stream)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"stream"}; - generic_test_main(argc, argv, param_names, "majority_element.tsv", - &MajoritySearchWrapper); + GenericTestMain(args, "majority_element.tsv", &MajoritySearchWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/matrix_connected_regions.cc b/epi_judge_cpp/matrix_connected_regions.cc index b4936b4e2..21ac58126 100644 --- a/epi_judge_cpp/matrix_connected_regions.cc +++ b/epi_judge_cpp/matrix_connected_regions.cc @@ -39,10 +39,12 @@ vector> FlipColorWrapper(TestTimer& timer, int x, int y, return image; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "x", "y", "image"}; - generic_test_main(argc, argv, param_names, "painting.tsv", &FlipColorWrapper); + GenericTestMain(args, "painting.tsv", &FlipColorWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/matrix_enclosed_regions.cc b/epi_judge_cpp/matrix_enclosed_regions.cc index 06348bf8f..666196a72 100644 --- a/epi_judge_cpp/matrix_enclosed_regions.cc +++ b/epi_judge_cpp/matrix_enclosed_regions.cc @@ -40,11 +40,13 @@ vector> FillSurroundedRegionsWrapper( return board; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "board"}; - generic_test_main(argc, argv, param_names, "matrix_enclosed_regions.tsv", - &FillSurroundedRegionsWrapper); + GenericTestMain(args, "matrix_enclosed_regions.tsv", + &FillSurroundedRegionsWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/matrix_rotation.cc b/epi_judge_cpp/matrix_rotation.cc index 94a9b8284..d11e0481b 100644 --- a/epi_judge_cpp/matrix_rotation.cc +++ b/epi_judge_cpp/matrix_rotation.cc @@ -12,11 +12,12 @@ vector> RotateMatrixWrapper(vector> square_matrix) { return square_matrix; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"square_matrix"}; - generic_test_main(argc, argv, param_names, "matrix_rotation.tsv", - &RotateMatrixWrapper); + GenericTestMain(args, "matrix_rotation.tsv", &RotateMatrixWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/max_of_sliding_window.cc b/epi_judge_cpp/max_of_sliding_window.cc index de450ad3d..c83597b63 100644 --- a/epi_judge_cpp/max_of_sliding_window.cc +++ b/epi_judge_cpp/max_of_sliding_window.cc @@ -27,11 +27,12 @@ std::ostream& operator<<(std::ostream& out, const TrafficElement& te) { return out << '[' << te.time << ", " << te.volume << ']'; }; -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "w"}; - generic_test_main(argc, argv, param_names, "max_of_sliding_window.tsv", - &CalculateTrafficVolumes); + GenericTestMain(args, "max_of_sliding_window.tsv", &CalculateTrafficVolumes, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/max_product_all_but_one.cc b/epi_judge_cpp/max_product_all_but_one.cc index d0c803de1..e5e6e5928 100644 --- a/epi_judge_cpp/max_product_all_but_one.cc +++ b/epi_judge_cpp/max_product_all_but_one.cc @@ -7,11 +7,13 @@ int FindBiggestNMinusOneProduct(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "max_product_all_but_one.tsv", - &FindBiggestNMinusOneProduct); + GenericTestMain(args, "max_product_all_but_one.tsv", + &FindBiggestNMinusOneProduct, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/max_safe_height.cc b/epi_judge_cpp/max_safe_height.cc index 4d6889827..44030e595 100644 --- a/epi_judge_cpp/max_safe_height.cc +++ b/epi_judge_cpp/max_safe_height.cc @@ -5,10 +5,12 @@ int GetHeight(int cases, int drops) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"cases", "drops"}; - generic_test_main(argc, argv, param_names, "max_safe_height.tsv", &GetHeight); + GenericTestMain(args, "max_safe_height.tsv", &GetHeight, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/max_square_submatrix.cc b/epi_judge_cpp/max_square_submatrix.cc index 76641ce8e..0261fbcef 100644 --- a/epi_judge_cpp/max_square_submatrix.cc +++ b/epi_judge_cpp/max_square_submatrix.cc @@ -9,11 +9,12 @@ int MaxSquareSubmatrix(const vector>& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "max_square_submatrix.tsv", - &MaxSquareSubmatrix); + GenericTestMain(args, "max_square_submatrix.tsv", &MaxSquareSubmatrix, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/max_submatrix.cc b/epi_judge_cpp/max_submatrix.cc index ba0cee086..87c539289 100644 --- a/epi_judge_cpp/max_submatrix.cc +++ b/epi_judge_cpp/max_submatrix.cc @@ -9,11 +9,12 @@ int MaxRectangleSubmatrix(const vector>& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "max_submatrix.tsv", - &MaxRectangleSubmatrix); + GenericTestMain(args, "max_submatrix.tsv", &MaxRectangleSubmatrix, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/max_teams_in_photograph.cc b/epi_judge_cpp/max_teams_in_photograph.cc index 89e773bc0..7af896b14 100644 --- a/epi_judge_cpp/max_teams_in_photograph.cc +++ b/epi_judge_cpp/max_teams_in_photograph.cc @@ -46,11 +46,13 @@ int FindLargestNumberTeamsWrapper(TestTimer& timer, int k, return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "k", "edges"}; - generic_test_main(argc, argv, param_names, "max_teams_in_photograph.tsv", - &FindLargestNumberTeamsWrapper); + GenericTestMain(args, "max_teams_in_photograph.tsv", + &FindLargestNumberTeamsWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/max_water_trappable.cc b/epi_judge_cpp/max_water_trappable.cc index 10189ee40..4e1ce8409 100644 --- a/epi_judge_cpp/max_water_trappable.cc +++ b/epi_judge_cpp/max_water_trappable.cc @@ -7,11 +7,12 @@ int CalculateTrappingWater(const vector& heights) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"heights"}; - generic_test_main(argc, argv, param_names, "max_water_trappable.tsv", - &CalculateTrappingWater); + GenericTestMain(args, "max_water_trappable.tsv", &CalculateTrappingWater, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/maximum_subarray_in_circular_array.cc b/epi_judge_cpp/maximum_subarray_in_circular_array.cc index ebc50f392..f10717f5c 100644 --- a/epi_judge_cpp/maximum_subarray_in_circular_array.cc +++ b/epi_judge_cpp/maximum_subarray_in_circular_array.cc @@ -7,12 +7,12 @@ int MaxSubarraySumInCircular(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, - "maximum_subarray_in_circular_array.tsv", - &MaxSubarraySumInCircular); + GenericTestMain(args, "maximum_subarray_in_circular_array.tsv", + &MaxSubarraySumInCircular, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/minimum_distance_3_sorted_arrays.cc b/epi_judge_cpp/minimum_distance_3_sorted_arrays.cc index efa77bab4..7c5e4561a 100644 --- a/epi_judge_cpp/minimum_distance_3_sorted_arrays.cc +++ b/epi_judge_cpp/minimum_distance_3_sorted_arrays.cc @@ -8,12 +8,13 @@ int FindClosestElementsInSortedArrays( return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"sorted_arrays"}; - generic_test_main(argc, argv, param_names, - "minimum_distance_3_sorted_arrays.tsv", - &FindClosestElementsInSortedArrays); + GenericTestMain(args, "minimum_distance_3_sorted_arrays.tsv", + &FindClosestElementsInSortedArrays, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/minimum_points_covering_intervals.cc b/epi_judge_cpp/minimum_points_covering_intervals.cc index 74b706b3d..8e032efcd 100644 --- a/epi_judge_cpp/minimum_points_covering_intervals.cc +++ b/epi_judge_cpp/minimum_points_covering_intervals.cc @@ -16,11 +16,12 @@ int FindMinimumVisits(vector intervals) { template <> struct SerializationTraits : UserSerTraits {}; -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"intervals"}; - generic_test_main(argc, argv, param_names, "points_covering_intervals.tsv", - &FindMinimumVisits); + GenericTestMain(args, "minimum_points_covering_intervals.tsv", + &FindMinimumVisits, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/minimum_waiting_time.cc b/epi_judge_cpp/minimum_waiting_time.cc index 99168cae4..d02c689c9 100644 --- a/epi_judge_cpp/minimum_waiting_time.cc +++ b/epi_judge_cpp/minimum_waiting_time.cc @@ -7,11 +7,12 @@ int MinimumTotalWaitingTime(vector service_times) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"service_times"}; - generic_test_main(argc, argv, param_names, "minimum_waiting_time.tsv", - &MinimumTotalWaitingTime); + GenericTestMain(args, "minimum_waiting_time.tsv", &MinimumTotalWaitingTime, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/minimum_weight_path_in_a_triangle.cc b/epi_judge_cpp/minimum_weight_path_in_a_triangle.cc index 973818c8f..8cbce6445 100644 --- a/epi_judge_cpp/minimum_weight_path_in_a_triangle.cc +++ b/epi_judge_cpp/minimum_weight_path_in_a_triangle.cc @@ -7,12 +7,12 @@ int MinimumPathWeight(const vector>& triangle) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"triangle"}; - generic_test_main(argc, argv, param_names, - "minimum_weight_path_in_a_triangle.tsv", - &MinimumPathWeight); + GenericTestMain(args, "minimum_weight_path_in_a_triangle.tsv", + &MinimumPathWeight, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/n_queens.cc b/epi_judge_cpp/n_queens.cc index af1627139..abd6d78f9 100644 --- a/epi_judge_cpp/n_queens.cc +++ b/epi_judge_cpp/n_queens.cc @@ -15,10 +15,11 @@ bool Comp(vector>& a, vector>& b) { return a == b; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n"}; - generic_test_main(argc, argv, param_names, "n_queens.tsv", &NQueens, &Comp); + GenericTestMain(args, "n_queens.tsv", &NQueens, &Comp, param_names); return 0; } diff --git a/epi_judge_cpp/nearest_repeated_entries.cc b/epi_judge_cpp/nearest_repeated_entries.cc index 8cd77716e..1a9ca1bf2 100644 --- a/epi_judge_cpp/nearest_repeated_entries.cc +++ b/epi_judge_cpp/nearest_repeated_entries.cc @@ -9,11 +9,12 @@ int FindNearestRepetition(const vector& paragraph) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"paragraph"}; - generic_test_main(argc, argv, param_names, "nearest_repeated_entries.tsv", - &FindNearestRepetition); + GenericTestMain(args, "nearest_repeated_entries.tsv", &FindNearestRepetition, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/next_permutation.cc b/epi_judge_cpp/next_permutation.cc index e8fc6f176..37291a5bb 100644 --- a/epi_judge_cpp/next_permutation.cc +++ b/epi_judge_cpp/next_permutation.cc @@ -7,11 +7,12 @@ vector NextPermutation(vector perm) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"perm"}; - generic_test_main(argc, argv, param_names, "next_permutation.tsv", - &NextPermutation); + GenericTestMain(args, "next_permutation.tsv", &NextPermutation, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/nonuniform_random_number.cc b/epi_judge_cpp/nonuniform_random_number.cc index 7cbfad665..3dafab3ac 100644 --- a/epi_judge_cpp/nonuniform_random_number.cc +++ b/epi_judge_cpp/nonuniform_random_number.cc @@ -55,11 +55,13 @@ void NonuniformRandomNumberGenerationWrapper( std::cref(probabilities))); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "values", "probabilities"}; - generic_test_main(argc, argv, param_names, "nonuniform_random_number.tsv", - &NonuniformRandomNumberGenerationWrapper); + GenericTestMain(args, "nonuniform_random_number.tsv", + &NonuniformRandomNumberGenerationWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/number_of_score_combinations.cc b/epi_judge_cpp/number_of_score_combinations.cc index e567f880b..78d6ae1c7 100644 --- a/epi_judge_cpp/number_of_score_combinations.cc +++ b/epi_judge_cpp/number_of_score_combinations.cc @@ -8,11 +8,13 @@ int NumCombinationsForFinalScore(int final_score, return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"final_score", "individual_play_scores"}; - generic_test_main(argc, argv, param_names, "number_of_score_combinations.tsv", - &NumCombinationsForFinalScore); + GenericTestMain(args, "number_of_score_combinations.tsv", + &NumCombinationsForFinalScore, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/number_of_traversals_matrix.cc b/epi_judge_cpp/number_of_traversals_matrix.cc index e0c89b977..69c809ed7 100644 --- a/epi_judge_cpp/number_of_traversals_matrix.cc +++ b/epi_judge_cpp/number_of_traversals_matrix.cc @@ -5,11 +5,12 @@ int NumberOfWays(int n, int m) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n", "m"}; - generic_test_main(argc, argv, param_names, "number_of_traversals_matrix.tsv", - &NumberOfWays); + GenericTestMain(args, "number_of_traversals_matrix.tsv", &NumberOfWays, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/number_of_traversals_staircase.cc b/epi_judge_cpp/number_of_traversals_staircase.cc index 5ab053539..f3385c23f 100644 --- a/epi_judge_cpp/number_of_traversals_staircase.cc +++ b/epi_judge_cpp/number_of_traversals_staircase.cc @@ -5,11 +5,12 @@ int NumberOfWaysToTop(int top, int maximum_step) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"top", "maximum_step"}; - generic_test_main(argc, argv, param_names, - "number_of_traversals_staircase.tsv", &NumberOfWaysToTop); + GenericTestMain(args, "number_of_traversals_staircase.tsv", + &NumberOfWaysToTop, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/offline_sampling.cc b/epi_judge_cpp/offline_sampling.cc index 4ae09e40d..688d7a6a1 100644 --- a/epi_judge_cpp/offline_sampling.cc +++ b/epi_judge_cpp/offline_sampling.cc @@ -45,11 +45,12 @@ void RandomSamplingWrapper(TestTimer& timer, int k, const vector& A) { bind(RandomSamplingRunner, std::ref(timer), k, std::cref(A))); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "k", "A"}; - generic_test_main(argc, argv, param_names, "offline_sampling.tsv", - &RandomSamplingWrapper); + GenericTestMain(args, "offline_sampling.tsv", &RandomSamplingWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/online_median.cc b/epi_judge_cpp/online_median.cc index a9de0bc89..3f533ac57 100644 --- a/epi_judge_cpp/online_median.cc +++ b/epi_judge_cpp/online_median.cc @@ -12,11 +12,12 @@ vector OnlineMedianWrapper(const vector& sequence) { return OnlineMedian(cbegin(sequence), cend(sequence)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"sequence"}; - generic_test_main(argc, argv, param_names, "online_median.tsv", - &OnlineMedianWrapper); + GenericTestMain(args, "online_median.tsv", &OnlineMedianWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/online_sampling.cc b/epi_judge_cpp/online_sampling.cc index 6ca98acc2..290eec539 100644 --- a/epi_judge_cpp/online_sampling.cc +++ b/epi_judge_cpp/online_sampling.cc @@ -50,11 +50,12 @@ void OnlineRandomSampleWrapper(TestTimer& timer, const vector& stream, bind(OnlineRandomSamplingRunner, std::ref(timer), std::cref(stream), k)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "stream", "k"}; - generic_test_main(argc, argv, param_names, "online_sampling.tsv", - &OnlineRandomSampleWrapper); + GenericTestMain(args, "online_sampling.tsv", &OnlineRandomSampleWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/parity.cc b/epi_judge_cpp/parity.cc index 87e59faa6..9335d8621 100644 --- a/epi_judge_cpp/parity.cc +++ b/epi_judge_cpp/parity.cc @@ -3,10 +3,12 @@ short Parity(unsigned long x) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "parity.tsv", &Parity); + GenericTestMain(args, "parity.tsv", &Parity, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/pascal_triangle.cc b/epi_judge_cpp/pascal_triangle.cc index 2b843c896..65035a222 100644 --- a/epi_judge_cpp/pascal_triangle.cc +++ b/epi_judge_cpp/pascal_triangle.cc @@ -7,11 +7,12 @@ vector> GeneratePascalTriangle(int num_rows) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"num_rows"}; - generic_test_main(argc, argv, param_names, "pascal_triangle.tsv", - &GeneratePascalTriangle); + GenericTestMain(args, "pascal_triangle.tsv", &GeneratePascalTriangle, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/path_sum.cc b/epi_judge_cpp/path_sum.cc index f4ba7cf0f..15f18b759 100644 --- a/epi_judge_cpp/path_sum.cc +++ b/epi_judge_cpp/path_sum.cc @@ -10,10 +10,12 @@ bool HasPathSum(const unique_ptr>& tree, return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree", "remaining_weight"}; - generic_test_main(argc, argv, param_names, "path_sum.tsv", &HasPathSum); + GenericTestMain(args, "path_sum.tsv", &HasPathSum, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/permutations.cc b/epi_judge_cpp/permutations.cc index ea37b25f2..a64605eb1 100644 --- a/epi_judge_cpp/permutations.cc +++ b/epi_judge_cpp/permutations.cc @@ -7,11 +7,12 @@ vector> Permutations(vector A) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "permutations.tsv", &Permutations, - &UnorderedComparator>>); + GenericTestMain(args, "permutations.tsv", &Permutations, + &UnorderedComparator>>, param_names); return 0; } diff --git a/epi_judge_cpp/phone_number_mnemonic.cc b/epi_judge_cpp/phone_number_mnemonic.cc index a3e554c33..8b318a40b 100644 --- a/epi_judge_cpp/phone_number_mnemonic.cc +++ b/epi_judge_cpp/phone_number_mnemonic.cc @@ -9,12 +9,12 @@ vector PhoneMnemonic(const string& phone_number) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"phone_number"}; - generic_test_main(argc, argv, param_names, "phone_number_mnemonic.tsv", - &PhoneMnemonic, - &UnorderedComparator>); + GenericTestMain(args, "phone_number_mnemonic.tsv", &PhoneMnemonic, + &UnorderedComparator>, param_names); return 0; } diff --git a/epi_judge_cpp/picking_up_coins.cc b/epi_judge_cpp/picking_up_coins.cc index dcb11fc4a..156f613c4 100644 --- a/epi_judge_cpp/picking_up_coins.cc +++ b/epi_judge_cpp/picking_up_coins.cc @@ -7,11 +7,12 @@ int MaximumRevenue(const vector& coins) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"coins"}; - generic_test_main(argc, argv, param_names, "picking_up_coins.tsv", - &MaximumRevenue); + GenericTestMain(args, "picking_up_coins.tsv", &MaximumRevenue, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/pivot_list.cc b/epi_judge_cpp/pivot_list.cc index 09e1048e9..0ac14a4e3 100644 --- a/epi_judge_cpp/pivot_list.cc +++ b/epi_judge_cpp/pivot_list.cc @@ -31,7 +31,7 @@ void ListPivotingWrapper(TestTimer& timer, const shared_ptr>& l, timer.Start(); std::shared_ptr> pivoted_list = ListPivoting(l, x); timer.Stop(); - vector pivoted = ListToVector(pivoted_list); + std::vector pivoted = ListToVector(pivoted_list); enum { LESS, EQ, GREATER } mode = LESS; for (auto& i : pivoted) { switch (mode) { @@ -62,11 +62,12 @@ void ListPivotingWrapper(TestTimer& timer, const shared_ptr>& l, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "l", "x"}; - generic_test_main(argc, argv, param_names, "pivot_list.tsv", - &ListPivotingWrapper); + GenericTestMain(args, "pivot_list.tsv", &ListPivotingWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/power_set.cc b/epi_judge_cpp/power_set.cc index fcf274ae9..c2a5d15d7 100644 --- a/epi_judge_cpp/power_set.cc +++ b/epi_judge_cpp/power_set.cc @@ -7,11 +7,12 @@ vector> GeneratePowerSet(const vector& input_set) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"input_set"}; - generic_test_main(argc, argv, param_names, "power_set.tsv", &GeneratePowerSet, - &UnorderedComparator>>); + GenericTestMain(args, "power_set.tsv", &GeneratePowerSet, + &UnorderedComparator>>, param_names); return 0; } diff --git a/epi_judge_cpp/power_x_y.cc b/epi_judge_cpp/power_x_y.cc index 118819fa6..ed92692db 100644 --- a/epi_judge_cpp/power_x_y.cc +++ b/epi_judge_cpp/power_x_y.cc @@ -3,10 +3,12 @@ double Power(double x, int y) { return 0.0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x", "y"}; - generic_test_main(argc, argv, param_names, "power_x_y.tsv", &Power); + GenericTestMain(args, "power_x_y.tsv", &Power, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/pretty_printing.cc b/epi_judge_cpp/pretty_printing.cc index 8b6fa58d3..d1939dbca 100644 --- a/epi_judge_cpp/pretty_printing.cc +++ b/epi_judge_cpp/pretty_printing.cc @@ -9,11 +9,12 @@ int MinimumMessiness(const vector& words, int line_length) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"words", "line_length"}; - generic_test_main(argc, argv, param_names, "pretty_printing.tsv", - &MinimumMessiness); + GenericTestMain(args, "pretty_printing.tsv", &MinimumMessiness, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/prime_sieve.cc b/epi_judge_cpp/prime_sieve.cc index ff6c99dff..b9a0954ac 100644 --- a/epi_judge_cpp/prime_sieve.cc +++ b/epi_judge_cpp/prime_sieve.cc @@ -8,11 +8,12 @@ vector GeneratePrimes(int n) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"n"}; - generic_test_main(argc, argv, param_names, "prime_sieve.tsv", - &GeneratePrimes); + GenericTestMain(args, "prime_sieve.tsv", &GeneratePrimes, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/primitive_divide.cc b/epi_judge_cpp/primitive_divide.cc index c3bbb2952..66002eddd 100644 --- a/epi_judge_cpp/primitive_divide.cc +++ b/epi_judge_cpp/primitive_divide.cc @@ -3,10 +3,12 @@ int Divide(int x, int y) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x", "y"}; - generic_test_main(argc, argv, param_names, "primitive_divide.tsv", &Divide); + GenericTestMain(args, "primitive_divide.tsv", &Divide, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/primitive_multiply.cc b/epi_judge_cpp/primitive_multiply.cc index 3d82a9984..7d8c15a58 100644 --- a/epi_judge_cpp/primitive_multiply.cc +++ b/epi_judge_cpp/primitive_multiply.cc @@ -4,11 +4,12 @@ unsigned long Multiply(unsigned long x, unsigned long y) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x", "y"}; - generic_test_main(argc, argv, param_names, "primitive_multiply.tsv", - &Multiply); + GenericTestMain(args, "primitive_multiply.tsv", &Multiply, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/queue_from_stacks.cc b/epi_judge_cpp/queue_from_stacks.cc index 334e677cb..c0abd7696 100644 --- a/epi_judge_cpp/queue_from_stacks.cc +++ b/epi_judge_cpp/queue_from_stacks.cc @@ -66,11 +66,12 @@ void QueueTester(const std::vector& ops) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"ops"}; - generic_test_main(argc, argv, param_names, "queue_from_stacks.tsv", - &QueueTester); + GenericTestMain(args, "queue_from_stacks.tsv", &QueueTester, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/queue_with_max.cc b/epi_judge_cpp/queue_with_max.cc index f01bf600f..235280da3 100644 --- a/epi_judge_cpp/queue_with_max.cc +++ b/epi_judge_cpp/queue_with_max.cc @@ -79,11 +79,12 @@ void QueueTester(const std::vector& ops) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"ops"}; - generic_test_main(argc, argv, param_names, "queue_with_max.tsv", - &QueueTester); + GenericTestMain(args, "queue_with_max.tsv", &QueueTester, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/random_permutation.cc b/epi_judge_cpp/random_permutation.cc index 380ea1911..7825d9fc9 100644 --- a/epi_judge_cpp/random_permutation.cc +++ b/epi_judge_cpp/random_permutation.cc @@ -50,11 +50,13 @@ void ComputeRandomPermutationWrapper(TestTimer& timer, int n) { std::bind(ComputeRandomPermutationRunner, std::ref(timer), n)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "n"}; - generic_test_main(argc, argv, param_names, "random_permutation.tsv", - &ComputeRandomPermutationWrapper); + GenericTestMain(args, "random_permutation.tsv", + &ComputeRandomPermutationWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/random_subset.cc b/epi_judge_cpp/random_subset.cc index b9a7934ee..5d743bf21 100644 --- a/epi_judge_cpp/random_subset.cc +++ b/epi_judge_cpp/random_subset.cc @@ -46,11 +46,12 @@ void RandomSubsetWrapper(TestTimer& timer, int n, int k) { RunFuncWithRetries(bind(RandomSubsetRunner, std::ref(timer), n, k)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "n", "k"}; - generic_test_main(argc, argv, param_names, "random_subset.tsv", - &RandomSubsetWrapper); + GenericTestMain(args, "random_subset.tsv", &RandomSubsetWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/real_square_root.cc b/epi_judge_cpp/real_square_root.cc index ca605cfce..fd583afb7 100644 --- a/epi_judge_cpp/real_square_root.cc +++ b/epi_judge_cpp/real_square_root.cc @@ -5,11 +5,12 @@ double SquareRoot(double x) { return 0.0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "real_square_root.tsv", - &SquareRoot); + GenericTestMain(args, "real_square_root.tsv", &SquareRoot, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/rectangle_intersection.cc b/epi_judge_cpp/rectangle_intersection.cc index 5210834a8..14627e248 100644 --- a/epi_judge_cpp/rectangle_intersection.cc +++ b/epi_judge_cpp/rectangle_intersection.cc @@ -24,11 +24,12 @@ std::ostream& operator<<(std::ostream& out, const Rectangle& r) { return EpiPrint(out, std::make_tuple(r.x, r.y, r.width, r.height)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"R1", "R2"}; - generic_test_main(argc, argv, param_names, "rectangle_intersection.tsv", - &IntersectRectangle); + GenericTestMain(args, "rectangle_intersection.tsv", &IntersectRectangle, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/refueling_schedule.cc b/epi_judge_cpp/refueling_schedule.cc index 3ee1ae51e..379102317 100644 --- a/epi_judge_cpp/refueling_schedule.cc +++ b/epi_judge_cpp/refueling_schedule.cc @@ -9,11 +9,12 @@ int FindAmpleCity(const vector& gallons, const vector& distances) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"gallons", "distances"}; - generic_test_main(argc, argv, param_names, "refueling_schedule.tsv", - &FindAmpleCity); + GenericTestMain(args, "refueling_schedule.tsv", &FindAmpleCity, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/regular_expression.cc b/epi_judge_cpp/regular_expression.cc index ed2b33447..7c27837b5 100644 --- a/epi_judge_cpp/regular_expression.cc +++ b/epi_judge_cpp/regular_expression.cc @@ -7,11 +7,12 @@ bool IsMatch(const string ®ex, const string &s) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char *argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"regex", "s"}; - generic_test_main(argc, argv, param_names, "regular_expression.tsv", - &IsMatch); + GenericTestMain(args, "regular_expression.tsv", &IsMatch, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/remove_duplicates.cc b/epi_judge_cpp/remove_duplicates.cc index f8ac4d77d..e80186d79 100644 --- a/epi_judge_cpp/remove_duplicates.cc +++ b/epi_judge_cpp/remove_duplicates.cc @@ -43,11 +43,12 @@ bool Comp(vector expected, vector result) { [](const std::string& s, const Name& n) { return s == n.first_name; }); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"names"}; - generic_test_main(argc, argv, param_names, "remove_duplicates.tsv", - &EliminateDuplicateWrapper, &Comp); + GenericTestMain(args, "remove_duplicates.tsv", &EliminateDuplicateWrapper, + &Comp, param_names); return 0; } diff --git a/epi_judge_cpp/remove_duplicates_from_sorted_list.cc b/epi_judge_cpp/remove_duplicates_from_sorted_list.cc index 6ac03f9f7..5ecbfd688 100644 --- a/epi_judge_cpp/remove_duplicates_from_sorted_list.cc +++ b/epi_judge_cpp/remove_duplicates_from_sorted_list.cc @@ -9,12 +9,12 @@ shared_ptr> RemoveDuplicates(const shared_ptr>& L) { return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L"}; - generic_test_main(argc, argv, param_names, - "remove_duplicates_from_sorted_list.tsv", - &RemoveDuplicates); + GenericTestMain(args, "remove_duplicates_from_sorted_list.tsv", + &RemoveDuplicates, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/replace_and_remove.cc b/epi_judge_cpp/replace_and_remove.cc index c1ffb25a2..9ddc1f173 100644 --- a/epi_judge_cpp/replace_and_remove.cc +++ b/epi_judge_cpp/replace_and_remove.cc @@ -32,11 +32,12 @@ vector ReplaceAndRemoveWrapper(TestTimer& timer, int size, return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "size", "s"}; - generic_test_main(argc, argv, param_names, "replace_and_remove.tsv", - &ReplaceAndRemoveWrapper); + GenericTestMain(args, "replace_and_remove.tsv", &ReplaceAndRemoveWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/reverse_bits.cc b/epi_judge_cpp/reverse_bits.cc index 819f46121..680f1dc1e 100644 --- a/epi_judge_cpp/reverse_bits.cc +++ b/epi_judge_cpp/reverse_bits.cc @@ -5,10 +5,12 @@ unsigned long ReverseBits(unsigned long x) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "reverse_bits.tsv", &ReverseBits); + GenericTestMain(args, "reverse_bits.tsv", &ReverseBits, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/reverse_digits.cc b/epi_judge_cpp/reverse_digits.cc index 67b434299..9ed0b7196 100644 --- a/epi_judge_cpp/reverse_digits.cc +++ b/epi_judge_cpp/reverse_digits.cc @@ -4,10 +4,12 @@ long Reverse(int x) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x"}; - generic_test_main(argc, argv, param_names, "reverse_digits.tsv", &Reverse); + GenericTestMain(args, "reverse_digits.tsv", &Reverse, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/reverse_sublist.cc b/epi_judge_cpp/reverse_sublist.cc index 714c4d860..6c1c4db9f 100644 --- a/epi_judge_cpp/reverse_sublist.cc +++ b/epi_judge_cpp/reverse_sublist.cc @@ -6,11 +6,12 @@ shared_ptr> ReverseSublist(shared_ptr> L, int start, return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L", "start", "finish"}; - generic_test_main(argc, argv, param_names, "reverse_sublist.tsv", - &ReverseSublist); + GenericTestMain(args, "reverse_sublist.tsv", &ReverseSublist, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/reverse_words.cc b/epi_judge_cpp/reverse_words.cc index 046e0839b..f247a38d0 100644 --- a/epi_judge_cpp/reverse_words.cc +++ b/epi_judge_cpp/reverse_words.cc @@ -17,11 +17,12 @@ string ReverseWordsWrapper(TestTimer& timer, string s) { return s_copy; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "s"}; - generic_test_main(argc, argv, param_names, "reverse_words.tsv", - &ReverseWordsWrapper); + GenericTestMain(args, "reverse_words.tsv", &ReverseWordsWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/road_network.cc b/epi_judge_cpp/road_network.cc index fc4c7a068..7134c6301 100644 --- a/epi_judge_cpp/road_network.cc +++ b/epi_judge_cpp/road_network.cc @@ -26,11 +26,12 @@ std::ostream& operator<<(std::ostream& out, const HighwaySection& hs) { return EpiPrint(out, std::make_tuple(hs.x, hs.y, hs.distance)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"H", "P", "n"}; - generic_test_main(argc, argv, param_names, "road_network.tsv", - &FindBestProposals); + GenericTestMain(args, "road_network.tsv", &FindBestProposals, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/roman_to_integer.cc b/epi_judge_cpp/roman_to_integer.cc index b2f74ee9d..846e23319 100644 --- a/epi_judge_cpp/roman_to_integer.cc +++ b/epi_judge_cpp/roman_to_integer.cc @@ -7,11 +7,12 @@ int RomanToInteger(const string& s) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, "roman_to_integer.tsv", - &RomanToInteger); + GenericTestMain(args, "roman_to_integer.tsv", &RomanToInteger, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/rook_attack.cc b/epi_judge_cpp/rook_attack.cc index fbdb6e6c3..4975e0ab6 100644 --- a/epi_judge_cpp/rook_attack.cc +++ b/epi_judge_cpp/rook_attack.cc @@ -13,11 +13,12 @@ vector> RookAttackWrapper(vector> A) { return a_copy; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "rook_attack.tsv", - &RookAttackWrapper); + GenericTestMain(args, "rook_attack.tsv", &RookAttackWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/rotate_array.cc b/epi_judge_cpp/rotate_array.cc index 61dc54e2f..d0508c5c1 100644 --- a/epi_judge_cpp/rotate_array.cc +++ b/epi_judge_cpp/rotate_array.cc @@ -18,11 +18,12 @@ vector RotateArrayWrapper(TestTimer& timer, vector A, return a_copy; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "A", "rotate_amount"}; - generic_test_main(argc, argv, param_names, "rotate_array.tsv", - &RotateArrayWrapper); + GenericTestMain(args, "rotate_array.tsv", &RotateArrayWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/run_length_compression.cc b/epi_judge_cpp/run_length_compression.cc index c2d5f349e..36fa51d2d 100644 --- a/epi_judge_cpp/run_length_compression.cc +++ b/epi_judge_cpp/run_length_compression.cc @@ -23,11 +23,12 @@ void RleTester(const string &encoded, const string &decoded) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char *argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"encoded", "decoded"}; - generic_test_main(argc, argv, param_names, "run_length_compression.tsv", - &RleTester); + GenericTestMain(args, "run_length_compression.tsv", &RleTester, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_entry_equal_to_index.cc b/epi_judge_cpp/search_entry_equal_to_index.cc index 2ace504ff..a9c059404 100644 --- a/epi_judge_cpp/search_entry_equal_to_index.cc +++ b/epi_judge_cpp/search_entry_equal_to_index.cc @@ -28,11 +28,13 @@ void SearchEntryEqualToItsIndexWrapper(TestTimer& timer, const vector& A) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "A"}; - generic_test_main(argc, argv, param_names, "binary_search_ai=i.tsv", - &SearchEntryEqualToItsIndexWrapper); + GenericTestMain(args, "search_entry_equal_to_index.tsv", + &SearchEntryEqualToItsIndexWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/search_first_greater_value_in_bst.cc b/epi_judge_cpp/search_first_greater_value_in_bst.cc index 97af6f384..88020743c 100644 --- a/epi_judge_cpp/search_first_greater_value_in_bst.cc +++ b/epi_judge_cpp/search_first_greater_value_in_bst.cc @@ -15,12 +15,13 @@ int FindFirstGreaterThanKWrapper(const unique_ptr>& tree, int k) { return result ? result->data : -1; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree", "k"}; - generic_test_main(argc, argv, param_names, - "search_first_greater_value_in_bst.tsv", - &FindFirstGreaterThanKWrapper); + GenericTestMain(args, "search_first_greater_value_in_bst.tsv", + &FindFirstGreaterThanKWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/search_first_key.cc b/epi_judge_cpp/search_first_key.cc index 06efdb980..a1a8171ad 100644 --- a/epi_judge_cpp/search_first_key.cc +++ b/epi_judge_cpp/search_first_key.cc @@ -7,11 +7,12 @@ int SearchFirstOfK(const vector& A, int k) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "k"}; - generic_test_main(argc, argv, param_names, "search_first_key.tsv", - &SearchFirstOfK); + GenericTestMain(args, "search_first_key.tsv", &SearchFirstOfK, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_for_min_max_in_array.cc b/epi_judge_cpp/search_for_min_max_in_array.cc index 00123de31..562dd304d 100644 --- a/epi_judge_cpp/search_for_min_max_in_array.cc +++ b/epi_judge_cpp/search_for_min_max_in_array.cc @@ -25,11 +25,12 @@ std::ostream& operator<<(std::ostream& out, const MinMax& x) { return out << "min: " << x.smallest << ", max: " << x.largest; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "search_for_min_max_in_array.tsv", - &FindMinMax); + GenericTestMain(args, "search_for_min_max_in_array.tsv", &FindMinMax, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_for_missing_element.cc b/epi_judge_cpp/search_for_missing_element.cc index 3d5bfc14c..ded125d3e 100644 --- a/epi_judge_cpp/search_for_missing_element.cc +++ b/epi_judge_cpp/search_for_missing_element.cc @@ -27,11 +27,12 @@ std::ostream& operator<<(std::ostream& out, const DuplicateAndMissing& x) { return out << "duplicate: " << x.duplicate << ", missing: " << x.missing; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "find_missing_and_duplicate.tsv", - &FindDuplicateMissing); + GenericTestMain(args, "find_missing_and_duplicate.tsv", &FindDuplicateMissing, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_frequent_items.cc b/epi_judge_cpp/search_frequent_items.cc index 029c8eff8..9a822de58 100644 --- a/epi_judge_cpp/search_frequent_items.cc +++ b/epi_judge_cpp/search_frequent_items.cc @@ -17,12 +17,13 @@ vector SearchFrequentItemsWrapper(int k, vector& stream) { return SearchFrequentItems(k, begin(stream), end(stream)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"k", "stream"}; - generic_test_main(argc, argv, param_names, "search_frequent_items.tsv", - &SearchFrequentItemsWrapper, - &UnorderedComparator>); + GenericTestMain(args, "search_frequent_items.tsv", + &SearchFrequentItemsWrapper, + &UnorderedComparator>, param_names); return 0; } diff --git a/epi_judge_cpp/search_in_list.cc b/epi_judge_cpp/search_in_list.cc index 42b333bb8..724070a22 100644 --- a/epi_judge_cpp/search_in_list.cc +++ b/epi_judge_cpp/search_in_list.cc @@ -14,11 +14,12 @@ int SearchListWrapper(shared_ptr> L, int key) { return result ? result->data : -1; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L", "key"}; - generic_test_main(argc, argv, param_names, "search_in_list.tsv", - &SearchListWrapper); + GenericTestMain(args, "search_in_list.tsv", &SearchListWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_maze.cc b/epi_judge_cpp/search_maze.cc index f94d77a44..9da882ea5 100644 --- a/epi_judge_cpp/search_maze.cc +++ b/epi_judge_cpp/search_maze.cc @@ -79,11 +79,12 @@ bool SearchMazeWrapper(TestTimer& timer, const vector>& maze, return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "maze", "s", "e"}; - generic_test_main(argc, argv, param_names, "search_maze.tsv", - &SearchMazeWrapper); + GenericTestMain(args, "search_maze.tsv", &SearchMazeWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_row_col_sorted_matrix.cc b/epi_judge_cpp/search_row_col_sorted_matrix.cc index 2c2715287..591dd800e 100644 --- a/epi_judge_cpp/search_row_col_sorted_matrix.cc +++ b/epi_judge_cpp/search_row_col_sorted_matrix.cc @@ -7,11 +7,12 @@ bool MatrixSearch(const vector>& A, int x) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "x"}; - generic_test_main(argc, argv, param_names, "search_row_col_sorted_matrix.tsv", - &MatrixSearch); + GenericTestMain(args, "search_row_col_sorted_matrix.tsv", &MatrixSearch, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_shifted_sorted_array.cc b/epi_judge_cpp/search_shifted_sorted_array.cc index 039a4b71a..d1880f821 100644 --- a/epi_judge_cpp/search_shifted_sorted_array.cc +++ b/epi_judge_cpp/search_shifted_sorted_array.cc @@ -7,11 +7,12 @@ int SearchSmallest(const vector& A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "search_shifted_sorted_array.tsv", - &SearchSmallest); + GenericTestMain(args, "search_shifted_sorted_array.tsv", &SearchSmallest, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/search_unknown_length_array.cc b/epi_judge_cpp/search_unknown_length_array.cc index e6ea63eea..bca4f5e17 100644 --- a/epi_judge_cpp/search_unknown_length_array.cc +++ b/epi_judge_cpp/search_unknown_length_array.cc @@ -7,11 +7,12 @@ int BinarySearchUnknownLength(const vector& A, int k) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "k"}; - generic_test_main(argc, argv, param_names, "search_unknown_length_array.tsv", - &BinarySearchUnknownLength); + GenericTestMain(args, "search_unknown_length_array.tsv", + &BinarySearchUnknownLength, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/smallest_nonconstructible_value.cc b/epi_judge_cpp/smallest_nonconstructible_value.cc index f4d3ad8c5..62452983c 100644 --- a/epi_judge_cpp/smallest_nonconstructible_value.cc +++ b/epi_judge_cpp/smallest_nonconstructible_value.cc @@ -7,12 +7,13 @@ int SmallestNonconstructibleValue(vector A) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, - "smallest_nonconstructible_value.tsv", - &SmallestNonconstructibleValue); + GenericTestMain(args, "smallest_nonconstructible_value.tsv", + &SmallestNonconstructibleValue, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/smallest_subarray_covering_all_values.cc b/epi_judge_cpp/smallest_subarray_covering_all_values.cc index f218d2190..90ac28e26 100644 --- a/epi_judge_cpp/smallest_subarray_covering_all_values.cc +++ b/epi_judge_cpp/smallest_subarray_covering_all_values.cc @@ -47,11 +47,13 @@ int FindSmallestSequentiallyCoveringSubsetWrapper( return result.end - result.start + 1; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "paragraph", "keywords"}; - generic_test_main(argc, argv, param_names, "subsequence_cover.tsv", - &FindSmallestSequentiallyCoveringSubsetWrapper); + GenericTestMain(args, "subsequence_cover.tsv", + &FindSmallestSequentiallyCoveringSubsetWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/smallest_subarray_covering_set.cc b/epi_judge_cpp/smallest_subarray_covering_set.cc index f17cc6d3a..6ec0334c7 100644 --- a/epi_judge_cpp/smallest_subarray_covering_set.cc +++ b/epi_judge_cpp/smallest_subarray_covering_set.cc @@ -44,12 +44,13 @@ int FindSmallestSubarrayCoveringSetWrapper( return result.end - result.start + 1; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char *argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "paragraph", "keywords"}; - generic_test_main(argc, argv, param_names, - "smallest_subarray_covering_set.tsv", - &FindSmallestSubarrayCoveringSetWrapper); + GenericTestMain(args, "smallest_subarray_covering_set.tsv", + &FindSmallestSubarrayCoveringSetWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/snake_string.cc b/epi_judge_cpp/snake_string.cc index c6360f2b8..4a29809ca 100644 --- a/epi_judge_cpp/snake_string.cc +++ b/epi_judge_cpp/snake_string.cc @@ -7,10 +7,12 @@ string SnakeString(const string& s) { return ""; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, "snake_string.tsv", &SnakeString); + GenericTestMain(args, "snake_string.tsv", &SnakeString, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/sort_almost_sorted_array.cc b/epi_judge_cpp/sort_almost_sorted_array.cc index ae032ea78..12565537b 100644 --- a/epi_judge_cpp/sort_almost_sorted_array.cc +++ b/epi_judge_cpp/sort_almost_sorted_array.cc @@ -14,11 +14,13 @@ vector SortApproximatelySortedDataWrapper(const vector& sequence, return SortApproximatelySortedData(cbegin(sequence), cend(sequence), k); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"sequence", "k"}; - generic_test_main(argc, argv, param_names, "sort_almost_sorted_array.tsv", - &SortApproximatelySortedDataWrapper); + GenericTestMain(args, "sort_almost_sorted_array.tsv", + &SortApproximatelySortedDataWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/sort_increasing_decreasing_array.cc b/epi_judge_cpp/sort_increasing_decreasing_array.cc index 29af54e12..f254e0ca2 100644 --- a/epi_judge_cpp/sort_increasing_decreasing_array.cc +++ b/epi_judge_cpp/sort_increasing_decreasing_array.cc @@ -7,12 +7,13 @@ vector SortKIncreasingDecreasingArray(const vector& A) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, - "sort_increasing_decreasing_array.tsv", - &SortKIncreasingDecreasingArray); + GenericTestMain(args, "sort_increasing_decreasing_array.tsv", + &SortKIncreasingDecreasingArray, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/sort_list.cc b/epi_judge_cpp/sort_list.cc index 93f8c5329..509a71aea 100644 --- a/epi_judge_cpp/sort_list.cc +++ b/epi_judge_cpp/sort_list.cc @@ -7,10 +7,12 @@ shared_ptr> StableSortList(shared_ptr> L) { return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L"}; - generic_test_main(argc, argv, param_names, "sort_list.tsv", &StableSortList); + GenericTestMain(args, "sort_list.tsv", &StableSortList, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/sorted_array_remove_dups.cc b/epi_judge_cpp/sorted_array_remove_dups.cc index 045cf1f98..29ed9d029 100644 --- a/epi_judge_cpp/sorted_array_remove_dups.cc +++ b/epi_judge_cpp/sorted_array_remove_dups.cc @@ -14,11 +14,12 @@ vector DeleteDuplicatesWrapper(vector A) { return A; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A"}; - generic_test_main(argc, argv, param_names, "sorted_array_remove_dups.tsv", - &DeleteDuplicatesWrapper); + GenericTestMain(args, "sorted_array_remove_dups.tsv", + &DeleteDuplicatesWrapper, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/sorted_arrays_merge.cc b/epi_judge_cpp/sorted_arrays_merge.cc index 4119106d9..00ca25b90 100644 --- a/epi_judge_cpp/sorted_arrays_merge.cc +++ b/epi_judge_cpp/sorted_arrays_merge.cc @@ -7,11 +7,12 @@ vector MergeSortedArrays(const vector>& sorted_arrays) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"sorted_arrays"}; - generic_test_main(argc, argv, param_names, "sorted_arrays_merge.tsv", - &MergeSortedArrays); + GenericTestMain(args, "sorted_arrays_merge.tsv", &MergeSortedArrays, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/sorted_list_to_bst.cc b/epi_judge_cpp/sorted_list_to_bst.cc index 3cdb48223..4281aee68 100644 --- a/epi_judge_cpp/sorted_list_to_bst.cc +++ b/epi_judge_cpp/sorted_list_to_bst.cc @@ -64,11 +64,13 @@ void BuildBSTFromSortedDoublyListWrapper(TestTimer& timer, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "L"}; - generic_test_main(argc, argv, param_names, "sorted_list_to_bst.tsv", - &BuildBSTFromSortedDoublyListWrapper); + GenericTestMain(args, "sorted_list_to_bst.tsv", + &BuildBSTFromSortedDoublyListWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/sorted_lists_merge.cc b/epi_judge_cpp/sorted_lists_merge.cc index e90d4bead..4a92988b9 100644 --- a/epi_judge_cpp/sorted_lists_merge.cc +++ b/epi_judge_cpp/sorted_lists_merge.cc @@ -6,11 +6,12 @@ shared_ptr> MergeTwoSortedLists(shared_ptr> L1, return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L1", "L2"}; - generic_test_main(argc, argv, param_names, "sorted_lists_merge.tsv", - &MergeTwoSortedLists); + GenericTestMain(args, "sorted_lists_merge.tsv", &MergeTwoSortedLists, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/spiral_ordering_segments.cc b/epi_judge_cpp/spiral_ordering_segments.cc index 859a3a69a..c9eee910a 100644 --- a/epi_judge_cpp/spiral_ordering_segments.cc +++ b/epi_judge_cpp/spiral_ordering_segments.cc @@ -7,11 +7,12 @@ vector MatrixInSpiralOrder(vector> square_matrix) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"square_matrix"}; - generic_test_main(argc, argv, param_names, "spiral_ordering_segments.tsv", - &MatrixInSpiralOrder); + GenericTestMain(args, "spiral_ordering_segments.tsv", &MatrixInSpiralOrder, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/spreadsheet_encoding.cc b/epi_judge_cpp/spreadsheet_encoding.cc index d8a54cb93..8cad7949a 100644 --- a/epi_judge_cpp/spreadsheet_encoding.cc +++ b/epi_judge_cpp/spreadsheet_encoding.cc @@ -7,11 +7,12 @@ int SSDecodeColID(const string& col) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"col"}; - generic_test_main(argc, argv, param_names, "spreadsheet_encoding.tsv", - &SSDecodeColID); + GenericTestMain(args, "spreadsheet_encoding.tsv", &SSDecodeColID, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/stack_with_max.cc b/epi_judge_cpp/stack_with_max.cc index f4a0151e8..5106f42bc 100644 --- a/epi_judge_cpp/stack_with_max.cc +++ b/epi_judge_cpp/stack_with_max.cc @@ -75,11 +75,12 @@ void StackTester(const std::vector& ops) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"ops"}; - generic_test_main(argc, argv, param_names, "stack_with_max.tsv", - &StackTester); + GenericTestMain(args, "stack_with_max.tsv", &StackTester, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/string_decompositions_into_dictionary_words.cc b/epi_judge_cpp/string_decompositions_into_dictionary_words.cc index dc1f9c669..96bb7116a 100644 --- a/epi_judge_cpp/string_decompositions_into_dictionary_words.cc +++ b/epi_judge_cpp/string_decompositions_into_dictionary_words.cc @@ -9,12 +9,12 @@ vector FindAllSubstrings(const string& s, const vector& words) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s", "words"}; - generic_test_main(argc, argv, param_names, - "string_decompositions_into_dictionary_words.tsv", - &FindAllSubstrings); + GenericTestMain(args, "string_decompositions_into_dictionary_words.tsv", + &FindAllSubstrings, DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/string_integer_interconversion.cc b/epi_judge_cpp/string_integer_interconversion.cc index 926ddbd9b..0f69765ff 100644 --- a/epi_judge_cpp/string_integer_interconversion.cc +++ b/epi_judge_cpp/string_integer_interconversion.cc @@ -24,11 +24,12 @@ void Wrapper(int x, const string& s) { } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x", "s"}; - generic_test_main(argc, argv, param_names, - "string_integer_interconversion.tsv", &Wrapper); + GenericTestMain(args, "string_integer_interconversion.tsv", &Wrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/string_transformability.cc b/epi_judge_cpp/string_transformability.cc index 115fd0729..c6a0cf422 100644 --- a/epi_judge_cpp/string_transformability.cc +++ b/epi_judge_cpp/string_transformability.cc @@ -10,11 +10,12 @@ int TransformString(unordered_set D, const string& s, const string& t) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"D", "s", "t"}; - generic_test_main(argc, argv, param_names, "string_transformability.tsv", - &TransformString); + GenericTestMain(args, "string_transformability.tsv", &TransformString, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/substring_match.cc b/epi_judge_cpp/substring_match.cc index 2442ce4ab..de86247ef 100644 --- a/epi_judge_cpp/substring_match.cc +++ b/epi_judge_cpp/substring_match.cc @@ -9,10 +9,12 @@ int RabinKarp(const string &t, const string &s) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char *argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"t", "s"}; - generic_test_main(argc, argv, param_names, "substring_match.tsv", &RabinKarp); + GenericTestMain(args, "substring_match.tsv", &RabinKarp, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/successor_in_tree.cc b/epi_judge_cpp/successor_in_tree.cc index af277c68d..072dd4409 100644 --- a/epi_judge_cpp/successor_in_tree.cc +++ b/epi_judge_cpp/successor_in_tree.cc @@ -13,11 +13,12 @@ int FindSuccessorWrapper(const unique_ptr>& tree, return result ? result->data : -1; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree", "node_idx"}; - generic_test_main(argc, argv, param_names, "successor_in_tree.tsv", - &FindSuccessorWrapper); + GenericTestMain(args, "successor_in_tree.tsv", &FindSuccessorWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/sudoku_solve.cc b/epi_judge_cpp/sudoku_solve.cc index 4bdde0ed1..2bc2168ba 100644 --- a/epi_judge_cpp/sudoku_solve.cc +++ b/epi_judge_cpp/sudoku_solve.cc @@ -79,11 +79,12 @@ void SolveSudokuWrapper(TestTimer& timer, } } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "partial_assignment"}; - generic_test_main(argc, argv, param_names, "sudoku_solve.tsv", - &SolveSudokuWrapper); + GenericTestMain(args, "sudoku_solve.tsv", &SolveSudokuWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/sum_root_to_leaf.cc b/epi_judge_cpp/sum_root_to_leaf.cc index c3d006486..2367a7bd7 100644 --- a/epi_judge_cpp/sum_root_to_leaf.cc +++ b/epi_judge_cpp/sum_root_to_leaf.cc @@ -5,11 +5,12 @@ int SumRootToLeaf(const unique_ptr>& tree) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "sum_root_to_leaf.tsv", - &SumRootToLeaf); + GenericTestMain(args, "sum_root_to_leaf.tsv", &SumRootToLeaf, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/sunset_view.cc b/epi_judge_cpp/sunset_view.cc index 3497457e1..e2669db63 100644 --- a/epi_judge_cpp/sunset_view.cc +++ b/epi_judge_cpp/sunset_view.cc @@ -14,11 +14,12 @@ vector ExamineBuildingsWithSunsetWrapper(const vector& sequence) { return ExamineBuildingsWithSunset(cbegin(sequence), cend(sequence)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"sequence"}; - generic_test_main(argc, argv, param_names, "sunset_view.tsv", - &ExamineBuildingsWithSunsetWrapper); + GenericTestMain(args, "sunset_view.tsv", &ExamineBuildingsWithSunsetWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/swap_bits.cc b/epi_judge_cpp/swap_bits.cc index 344e7eac7..8378fdb7c 100644 --- a/epi_judge_cpp/swap_bits.cc +++ b/epi_judge_cpp/swap_bits.cc @@ -3,10 +3,12 @@ long SwapBits(long x, int i, int j) { return 0; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"x", "i", "j"}; - generic_test_main(argc, argv, param_names, "swap_bits.tsv", &SwapBits); + GenericTestMain(args, "swap_bits.tsv", &SwapBits, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/task_pairing.cc b/epi_judge_cpp/task_pairing.cc index 0da9df1cf..604498c19 100644 --- a/epi_judge_cpp/task_pairing.cc +++ b/epi_judge_cpp/task_pairing.cc @@ -26,11 +26,12 @@ std::ostream& operator<<(std::ostream& out, const PairedTasks& t) { return EpiPrint(out, std::make_tuple(t.task_1, t.task_2)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"task_durations"}; - generic_test_main(argc, argv, param_names, "task_pairing.tsv", - &OptimumTaskAssignment); + GenericTestMain(args, "task_pairing.tsv", &OptimumTaskAssignment, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/three_sum.cc b/epi_judge_cpp/three_sum.cc index 09058a6c7..428f26238 100644 --- a/epi_judge_cpp/three_sum.cc +++ b/epi_judge_cpp/three_sum.cc @@ -7,10 +7,12 @@ bool HasThreeSum(vector A, int t) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "t"}; - generic_test_main(argc, argv, param_names, "three_sum.tsv", &HasThreeSum); + GenericTestMain(args, "three_sum.tsv", &HasThreeSum, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/tree_connect_leaves.cc b/epi_judge_cpp/tree_connect_leaves.cc index f05ba4c0e..47834a753 100644 --- a/epi_judge_cpp/tree_connect_leaves.cc +++ b/epi_judge_cpp/tree_connect_leaves.cc @@ -33,11 +33,12 @@ vector CreateListOfLeavesWrapper( return extracted_result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree"}; - generic_test_main(argc, argv, param_names, "tree_connect_leaves.tsv", - &CreateListOfLeavesWrapper); + GenericTestMain(args, "tree_connect_leaves.tsv", &CreateListOfLeavesWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_exterior.cc b/epi_judge_cpp/tree_exterior.cc index ace53f4e0..afa2ea871 100644 --- a/epi_judge_cpp/tree_exterior.cc +++ b/epi_judge_cpp/tree_exterior.cc @@ -32,11 +32,12 @@ vector ExteriorBinaryTreeWrapper( return CreateOutputVector(result); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree"}; - generic_test_main(argc, argv, param_names, "tree_exterior.tsv", - &ExteriorBinaryTreeWrapper); + GenericTestMain(args, "tree_exterior.tsv", &ExteriorBinaryTreeWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_from_preorder_inorder.cc b/epi_judge_cpp/tree_from_preorder_inorder.cc index 94b8205fc..f8a7829e4 100644 --- a/epi_judge_cpp/tree_from_preorder_inorder.cc +++ b/epi_judge_cpp/tree_from_preorder_inorder.cc @@ -11,11 +11,13 @@ unique_ptr> BinaryTreeFromPreorderInorder( return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"preorder", "inorder"}; - generic_test_main(argc, argv, param_names, "tree_from_preorder_inorder.tsv", - &BinaryTreeFromPreorderInorder); + GenericTestMain(args, "tree_from_preorder_inorder.tsv", + &BinaryTreeFromPreorderInorder, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/tree_from_preorder_with_null.cc b/epi_judge_cpp/tree_from_preorder_with_null.cc index 6ff8dfadb..fa2967a88 100644 --- a/epi_judge_cpp/tree_from_preorder_with_null.cc +++ b/epi_judge_cpp/tree_from_preorder_with_null.cc @@ -34,11 +34,13 @@ unique_ptr> ReconstructPreorderWrapper( return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "preorder"}; - generic_test_main(argc, argv, param_names, "tree_from_preorder_with_null.tsv", - &ReconstructPreorderWrapper); + GenericTestMain(args, "tree_from_preorder_with_null.tsv", + &ReconstructPreorderWrapper, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/tree_inorder.cc b/epi_judge_cpp/tree_inorder.cc index ae4109fd1..d17c6b5ba 100644 --- a/epi_judge_cpp/tree_inorder.cc +++ b/epi_judge_cpp/tree_inorder.cc @@ -11,11 +11,12 @@ vector InorderTraversal(const unique_ptr>& tree) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "tree_inorder.tsv", - &InorderTraversal); + GenericTestMain(args, "tree_inorder.tsv", &InorderTraversal, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_level_order.cc b/epi_judge_cpp/tree_level_order.cc index a5777eb6a..cae784914 100644 --- a/epi_judge_cpp/tree_level_order.cc +++ b/epi_judge_cpp/tree_level_order.cc @@ -12,11 +12,12 @@ vector> BinaryTreeDepthOrder( return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "tree_level_order.tsv", - &BinaryTreeDepthOrder); + GenericTestMain(args, "tree_level_order.tsv", &BinaryTreeDepthOrder, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_postorder.cc b/epi_judge_cpp/tree_postorder.cc index d85bf0da1..5f916e40a 100644 --- a/epi_judge_cpp/tree_postorder.cc +++ b/epi_judge_cpp/tree_postorder.cc @@ -12,11 +12,12 @@ vector PostorderTraversal(const unique_ptr>& tree) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "tree_postorder.tsv", - &PostorderTraversal); + GenericTestMain(args, "tree_postorder.tsv", &PostorderTraversal, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_preorder.cc b/epi_judge_cpp/tree_preorder.cc index 5b46731c9..ac406cb8c 100644 --- a/epi_judge_cpp/tree_preorder.cc +++ b/epi_judge_cpp/tree_preorder.cc @@ -9,11 +9,12 @@ vector PreorderTraversal(const unique_ptr>& tree) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "tree_preorder.tsv", - &PreorderTraversal); + GenericTestMain(args, "tree_preorder.tsv", &PreorderTraversal, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_right_sibling.cc b/epi_judge_cpp/tree_right_sibling.cc index a4947ca6e..de357475d 100644 --- a/epi_judge_cpp/tree_right_sibling.cc +++ b/epi_judge_cpp/tree_right_sibling.cc @@ -44,11 +44,12 @@ std::vector> ConstructRightSiblingWrapper( return result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "tree"}; - generic_test_main(argc, argv, param_names, "tree_right_sibling.tsv", - &ConstructRightSiblingWrapper); + GenericTestMain(args, "tree_right_sibling.tsv", &ConstructRightSiblingWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/tree_with_parent_inorder.cc b/epi_judge_cpp/tree_with_parent_inorder.cc index a397cf376..597be8cf1 100644 --- a/epi_judge_cpp/tree_with_parent_inorder.cc +++ b/epi_judge_cpp/tree_with_parent_inorder.cc @@ -9,11 +9,12 @@ vector InorderTraversal(const unique_ptr>& tree) { return {}; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"tree"}; - generic_test_main(argc, argv, param_names, "tree_with_parent_inorder.tsv", - &InorderTraversal); + GenericTestMain(args, "tree_with_parent_inorder.tsv", &InorderTraversal, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/two_sum.cc b/epi_judge_cpp/two_sum.cc index 985727109..ce8b19f23 100644 --- a/epi_judge_cpp/two_sum.cc +++ b/epi_judge_cpp/two_sum.cc @@ -7,10 +7,12 @@ bool HasTwoSum(const vector& A, int t) { return true; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"A", "t"}; - generic_test_main(argc, argv, param_names, "two_sum.tsv", &HasTwoSum); + GenericTestMain(args, "two_sum.tsv", &HasTwoSum, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_cpp/uniform_random_number.cc b/epi_judge_cpp/uniform_random_number.cc index bdf2649ab..ad79d6317 100644 --- a/epi_judge_cpp/uniform_random_number.cc +++ b/epi_judge_cpp/uniform_random_number.cc @@ -41,11 +41,12 @@ void UniformRandomWrapper(TestTimer& timer, int lower_bound, int upper_bound) { bind(UniformRandomRunner, std::ref(timer), lower_bound, upper_bound)); } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"timer", "lower_bound", "upper_bound"}; - generic_test_main(argc, argv, param_names, "uniform_random_number.tsv", - &UniformRandomWrapper); + GenericTestMain(args, "uniform_random_number.tsv", &UniformRandomWrapper, + DefaultComparator{}, param_names); return 0; } diff --git a/epi_judge_cpp/valid_ip_addresses.cc b/epi_judge_cpp/valid_ip_addresses.cc index 35f0e7e34..8c6d8baab 100644 --- a/epi_judge_cpp/valid_ip_addresses.cc +++ b/epi_judge_cpp/valid_ip_addresses.cc @@ -16,11 +16,12 @@ bool comp(vector expected, vector result) { return expected == result; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"s"}; - generic_test_main(argc, argv, param_names, "valid_ip_addresses.tsv", - &GetValidIpAddress, &comp); + GenericTestMain(args, "valid_ip_addresses.tsv", &GetValidIpAddress, &comp, + param_names); return 0; } diff --git a/epi_judge_cpp/zip_list.cc b/epi_judge_cpp/zip_list.cc index 62474cfcd..f4289c191 100644 --- a/epi_judge_cpp/zip_list.cc +++ b/epi_judge_cpp/zip_list.cc @@ -10,11 +10,12 @@ shared_ptr> ZippingLinkedList( return nullptr; } -#include "test_framework/test_utils_generic_main.h" +#include "test_framework/generic_test.h" int main(int argc, char* argv[]) { + std::vector args{argv + 1, argv + argc}; std::vector param_names{"L"}; - generic_test_main(argc, argv, param_names, "zip_list.tsv", - &ZippingLinkedList); + GenericTestMain(args, "zip_list.tsv", &ZippingLinkedList, DefaultComparator{}, + param_names); return 0; } diff --git a/epi_judge_java/Makefile b/epi_judge_java/Makefile index 5930c662f..98f21f29c 100644 --- a/epi_judge_java/Makefile +++ b/epi_judge_java/Makefile @@ -88,6 +88,9 @@ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/EpiTestExpectedType.class : $(SRC_DI $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/EpiUserType.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/EpiUserType.java $(JSON_CLASSES) $(BUILD_DIR) $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/EpiUserType.java" +$(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTest.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTest.java $(JSON_CLASSES) $(BUILD_DIR) + $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTest.java" + $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTestHandler.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTestHandler.java $(JSON_CLASSES) $(BUILD_DIR) $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTestHandler.java" @@ -100,12 +103,12 @@ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/Platform.class : $(SRC_DIR)/$(MAIN_P $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/RandomSequenceChecker.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/RandomSequenceChecker.java $(JSON_CLASSES) $(BUILD_DIR) $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/RandomSequenceChecker.java" +$(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestConfig.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestConfig.java $(JSON_CLASSES) $(BUILD_DIR) + $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestConfig.java" + $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestFailureException.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestFailureException.java $(JSON_CLASSES) $(BUILD_DIR) $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestFailureException.java" -$(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestHandler.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestHandler.java $(JSON_CLASSES) $(BUILD_DIR) - $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestHandler.java" - $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestOutput.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestOutput.java $(JSON_CLASSES) $(BUILD_DIR) $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestOutput.java" @@ -124,6 +127,9 @@ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsConsole.class : $(SRC_DIR)/ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsDeserialization.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsDeserialization.java $(JSON_CLASSES) $(BUILD_DIR) $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsDeserialization.java" +$(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TimeoutException.class : $(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TimeoutException.java $(JSON_CLASSES) $(BUILD_DIR) + $(JAVAC_CMD) "$(SRC_DIR)/$(MAIN_PACKAGE)/test_framework/TimeoutException.java" + TEST_FRAMEWORK := \ $(BUILD_DIR) \ $(JSON_CLASSES) \ @@ -139,18 +145,20 @@ TEST_FRAMEWORK := \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/EpiTestComparator.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/EpiTestExpectedType.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/EpiUserType.class \ + $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTest.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/GenericTestHandler.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/LexicographicalListComparator.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/Platform.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/RandomSequenceChecker.class \ + $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestConfig.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestFailureException.class \ - $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestHandler.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestOutput.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestResult.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestTimer.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtils.class \ $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsConsole.class \ - $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsDeserialization.class + $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TestUtilsDeserialization.class \ + $(BUILD_DIR)/$(MAIN_PACKAGE)/test_framework/TimeoutException.class .PHONY: AbsentValueArray $(BUILD_DIR)/$(MAIN_PACKAGE)/AbsentValueArray.class: $(SRC_DIR)/$(MAIN_PACKAGE)/AbsentValueArray.java $(TEST_FRAMEWORK) diff --git a/epi_judge_java/epi/AbsentValueArray.java b/epi_judge_java/epi/AbsentValueArray.java index 1570672a5..3a5b17081 100644 --- a/epi_judge_java/epi/AbsentValueArray.java +++ b/epi_judge_java/epi/AbsentValueArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class AbsentValueArray { @@ -12,7 +12,7 @@ public static int findMissingElement(Iterable stream) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/AddingCredits.java b/epi_judge_java/epi/AddingCredits.java index 7694d8750..7ea69525f 100644 --- a/epi_judge_java/epi/AddingCredits.java +++ b/epi_judge_java/epi/AddingCredits.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.List; @@ -111,7 +111,7 @@ public static void ClientsCreditsInfoTester(List ops) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/AdvanceByOffsets.java b/epi_judge_java/epi/AdvanceByOffsets.java index 191ae569f..772836b51 100644 --- a/epi_judge_java/epi/AdvanceByOffsets.java +++ b/epi_judge_java/epi/AdvanceByOffsets.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -13,7 +13,7 @@ public static boolean canReachEnd(List maxAdvanceSteps) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/AlternatingArray.java b/epi_judge_java/epi/AlternatingArray.java index d8a608547..153f39207 100644 --- a/epi_judge_java/epi/AlternatingArray.java +++ b/epi_judge_java/epi/AlternatingArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -50,7 +50,7 @@ public static void rearrangeWrapper(TestTimer timer, List A) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Anagrams.java b/epi_judge_java/epi/Anagrams.java index c03f8d62e..d1aed4f53 100644 --- a/epi_judge_java/epi/Anagrams.java +++ b/epi_judge_java/epi/Anagrams.java @@ -3,7 +3,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -35,7 +35,7 @@ public static List> findAnagrams(List dictionary) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ApplyPermutation.java b/epi_judge_java/epi/ApplyPermutation.java index 21cbd1fd1..77b27b53c 100644 --- a/epi_judge_java/epi/ApplyPermutation.java +++ b/epi_judge_java/epi/ApplyPermutation.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -19,7 +19,7 @@ public static List applyPermutationWrapper(List perm, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Arbitrage.java b/epi_judge_java/epi/Arbitrage.java index 22c2f7f42..439014ac4 100644 --- a/epi_judge_java/epi/Arbitrage.java +++ b/epi_judge_java/epi/Arbitrage.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static boolean isArbitrageExist(List> graph) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BinaryTreeNode.java b/epi_judge_java/epi/BinaryTreeNode.java index 2eb0d2d54..d4881cdb0 100644 --- a/epi_judge_java/epi/BinaryTreeNode.java +++ b/epi_judge_java/epi/BinaryTreeNode.java @@ -20,8 +20,7 @@ public BinaryTreeNode(T data, BinaryTreeNode left, this.right = right; } - @Override - public boolean equals(Object o) { + @Override public boolean equals(Object o) { // TODO Remove equal override if (this == o) { return true; } diff --git a/epi_judge_java/epi/BinomialCoefficients.java b/epi_judge_java/epi/BinomialCoefficients.java index d9cc50ea5..bbffb07b1 100644 --- a/epi_judge_java/epi/BinomialCoefficients.java +++ b/epi_judge_java/epi/BinomialCoefficients.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class BinomialCoefficients { @EpiTest(testfile = "binomial_coefficients.tsv") @@ -12,7 +12,7 @@ public static int computeBinomialCoefficient(int n, int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Bonus.java b/epi_judge_java/epi/Bonus.java index 2e4f20701..c50bbf530 100644 --- a/epi_judge_java/epi/Bonus.java +++ b/epi_judge_java/epi/Bonus.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -25,7 +25,7 @@ public static Integer calculateBonus(List productivity) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BstFromPreorder.java b/epi_judge_java/epi/BstFromPreorder.java index d4b37e452..24fe18b52 100644 --- a/epi_judge_java/epi/BstFromPreorder.java +++ b/epi_judge_java/epi/BstFromPreorder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public class BstFromPreorder { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BstFromSortedArray.java b/epi_judge_java/epi/BstFromSortedArray.java index 79fd1d03e..e347c1b4a 100644 --- a/epi_judge_java/epi/BstFromSortedArray.java +++ b/epi_judge_java/epi/BstFromSortedArray.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -33,7 +33,7 @@ public static int buildMinHeightBSTFromSortedArrayWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BstMerge.java b/epi_judge_java/epi/BstMerge.java index f8f0655b2..29e896ab0 100644 --- a/epi_judge_java/epi/BstMerge.java +++ b/epi_judge_java/epi/BstMerge.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class BstMerge { @@ -14,7 +14,7 @@ public static BstNode mergeTwoBsts(BstNode A, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BstNode.java b/epi_judge_java/epi/BstNode.java index c01956e82..31b8b11b4 100644 --- a/epi_judge_java/epi/BstNode.java +++ b/epi_judge_java/epi/BstNode.java @@ -19,8 +19,7 @@ public BstNode(T data, BstNode left, BstNode right) { this.right = right; } - @Override - public boolean equals(Object o) { + @Override public boolean equals(Object o) { // TODO Remove equal override if (this == o) { return true; } diff --git a/epi_judge_java/epi/BstToSortedList.java b/epi_judge_java/epi/BstToSortedList.java index 0d6e82bb5..9e479625c 100644 --- a/epi_judge_java/epi/BstToSortedList.java +++ b/epi_judge_java/epi/BstToSortedList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -37,7 +37,7 @@ public static BstNode bstToDoublyLinkedList(BstNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BuyAndSellStock.java b/epi_judge_java/epi/BuyAndSellStock.java index a23bd2a27..fc79808b6 100644 --- a/epi_judge_java/epi/BuyAndSellStock.java +++ b/epi_judge_java/epi/BuyAndSellStock.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -13,7 +13,7 @@ public static double computeMaxProfit(List prices) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BuyAndSellStockKTimes.java b/epi_judge_java/epi/BuyAndSellStockKTimes.java index 64b11893d..69aae3ddb 100644 --- a/epi_judge_java/epi/BuyAndSellStockKTimes.java +++ b/epi_judge_java/epi/BuyAndSellStockKTimes.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static double buyAndSellStockKTimes(List prices, int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/BuyAndSellStockTwice.java b/epi_judge_java/epi/BuyAndSellStockTwice.java index 1751e0299..1f0c5877e 100644 --- a/epi_judge_java/epi/BuyAndSellStockTwice.java +++ b/epi_judge_java/epi/BuyAndSellStockTwice.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -13,7 +13,7 @@ public static double buyAndSellStockTwice(List prices) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/CalendarRendering.java b/epi_judge_java/epi/CalendarRendering.java index 15388958f..45ac7b83e 100644 --- a/epi_judge_java/epi/CalendarRendering.java +++ b/epi_judge_java/epi/CalendarRendering.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -36,7 +36,7 @@ public static int findMaxSimultaneousEvents(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/CircularQueue.java b/epi_judge_java/epi/CircularQueue.java index fc2002618..4ec59cfab 100644 --- a/epi_judge_java/epi/CircularQueue.java +++ b/epi_judge_java/epi/CircularQueue.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.List; @@ -73,7 +73,7 @@ public static void queueTest(List ops) throws TestFailureException { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ClosestIntSameWeight.java b/epi_judge_java/epi/ClosestIntSameWeight.java index 617e08add..c7141446c 100644 --- a/epi_judge_java/epi/ClosestIntSameWeight.java +++ b/epi_judge_java/epi/ClosestIntSameWeight.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ClosestIntSameWeight { @EpiTest(testfile = "closest_int_same_weight.tsv") @@ -11,7 +11,7 @@ public static long closestIntSameBitCount(long x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/CollatzChecker.java b/epi_judge_java/epi/CollatzChecker.java index 93367f3ea..7bd8d2d5f 100644 --- a/epi_judge_java/epi/CollatzChecker.java +++ b/epi_judge_java/epi/CollatzChecker.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class CollatzChecker { @EpiTest(testfile = "collatz_checker.tsv") @@ -12,7 +12,7 @@ public static boolean testCollatzConjecture(int n) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Combinations.java b/epi_judge_java/epi/Combinations.java index d6a3c0e30..c6ceb70df 100644 --- a/epi_judge_java/epi/Combinations.java +++ b/epi_judge_java/epi/Combinations.java @@ -3,7 +3,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -29,7 +29,7 @@ public static List> combinations(int n, int k) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ConvertBase.java b/epi_judge_java/epi/ConvertBase.java index a6a0b61e5..00b5e8ee3 100644 --- a/epi_judge_java/epi/ConvertBase.java +++ b/epi_judge_java/epi/ConvertBase.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ConvertBase { @EpiTest(testfile = "convert_base.tsv") @@ -12,7 +12,7 @@ public static String convertBase(String numAsString, int b1, int b2) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/CopyPostingList.java b/epi_judge_java/epi/CopyPostingList.java index ecb9661d9..9686adfa5 100644 --- a/epi_judge_java/epi/CopyPostingList.java +++ b/epi_judge_java/epi/CopyPostingList.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -112,7 +112,7 @@ public static void copyPostingsListWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/CountBits.java b/epi_judge_java/epi/CountBits.java index 13d0b95d7..655131af2 100644 --- a/epi_judge_java/epi/CountBits.java +++ b/epi_judge_java/epi/CountBits.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class CountBits { @EpiTest(testfile = "count_bits.tsv") @@ -12,7 +12,7 @@ public static short countBits(int x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/CountInversions.java b/epi_judge_java/epi/CountInversions.java index a30ef65e8..e145f845c 100644 --- a/epi_judge_java/epi/CountInversions.java +++ b/epi_judge_java/epi/CountInversions.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int countInversions(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DeadlockDetection.java b/epi_judge_java/epi/DeadlockDetection.java index 7344742e6..f78ef75cd 100644 --- a/epi_judge_java/epi/DeadlockDetection.java +++ b/epi_judge_java/epi/DeadlockDetection.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -62,7 +62,7 @@ public static boolean isDeadlockedWrapper(TestTimer timer, int numNodes, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DefectiveJugs.java b/epi_judge_java/epi/DefectiveJugs.java index d057beddc..e541682d5 100644 --- a/epi_judge_java/epi/DefectiveJugs.java +++ b/epi_judge_java/epi/DefectiveJugs.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -28,7 +28,7 @@ public static boolean checkFeasible(List jugs, int L, int H) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DeleteFromList.java b/epi_judge_java/epi/DeleteFromList.java index d05fc9f04..a27bdf901 100644 --- a/epi_judge_java/epi/DeleteFromList.java +++ b/epi_judge_java/epi/DeleteFromList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; public class DeleteFromList { @@ -13,7 +13,7 @@ public static void deleteList(ListNode aNode) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DeleteKthLastFromList.java b/epi_judge_java/epi/DeleteKthLastFromList.java index e02e85536..ffb3222c4 100644 --- a/epi_judge_java/epi/DeleteKthLastFromList.java +++ b/epi_judge_java/epi/DeleteKthLastFromList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class DeleteKthLastFromList { @EpiTest(testfile = "delete_kth_last_from_list.tsv") @@ -13,7 +13,7 @@ public static ListNode removeKthLast(ListNode L, int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DeleteNodeFromList.java b/epi_judge_java/epi/DeleteNodeFromList.java index 0b37eda81..9e513fb6a 100644 --- a/epi_judge_java/epi/DeleteNodeFromList.java +++ b/epi_judge_java/epi/DeleteNodeFromList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; public class DeleteNodeFromList { @@ -33,7 +33,7 @@ public static ListNode deleteListWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DescendantAndAncestorInBst.java b/epi_judge_java/epi/DescendantAndAncestorInBst.java index 2596cb0bc..396d8152e 100644 --- a/epi_judge_java/epi/DescendantAndAncestorInBst.java +++ b/epi_judge_java/epi/DescendantAndAncestorInBst.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; public class DescendantAndAncestorInBst { @@ -33,7 +33,7 @@ public static boolean pairIncludesAncestorAndDescendantOfMWrapper( } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DirectoryPathNormalization.java b/epi_judge_java/epi/DirectoryPathNormalization.java index 64083f1f4..e49103275 100644 --- a/epi_judge_java/epi/DirectoryPathNormalization.java +++ b/epi_judge_java/epi/DirectoryPathNormalization.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class DirectoryPathNormalization { @EpiTest(testfile = "directory_path_normalization.tsv") @@ -12,7 +12,7 @@ public static String shortestEquivalentPath(String path) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DoListsOverlap.java b/epi_judge_java/epi/DoListsOverlap.java index 3e6761048..16ccd0746 100644 --- a/epi_judge_java/epi/DoListsOverlap.java +++ b/epi_judge_java/epi/DoListsOverlap.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -91,7 +91,7 @@ public static ListNode overlappingLists(ListNode l0, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DoTerminatedListsOverlap.java b/epi_judge_java/epi/DoTerminatedListsOverlap.java index 5faf779e9..e1d6aacc4 100644 --- a/epi_judge_java/epi/DoTerminatedListsOverlap.java +++ b/epi_judge_java/epi/DoTerminatedListsOverlap.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -50,7 +50,7 @@ public class DoTerminatedListsOverlap { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DrawingSkyline.java b/epi_judge_java/epi/DrawingSkyline.java index a41d881a2..eb15a8925 100644 --- a/epi_judge_java/epi/DrawingSkyline.java +++ b/epi_judge_java/epi/DrawingSkyline.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -52,7 +52,7 @@ public static List drawingSkylines(List buildings) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/DutchNationalFlag.java b/epi_judge_java/epi/DutchNationalFlag.java index dd33cbfd5..3dfbc5312 100644 --- a/epi_judge_java/epi/DutchNationalFlag.java +++ b/epi_judge_java/epi/DutchNationalFlag.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -56,7 +56,7 @@ public static void dutchFlagPartitionWrapper(TestTimer timer, List A, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ElementAppearingOnce.java b/epi_judge_java/epi/ElementAppearingOnce.java index 70c332374..fd49d78b0 100644 --- a/epi_judge_java/epi/ElementAppearingOnce.java +++ b/epi_judge_java/epi/ElementAppearingOnce.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int findElementAppearsOnce(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/EnumerateBalancedParentheses.java b/epi_judge_java/epi/EnumerateBalancedParentheses.java index 8fdb2440c..491c99cca 100644 --- a/epi_judge_java/epi/EnumerateBalancedParentheses.java +++ b/epi_judge_java/epi/EnumerateBalancedParentheses.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -28,7 +28,7 @@ public static List generateBalancedParentheses(int numPairs) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/EnumeratePalindromicDecompositions.java b/epi_judge_java/epi/EnumeratePalindromicDecompositions.java index 3b0fb8a66..441be4489 100644 --- a/epi_judge_java/epi/EnumeratePalindromicDecompositions.java +++ b/epi_judge_java/epi/EnumeratePalindromicDecompositions.java @@ -3,7 +3,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; import java.util.function.BiPredicate; @@ -28,7 +28,7 @@ public static List> palindromeDecompositions(String input) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/EnumerateTrees.java b/epi_judge_java/epi/EnumerateTrees.java index 5dae052b0..d962d968f 100644 --- a/epi_judge_java/epi/EnumerateTrees.java +++ b/epi_judge_java/epi/EnumerateTrees.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -48,7 +48,7 @@ public static List serializeStructure(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/EvaluateRpn.java b/epi_judge_java/epi/EvaluateRpn.java index bdf196c7c..9ff94c2c7 100644 --- a/epi_judge_java/epi/EvaluateRpn.java +++ b/epi_judge_java/epi/EvaluateRpn.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class EvaluateRpn { @EpiTest(testfile = "evaluate_rpn.tsv") @@ -12,7 +12,7 @@ public static int eval(String expression) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/EvenOddArray.java b/epi_judge_java/epi/EvenOddArray.java index 4c0cbba6e..1557a0e47 100644 --- a/epi_judge_java/epi/EvenOddArray.java +++ b/epi_judge_java/epi/EvenOddArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -44,7 +44,7 @@ public static void evenOddWrapper(TestTimer timer, List A) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/EvenOddListMerge.java b/epi_judge_java/epi/EvenOddListMerge.java index 783799dbc..35291daf7 100644 --- a/epi_judge_java/epi/EvenOddListMerge.java +++ b/epi_judge_java/epi/EvenOddListMerge.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static ListNode evenOddMerge(ListNode L) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/FindSalaryThreshold.java b/epi_judge_java/epi/FindSalaryThreshold.java index 9560caa4d..850a71593 100644 --- a/epi_judge_java/epi/FindSalaryThreshold.java +++ b/epi_judge_java/epi/FindSalaryThreshold.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static double findSalaryCap(int targetPayroll, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/FirstMissingPositiveEntry.java b/epi_judge_java/epi/FirstMissingPositiveEntry.java index fb63909e7..7b23879cf 100644 --- a/epi_judge_java/epi/FirstMissingPositiveEntry.java +++ b/epi_judge_java/epi/FirstMissingPositiveEntry.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int findFirstMissingPositive(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Gcd.java b/epi_judge_java/epi/Gcd.java index 3eaa21c77..d15373c8a 100644 --- a/epi_judge_java/epi/Gcd.java +++ b/epi_judge_java/epi/Gcd.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class Gcd { @EpiTest(testfile = "gcd.tsv") @@ -12,7 +12,7 @@ public static long GCD(long x, long y) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/GraphClone.java b/epi_judge_java/epi/GraphClone.java index 7a343edfe..847f281ad 100644 --- a/epi_judge_java/epi/GraphClone.java +++ b/epi_judge_java/epi/GraphClone.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.ArrayDeque; import java.util.ArrayList; @@ -92,7 +92,7 @@ public static void cloneGraphTest(int k, List edges) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/GrayCode.java b/epi_judge_java/epi/GrayCode.java index a4264c7dc..8b57c0940 100644 --- a/epi_judge_java/epi/GrayCode.java +++ b/epi_judge_java/epi/GrayCode.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -53,7 +53,7 @@ public static void grayCodeWrapper(TestTimer timer, int numBits) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/GroupEqualEntries.java b/epi_judge_java/epi/GroupEqualEntries.java index fc9fcaddd..1be714508 100644 --- a/epi_judge_java/epi/GroupEqualEntries.java +++ b/epi_judge_java/epi/GroupEqualEntries.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -90,7 +90,7 @@ public static void groupByAgeWrapper(TestTimer timer, List people) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Hanoi.java b/epi_judge_java/epi/Hanoi.java index 30f4c654b..eb01a252b 100644 --- a/epi_judge_java/epi/Hanoi.java +++ b/epi_judge_java/epi/Hanoi.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -69,7 +69,7 @@ public static void computeTowerHanoiWrapper(TestTimer timer, int numRings) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/HuffmanCoding.java b/epi_judge_java/epi/HuffmanCoding.java index ac34eb2f6..35aa7334a 100644 --- a/epi_judge_java/epi/HuffmanCoding.java +++ b/epi_judge_java/epi/HuffmanCoding.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -32,7 +32,7 @@ public static Double huffmanEncoding(List symbols) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/InsertInList.java b/epi_judge_java/epi/InsertInList.java index 09b71333f..d5aca93c2 100644 --- a/epi_judge_java/epi/InsertInList.java +++ b/epi_judge_java/epi/InsertInList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; public class InsertInList { @@ -32,7 +32,7 @@ public static void insertAfter(ListNode node, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/InsertOperatorsInString.java b/epi_judge_java/epi/InsertOperatorsInString.java index 8b23f8ec6..2d466da53 100644 --- a/epi_judge_java/epi/InsertOperatorsInString.java +++ b/epi_judge_java/epi/InsertOperatorsInString.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static boolean expressionSynthesis(List digits, int target) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntAsArrayIncrement.java b/epi_judge_java/epi/IntAsArrayIncrement.java index dda8d84b1..d9914f3ae 100644 --- a/epi_judge_java/epi/IntAsArrayIncrement.java +++ b/epi_judge_java/epi/IntAsArrayIncrement.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -13,7 +13,7 @@ public static List plusOne(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntAsArrayMultiply.java b/epi_judge_java/epi/IntAsArrayMultiply.java index 20c31f06c..68c3f1133 100644 --- a/epi_judge_java/epi/IntAsArrayMultiply.java +++ b/epi_judge_java/epi/IntAsArrayMultiply.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -13,7 +13,7 @@ public static List multiply(List num1, List num2) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntAsListAdd.java b/epi_judge_java/epi/IntAsListAdd.java index 41778e33b..b0f8fa3dc 100644 --- a/epi_judge_java/epi/IntAsListAdd.java +++ b/epi_judge_java/epi/IntAsListAdd.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IntAsListAdd { @EpiTest(testfile = "int_as_list_add.tsv") @@ -13,7 +13,7 @@ public static ListNode addTwoNumbers(ListNode L1, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntSquareRoot.java b/epi_judge_java/epi/IntSquareRoot.java index 056914a50..44b74f26d 100644 --- a/epi_judge_java/epi/IntSquareRoot.java +++ b/epi_judge_java/epi/IntSquareRoot.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IntSquareRoot { @EpiTest(testfile = "int_square_root.tsv") @@ -12,7 +12,7 @@ public static int squareRoot(int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntersectSortedArrays.java b/epi_judge_java/epi/IntersectSortedArrays.java index aac97b648..e68a695f0 100644 --- a/epi_judge_java/epi/IntersectSortedArrays.java +++ b/epi_judge_java/epi/IntersectSortedArrays.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static List intersectTwoSortedArrays(List A, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntervalAdd.java b/epi_judge_java/epi/IntervalAdd.java index a14cd69ce..e7edc7e04 100644 --- a/epi_judge_java/epi/IntervalAdd.java +++ b/epi_judge_java/epi/IntervalAdd.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.ArrayList; import java.util.List; @@ -50,7 +50,7 @@ public static List addInterval(List disjointIntervals, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IntervalsUnion.java b/epi_judge_java/epi/IntervalsUnion.java index 570c0a13d..7834b9209 100644 --- a/epi_judge_java/epi/IntervalsUnion.java +++ b/epi_judge_java/epi/IntervalsUnion.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -118,7 +118,7 @@ public String toString() { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsAnonymousLetterConstructible.java b/epi_judge_java/epi/IsAnonymousLetterConstructible.java index 2744de7f7..1b5ec7932 100644 --- a/epi_judge_java/epi/IsAnonymousLetterConstructible.java +++ b/epi_judge_java/epi/IsAnonymousLetterConstructible.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsAnonymousLetterConstructible { @EpiTest(testfile = "is_anonymous_letter_constructible.tsv") @@ -13,7 +13,7 @@ public static boolean isLetterConstructibleFromMagazine(String letterText, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsArrayDominated.java b/epi_judge_java/epi/IsArrayDominated.java index a0d425801..b8ff8e895 100644 --- a/epi_judge_java/epi/IsArrayDominated.java +++ b/epi_judge_java/epi/IsArrayDominated.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -25,8 +25,8 @@ public class IsArrayDominated { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsCircuitWirable.java b/epi_judge_java/epi/IsCircuitWirable.java index 3871a0aae..d681d420f 100644 --- a/epi_judge_java/epi/IsCircuitWirable.java +++ b/epi_judge_java/epi/IsCircuitWirable.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -52,7 +52,7 @@ public static boolean isAnyPlacementFeasibleWrapper(TestTimer timer, int k, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsListCyclic.java b/epi_judge_java/epi/IsListCyclic.java index a9323791d..7b110fa9a 100644 --- a/epi_judge_java/epi/IsListCyclic.java +++ b/epi_judge_java/epi/IsListCyclic.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -71,7 +71,7 @@ public static void HasCycleWrapper(TestTimer timer, ListNode head, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsListPalindromic.java b/epi_judge_java/epi/IsListPalindromic.java index 2cf44f0c3..34c6e1aea 100644 --- a/epi_judge_java/epi/IsListPalindromic.java +++ b/epi_judge_java/epi/IsListPalindromic.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsListPalindromic { @EpiTest(testfile = "is_list_palindromic.tsv") @@ -12,7 +12,7 @@ public static boolean isLinkedListAPalindrome(ListNode L) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsNumberPalindromic.java b/epi_judge_java/epi/IsNumberPalindromic.java index 573716926..8bbbff203 100644 --- a/epi_judge_java/epi/IsNumberPalindromic.java +++ b/epi_judge_java/epi/IsNumberPalindromic.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsNumberPalindromic { @EpiTest(testfile = "is_number_palindromic.tsv") @@ -11,7 +11,7 @@ public static boolean isPalindromeNumber(int x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsStringDecomposableIntoWords.java b/epi_judge_java/epi/IsStringDecomposableIntoWords.java index ee53b2115..220d91bb5 100644 --- a/epi_judge_java/epi/IsStringDecomposableIntoWords.java +++ b/epi_judge_java/epi/IsStringDecomposableIntoWords.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; import java.util.Set; @@ -16,7 +16,7 @@ public class IsStringDecomposableIntoWords { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsStringInMatrix.java b/epi_judge_java/epi/IsStringInMatrix.java index 55622cedf..fb0bacd63 100644 --- a/epi_judge_java/epi/IsStringInMatrix.java +++ b/epi_judge_java/epi/IsStringInMatrix.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static boolean isPatternContainedInGrid(List> grid, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsStringPalindromicPunctuation.java b/epi_judge_java/epi/IsStringPalindromicPunctuation.java index df65bbcf7..b36064773 100644 --- a/epi_judge_java/epi/IsStringPalindromicPunctuation.java +++ b/epi_judge_java/epi/IsStringPalindromicPunctuation.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsStringPalindromicPunctuation { @EpiTest(testfile = "is_string_palindromic_punctuation.tsv") @@ -12,7 +12,7 @@ public static boolean isPalindrome(String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsStringPermutableToPalindrome.java b/epi_judge_java/epi/IsStringPermutableToPalindrome.java index ced9e26a6..22c83bd58 100644 --- a/epi_judge_java/epi/IsStringPermutableToPalindrome.java +++ b/epi_judge_java/epi/IsStringPermutableToPalindrome.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsStringPermutableToPalindrome { @EpiTest(testfile = "can_string_be_palindrome.tsv") @@ -12,7 +12,7 @@ public static boolean canFormPalindrome(String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsTreeABst.java b/epi_judge_java/epi/IsTreeABst.java index 675da223e..30caf8895 100644 --- a/epi_judge_java/epi/IsTreeABst.java +++ b/epi_judge_java/epi/IsTreeABst.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsTreeABst { @EpiTest(testfile = "is_tree_a_bst.tsv") @@ -12,7 +12,7 @@ public static boolean isBinaryTreeBST(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsTreeBalanced.java b/epi_judge_java/epi/IsTreeBalanced.java index 5235bb47e..2d0f04462 100644 --- a/epi_judge_java/epi/IsTreeBalanced.java +++ b/epi_judge_java/epi/IsTreeBalanced.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsTreeBalanced { @@ -13,7 +13,7 @@ public static boolean isBalanced(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsTreeSymmetric.java b/epi_judge_java/epi/IsTreeSymmetric.java index 8bf41d0c6..4935f9eee 100644 --- a/epi_judge_java/epi/IsTreeSymmetric.java +++ b/epi_judge_java/epi/IsTreeSymmetric.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsTreeSymmetric { @EpiTest(testfile = "is_tree_symmetric.tsv") @@ -12,7 +12,7 @@ public static boolean isSymmetric(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsValidParenthesization.java b/epi_judge_java/epi/IsValidParenthesization.java index ef8933235..e8804f095 100644 --- a/epi_judge_java/epi/IsValidParenthesization.java +++ b/epi_judge_java/epi/IsValidParenthesization.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class IsValidParenthesization { @EpiTest(testfile = "is_valid_parenthesization.tsv") @@ -12,7 +12,7 @@ public static boolean isWellFormed(String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/IsValidSudoku.java b/epi_judge_java/epi/IsValidSudoku.java index 14c94638d..f0e014aac 100644 --- a/epi_judge_java/epi/IsValidSudoku.java +++ b/epi_judge_java/epi/IsValidSudoku.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static boolean isValidSudoku(List> partialAssignment) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/KClosestStars.java b/epi_judge_java/epi/KClosestStars.java index 472a85c44..182814eac 100644 --- a/epi_judge_java/epi/KClosestStars.java +++ b/epi_judge_java/epi/KClosestStars.java @@ -4,7 +4,7 @@ import epi.test_framework.EpiTestComparator; import epi.test_framework.EpiTestExpectedType; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Arrays; import java.util.Collections; @@ -67,7 +67,7 @@ public static List findClosestKStarsWrapper(List stars, int k) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/KLargestInHeap.java b/epi_judge_java/epi/KLargestInHeap.java index 008e345ed..eced76f1c 100644 --- a/epi_judge_java/epi/KLargestInHeap.java +++ b/epi_judge_java/epi/KLargestInHeap.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.ArrayList; import java.util.Collections; @@ -30,7 +30,7 @@ public static List kLargestInBinaryHeap(List A, int k) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/KLargestValuesInBst.java b/epi_judge_java/epi/KLargestValuesInBst.java index bee4747e3..d35c799b8 100644 --- a/epi_judge_java/epi/KLargestValuesInBst.java +++ b/epi_judge_java/epi/KLargestValuesInBst.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -28,7 +28,7 @@ public static List findKLargestInBst(BstNode tree, int k) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Knapsack.java b/epi_judge_java/epi/Knapsack.java index 9c32e49d5..762e78a81 100644 --- a/epi_judge_java/epi/Knapsack.java +++ b/epi_judge_java/epi/Knapsack.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -27,7 +27,7 @@ public static int optimumSubjectToCapacity(List items, int capacity) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/KthLargestElementInTwoSortedArrays.java b/epi_judge_java/epi/KthLargestElementInTwoSortedArrays.java index a9df6527a..cb79cf0d9 100644 --- a/epi_judge_java/epi/KthLargestElementInTwoSortedArrays.java +++ b/epi_judge_java/epi/KthLargestElementInTwoSortedArrays.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static int findKthNTwoSortedArrays(List A, List B, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/KthLargestInArray.java b/epi_judge_java/epi/KthLargestInArray.java index 2a9bec283..5a29b8c49 100644 --- a/epi_judge_java/epi/KthLargestInArray.java +++ b/epi_judge_java/epi/KthLargestInArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -16,7 +16,7 @@ public static int findKthLargest(int k, List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/KthNodeInTree.java b/epi_judge_java/epi/KthNodeInTree.java index 0c36711f7..b63541c47 100644 --- a/epi_judge_java/epi/KthNodeInTree.java +++ b/epi_judge_java/epi/KthNodeInTree.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -54,7 +54,7 @@ public BinaryTreeNode(T data, BinaryTreeNode left, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LargestRectangleUnderSkyline.java b/epi_judge_java/epi/LargestRectangleUnderSkyline.java index 54bc6857f..21fe56595 100644 --- a/epi_judge_java/epi/LargestRectangleUnderSkyline.java +++ b/epi_judge_java/epi/LargestRectangleUnderSkyline.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int calculateLargestRectangle(List heights) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LeftRightJustifyText.java b/epi_judge_java/epi/LeftRightJustifyText.java index 804fe3fe0..df7d6c449 100644 --- a/epi_judge_java/epi/LeftRightJustifyText.java +++ b/epi_judge_java/epi/LeftRightJustifyText.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List justifyText(List words, int L) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LevenshteinDistance.java b/epi_judge_java/epi/LevenshteinDistance.java index 68261e326..d7d3411ef 100644 --- a/epi_judge_java/epi/LevenshteinDistance.java +++ b/epi_judge_java/epi/LevenshteinDistance.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class LevenshteinDistance { @EpiTest(testfile = "levenshtein_distance.tsv") @@ -12,7 +12,7 @@ public static int levenshteinDistance(String A, String B) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LineThoughMostPoints.java b/epi_judge_java/epi/LineThoughMostPoints.java index 24e6dd5e9..55a2acf84 100644 --- a/epi_judge_java/epi/LineThoughMostPoints.java +++ b/epi_judge_java/epi/LineThoughMostPoints.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -26,7 +26,7 @@ public static int findLineWithMostPoints(List points) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ListCyclicRightShift.java b/epi_judge_java/epi/ListCyclicRightShift.java index ffdfc67b2..3ea4137d4 100644 --- a/epi_judge_java/epi/ListCyclicRightShift.java +++ b/epi_judge_java/epi/ListCyclicRightShift.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ListCyclicRightShift { @EpiTest(testfile = "list_cyclic_right_shift.tsv") @@ -13,7 +13,7 @@ public static ListNode cyclicallyRightShiftList(ListNode L, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LongestContainedInterval.java b/epi_judge_java/epi/LongestContainedInterval.java index 1cb76a530..325560ea3 100644 --- a/epi_judge_java/epi/LongestContainedInterval.java +++ b/epi_judge_java/epi/LongestContainedInterval.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int longestContainedRange(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LongestIncreasingSubarray.java b/epi_judge_java/epi/LongestIncreasingSubarray.java index a046a80da..1eca8e3d2 100644 --- a/epi_judge_java/epi/LongestIncreasingSubarray.java +++ b/epi_judge_java/epi/LongestIncreasingSubarray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -30,7 +30,7 @@ public static int findLongestIncreasingSubarrayWrapper(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LongestNondecreasingSubsequence.java b/epi_judge_java/epi/LongestNondecreasingSubsequence.java index 1ce7ee0bf..9221ad07a 100644 --- a/epi_judge_java/epi/LongestNondecreasingSubsequence.java +++ b/epi_judge_java/epi/LongestNondecreasingSubsequence.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int longestNondecreasingSubsequenceLength(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LongestSubarrayWithDistinctValues.java b/epi_judge_java/epi/LongestSubarrayWithDistinctValues.java index 330452e50..fee3dcbc6 100644 --- a/epi_judge_java/epi/LongestSubarrayWithDistinctValues.java +++ b/epi_judge_java/epi/LongestSubarrayWithDistinctValues.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int longestSubarrayWithDistinctEntries(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LongestSubarrayWithSumConstraint.java b/epi_judge_java/epi/LongestSubarrayWithSumConstraint.java index 07a6f8080..bb47aca0a 100644 --- a/epi_judge_java/epi/LongestSubarrayWithSumConstraint.java +++ b/epi_judge_java/epi/LongestSubarrayWithSumConstraint.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int findLongestSubarrayLessEqualK(List A, int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LongestSubstringWithMatchingParentheses.java b/epi_judge_java/epi/LongestSubstringWithMatchingParentheses.java index 68873dc79..c212186fc 100644 --- a/epi_judge_java/epi/LongestSubstringWithMatchingParentheses.java +++ b/epi_judge_java/epi/LongestSubstringWithMatchingParentheses.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class LongestSubstringWithMatchingParentheses { @EpiTest(testfile = "longest_substring_with_matching_parentheses.tsv") @@ -12,7 +12,7 @@ public static int longestMatchingParentheses(String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LookAndSay.java b/epi_judge_java/epi/LookAndSay.java index 2be2b4cad..360c74c39 100644 --- a/epi_judge_java/epi/LookAndSay.java +++ b/epi_judge_java/epi/LookAndSay.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class LookAndSay { @EpiTest(testfile = "look_and_say.tsv") @@ -12,7 +12,7 @@ public static String lookAndSay(int n) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LowestCommonAncestor.java b/epi_judge_java/epi/LowestCommonAncestor.java index da2c061fd..d0510e668 100644 --- a/epi_judge_java/epi/LowestCommonAncestor.java +++ b/epi_judge_java/epi/LowestCommonAncestor.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -32,7 +32,7 @@ public static int lcaWrapper(TestTimer timer, BinaryTreeNode tree, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LowestCommonAncestorCloseAncestor.java b/epi_judge_java/epi/LowestCommonAncestorCloseAncestor.java index fd0803bb4..f27330095 100644 --- a/epi_judge_java/epi/LowestCommonAncestorCloseAncestor.java +++ b/epi_judge_java/epi/LowestCommonAncestorCloseAncestor.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -30,7 +30,7 @@ public static int lcaWrapper(TestTimer timer, BinaryTree tree, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LowestCommonAncestorInBst.java b/epi_judge_java/epi/LowestCommonAncestorInBst.java index c7f32839f..a9b582898 100644 --- a/epi_judge_java/epi/LowestCommonAncestorInBst.java +++ b/epi_judge_java/epi/LowestCommonAncestorInBst.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -31,7 +31,7 @@ public static int lcaWrapper(TestTimer timer, BstNode tree, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LowestCommonAncestorWithParent.java b/epi_judge_java/epi/LowestCommonAncestorWithParent.java index c31210380..8ea3bcd8f 100644 --- a/epi_judge_java/epi/LowestCommonAncestorWithParent.java +++ b/epi_judge_java/epi/LowestCommonAncestorWithParent.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -30,7 +30,7 @@ public static int lcaWrapper(TestTimer timer, BinaryTree tree, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/LruCache.java b/epi_judge_java/epi/LruCache.java index 4d526ec9e..f30892e48 100644 --- a/epi_judge_java/epi/LruCache.java +++ b/epi_judge_java/epi/LruCache.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.List; @@ -74,7 +74,7 @@ public static void runTest(List commands) throws TestFailureException { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MajorityElement.java b/epi_judge_java/epi/MajorityElement.java index 9a5722ef6..fc2d7645f 100644 --- a/epi_judge_java/epi/MajorityElement.java +++ b/epi_judge_java/epi/MajorityElement.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Iterator; import java.util.List; @@ -19,7 +19,7 @@ public static String majoritySearchWrapper(List stream) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MatrixConnectedRegions.java b/epi_judge_java/epi/MatrixConnectedRegions.java index 45bdb00c4..3d07dd631 100644 --- a/epi_judge_java/epi/MatrixConnectedRegions.java +++ b/epi_judge_java/epi/MatrixConnectedRegions.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -41,7 +41,7 @@ public static void flipColor(int x, int y, List> image) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MatrixEnclosedRegions.java b/epi_judge_java/epi/MatrixEnclosedRegions.java index 1f29af1ab..9841199d2 100644 --- a/epi_judge_java/epi/MatrixEnclosedRegions.java +++ b/epi_judge_java/epi/MatrixEnclosedRegions.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -20,7 +20,7 @@ public static void fillSurroundedRegions(List> board) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MatrixRotation.java b/epi_judge_java/epi/MatrixRotation.java index e58ddb114..f66cd7618 100644 --- a/epi_judge_java/epi/MatrixRotation.java +++ b/epi_judge_java/epi/MatrixRotation.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -20,7 +20,7 @@ public static void rotateMatrix(List> squareMatrix) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxOfSlidingWindow.java b/epi_judge_java/epi/MaxOfSlidingWindow.java index a1ec4aa95..5c96f2c2d 100644 --- a/epi_judge_java/epi/MaxOfSlidingWindow.java +++ b/epi_judge_java/epi/MaxOfSlidingWindow.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -50,7 +50,7 @@ public String toString() { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxProductAllButOne.java b/epi_judge_java/epi/MaxProductAllButOne.java index cfb23a2f9..f7c738d00 100644 --- a/epi_judge_java/epi/MaxProductAllButOne.java +++ b/epi_judge_java/epi/MaxProductAllButOne.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int findBiggestProductNMinusOneProduct(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxSafeHeight.java b/epi_judge_java/epi/MaxSafeHeight.java index 34d0c1af0..af9164df9 100644 --- a/epi_judge_java/epi/MaxSafeHeight.java +++ b/epi_judge_java/epi/MaxSafeHeight.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class MaxSafeHeight { @EpiTest(testfile = "max_safe_height.tsv") @@ -12,7 +12,7 @@ public static int getHeight(int cases, int drops) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxSquareSubmatrix.java b/epi_judge_java/epi/MaxSquareSubmatrix.java index e55957b48..577aaefe7 100644 --- a/epi_judge_java/epi/MaxSquareSubmatrix.java +++ b/epi_judge_java/epi/MaxSquareSubmatrix.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static int maxSquareSubmatrix(List> A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxSubmatrix.java b/epi_judge_java/epi/MaxSubmatrix.java index ea18b6de0..2472cdb39 100644 --- a/epi_judge_java/epi/MaxSubmatrix.java +++ b/epi_judge_java/epi/MaxSubmatrix.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static int maxRectangleSubmatrix(List> A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxTeamsInPhotograph.java b/epi_judge_java/epi/MaxTeamsInPhotograph.java index c7ef9a038..a22bbefec 100644 --- a/epi_judge_java/epi/MaxTeamsInPhotograph.java +++ b/epi_judge_java/epi/MaxTeamsInPhotograph.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -56,7 +56,7 @@ public static int findLargestNumberTeamsWrapper(TestTimer timer, int k, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaxWaterTrappable.java b/epi_judge_java/epi/MaxWaterTrappable.java index 4383737ce..9063a9998 100644 --- a/epi_judge_java/epi/MaxWaterTrappable.java +++ b/epi_judge_java/epi/MaxWaterTrappable.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int calculateTrappingWater(List heights) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MaximumSubarrayInCircularArray.java b/epi_judge_java/epi/MaximumSubarrayInCircularArray.java index 1e2820e75..7bd91a913 100644 --- a/epi_judge_java/epi/MaximumSubarrayInCircularArray.java +++ b/epi_judge_java/epi/MaximumSubarrayInCircularArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int maxSubarraySumInCircular(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MinimumDistance3SortedArrays.java b/epi_judge_java/epi/MinimumDistance3SortedArrays.java index 08f9cf864..f83e3cb4b 100644 --- a/epi_judge_java/epi/MinimumDistance3SortedArrays.java +++ b/epi_judge_java/epi/MinimumDistance3SortedArrays.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -35,7 +35,7 @@ public int compareTo(ArrayData o) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MinimumPointsCoveringIntervals.java b/epi_judge_java/epi/MinimumPointsCoveringIntervals.java index 359f62258..be9fabb7e 100644 --- a/epi_judge_java/epi/MinimumPointsCoveringIntervals.java +++ b/epi_judge_java/epi/MinimumPointsCoveringIntervals.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -18,7 +18,7 @@ public Interval(int l, int r) { } } - @EpiTest(testfile = "points_covering_intervals.tsv") + @EpiTest(testfile = "minimum_points_covering_intervals.tsv") public static Integer findMinimumVisits(List intervals) { // Implement this placeholder. @@ -26,7 +26,7 @@ public static Integer findMinimumVisits(List intervals) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MinimumWaitingTime.java b/epi_judge_java/epi/MinimumWaitingTime.java index a9c25d272..e7021ba4a 100644 --- a/epi_judge_java/epi/MinimumWaitingTime.java +++ b/epi_judge_java/epi/MinimumWaitingTime.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int minimumTotalWaitingTime(List serviceTimes) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/MinimumWeightPathInATriangle.java b/epi_judge_java/epi/MinimumWeightPathInATriangle.java index 8e8cdfb8d..c4f60c5a5 100644 --- a/epi_judge_java/epi/MinimumWeightPathInATriangle.java +++ b/epi_judge_java/epi/MinimumWeightPathInATriangle.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int minimumPathTotal(List> triangle) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NQueens.java b/epi_judge_java/epi/NQueens.java index b48aa06bf..e16de37f3 100644 --- a/epi_judge_java/epi/NQueens.java +++ b/epi_judge_java/epi/NQueens.java @@ -3,7 +3,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; import java.util.function.BiPredicate; @@ -28,7 +28,7 @@ public static List> nQueens(int n) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NearestRepeatedEntries.java b/epi_judge_java/epi/NearestRepeatedEntries.java index fa4598dd4..7771a1994 100644 --- a/epi_judge_java/epi/NearestRepeatedEntries.java +++ b/epi_judge_java/epi/NearestRepeatedEntries.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int findNearestRepetition(List paragraph) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NextPermutation.java b/epi_judge_java/epi/NextPermutation.java index 5ca03752c..62328a3ee 100644 --- a/epi_judge_java/epi/NextPermutation.java +++ b/epi_judge_java/epi/NextPermutation.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -13,7 +13,7 @@ public static List nextPermutation(List perm) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NonuniformRandomNumber.java b/epi_judge_java/epi/NonuniformRandomNumber.java index b3515dd83..ec3186df0 100644 --- a/epi_judge_java/epi/NonuniformRandomNumber.java +++ b/epi_judge_java/epi/NonuniformRandomNumber.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.RandomSequenceChecker; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -61,7 +61,7 @@ public class NonuniformRandomNumber { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NumberOfScoreCombinations.java b/epi_judge_java/epi/NumberOfScoreCombinations.java index df89796a1..48692615f 100644 --- a/epi_judge_java/epi/NumberOfScoreCombinations.java +++ b/epi_judge_java/epi/NumberOfScoreCombinations.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -16,7 +16,7 @@ public class NumberOfScoreCombinations { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NumberOfTraversalsMatrix.java b/epi_judge_java/epi/NumberOfTraversalsMatrix.java index 159e926f9..9e55ba33b 100644 --- a/epi_judge_java/epi/NumberOfTraversalsMatrix.java +++ b/epi_judge_java/epi/NumberOfTraversalsMatrix.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class NumberOfTraversalsMatrix { @EpiTest(testfile = "number_of_traversals_matrix.tsv") @@ -12,7 +12,7 @@ public static int numberOfWays(int n, int m) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/NumberOfTraversalsStaircase.java b/epi_judge_java/epi/NumberOfTraversalsStaircase.java index de4ebf1c9..5a75eecf0 100644 --- a/epi_judge_java/epi/NumberOfTraversalsStaircase.java +++ b/epi_judge_java/epi/NumberOfTraversalsStaircase.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class NumberOfTraversalsStaircase { @EpiTest(testfile = "number_of_traversals_staircase.tsv") @@ -12,7 +12,7 @@ public static int numberOfWaysToTop(int top, int maximumStep) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/OfflineSampling.java b/epi_judge_java/epi/OfflineSampling.java index 36ec6aac1..223cfd44b 100644 --- a/epi_judge_java/epi/OfflineSampling.java +++ b/epi_judge_java/epi/OfflineSampling.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.RandomSequenceChecker; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -53,7 +53,7 @@ public static void randomSamplingWrapper(TestTimer timer, int k, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/OnlineMedian.java b/epi_judge_java/epi/OnlineMedian.java index d116ad3a5..2f5a344ee 100644 --- a/epi_judge_java/epi/OnlineMedian.java +++ b/epi_judge_java/epi/OnlineMedian.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Iterator; import java.util.List; @@ -19,7 +19,7 @@ public static List onlineMedianWrapper(List sequence) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/OnlineSampling.java b/epi_judge_java/epi/OnlineSampling.java index a2ebb2138..6ca64ef93 100644 --- a/epi_judge_java/epi/OnlineSampling.java +++ b/epi_judge_java/epi/OnlineSampling.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.RandomSequenceChecker; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -56,7 +56,7 @@ public static void onlineRandomSampleWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Parity.java b/epi_judge_java/epi/Parity.java index 54487cfc0..13090ca9c 100644 --- a/epi_judge_java/epi/Parity.java +++ b/epi_judge_java/epi/Parity.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class Parity { @EpiTest(testfile = "parity.tsv") @@ -11,7 +11,7 @@ public static short parity(long x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PascalTriangle.java b/epi_judge_java/epi/PascalTriangle.java index 6c37cc0f0..c929b3b26 100644 --- a/epi_judge_java/epi/PascalTriangle.java +++ b/epi_judge_java/epi/PascalTriangle.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List> generatePascalTriangle(int numRows) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PathSum.java b/epi_judge_java/epi/PathSum.java index 3444cd18f..d6fb97091 100644 --- a/epi_judge_java/epi/PathSum.java +++ b/epi_judge_java/epi/PathSum.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class PathSum { @EpiTest(testfile = "path_sum.tsv") @@ -13,7 +13,7 @@ public static boolean hasPathSum(BinaryTreeNode tree, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/Permutations.java b/epi_judge_java/epi/Permutations.java index 8bb306593..70fc4543e 100644 --- a/epi_judge_java/epi/Permutations.java +++ b/epi_judge_java/epi/Permutations.java @@ -3,7 +3,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -35,7 +35,7 @@ public static List> permutations(List A) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PhoneNumberMnemonic.java b/epi_judge_java/epi/PhoneNumberMnemonic.java index 16094f2bc..6fb474372 100644 --- a/epi_judge_java/epi/PhoneNumberMnemonic.java +++ b/epi_judge_java/epi/PhoneNumberMnemonic.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -28,7 +28,7 @@ public static List phoneMnemonic(String phoneNumber) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PickingUpCoins.java b/epi_judge_java/epi/PickingUpCoins.java index d36517636..35856bc50 100644 --- a/epi_judge_java/epi/PickingUpCoins.java +++ b/epi_judge_java/epi/PickingUpCoins.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int pickUpCoins(List coins) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PivotList.java b/epi_judge_java/epi/PivotList.java index ad0e21a30..ea06d80c5 100644 --- a/epi_judge_java/epi/PivotList.java +++ b/epi_judge_java/epi/PivotList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -67,7 +67,7 @@ public static void listPivotingWrapper(TestTimer timer, ListNode l, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PowerSet.java b/epi_judge_java/epi/PowerSet.java index 9cd6ef4a7..fd5f84c4d 100644 --- a/epi_judge_java/epi/PowerSet.java +++ b/epi_judge_java/epi/PowerSet.java @@ -3,7 +3,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; import epi.test_framework.LexicographicalListComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -35,7 +35,7 @@ public static List> generatePowerSet(List inputSet) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PowerXY.java b/epi_judge_java/epi/PowerXY.java index 6dab093ae..94960a37e 100644 --- a/epi_judge_java/epi/PowerXY.java +++ b/epi_judge_java/epi/PowerXY.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class PowerXY { @EpiTest(testfile = "power_x_y.tsv") @@ -11,7 +11,7 @@ public static double power(double x, int y) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PrettyPrinting.java b/epi_judge_java/epi/PrettyPrinting.java index 0ba6fbef6..1c18b9429 100644 --- a/epi_judge_java/epi/PrettyPrinting.java +++ b/epi_judge_java/epi/PrettyPrinting.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int minimumMessiness(List words, int lineLength) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PrimeSieve.java b/epi_judge_java/epi/PrimeSieve.java index 70b0fc317..e4d37da78 100644 --- a/epi_judge_java/epi/PrimeSieve.java +++ b/epi_judge_java/epi/PrimeSieve.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List generatePrimes(int n) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PrimitiveDivide.java b/epi_judge_java/epi/PrimitiveDivide.java index ef54bec5c..a532230cc 100644 --- a/epi_judge_java/epi/PrimitiveDivide.java +++ b/epi_judge_java/epi/PrimitiveDivide.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class PrimitiveDivide { @EpiTest(testfile = "primitive_divide.tsv") @@ -11,7 +11,7 @@ public static int divide(int x, int y) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/PrimitiveMultiply.java b/epi_judge_java/epi/PrimitiveMultiply.java index 3258d38e4..1720e3ec6 100644 --- a/epi_judge_java/epi/PrimitiveMultiply.java +++ b/epi_judge_java/epi/PrimitiveMultiply.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class PrimitiveMultiply { @EpiTest(testfile = "primitive_multiply.tsv") @@ -11,7 +11,7 @@ public static long multiply(long x, long y) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/QueueFromStacks.java b/epi_judge_java/epi/QueueFromStacks.java index ef13dc28b..3645ec6fc 100644 --- a/epi_judge_java/epi/QueueFromStacks.java +++ b/epi_judge_java/epi/QueueFromStacks.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.List; @@ -63,7 +63,7 @@ public static void queueTest(List ops) throws TestFailureException { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/QueueWithMax.java b/epi_judge_java/epi/QueueWithMax.java index 74981519e..1b7a46922 100644 --- a/epi_judge_java/epi/QueueWithMax.java +++ b/epi_judge_java/epi/QueueWithMax.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.List; @@ -73,7 +73,7 @@ public static void queueTest(List ops) throws TestFailureException { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RandomPermutation.java b/epi_judge_java/epi/RandomPermutation.java index 2800ecbff..9c6498041 100644 --- a/epi_judge_java/epi/RandomPermutation.java +++ b/epi_judge_java/epi/RandomPermutation.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.RandomSequenceChecker; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -61,7 +61,7 @@ public static void computeRandomPermutationWrapper(TestTimer timer, int n) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RandomSubset.java b/epi_judge_java/epi/RandomSubset.java index 37a2c7d07..e60a74161 100644 --- a/epi_judge_java/epi/RandomSubset.java +++ b/epi_judge_java/epi/RandomSubset.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.RandomSequenceChecker; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -52,7 +52,7 @@ public static void randomSubsetWrapper(TestTimer timer, int n, int k) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RealSquareRoot.java b/epi_judge_java/epi/RealSquareRoot.java index 495bdbc12..9e59e9437 100644 --- a/epi_judge_java/epi/RealSquareRoot.java +++ b/epi_judge_java/epi/RealSquareRoot.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class RealSquareRoot { @EpiTest(testfile = "real_square_root.tsv") @@ -12,7 +12,7 @@ public static double squareRoot(double x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RectangleIntersection.java b/epi_judge_java/epi/RectangleIntersection.java index b1c69a1cc..5110568d6 100644 --- a/epi_judge_java/epi/RectangleIntersection.java +++ b/epi_judge_java/epi/RectangleIntersection.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class RectangleIntersection { @EpiUserType(ctorParams = {int.class, int.class, int.class, int.class}) @@ -61,7 +61,7 @@ public static Rectangle intersectRectangle(Rectangle R1, Rectangle R2) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RefuelingSchedule.java b/epi_judge_java/epi/RefuelingSchedule.java index 7865a0080..20205ee13 100644 --- a/epi_judge_java/epi/RefuelingSchedule.java +++ b/epi_judge_java/epi/RefuelingSchedule.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -17,7 +17,7 @@ public static int findAmpleCity(List gallons, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RegularExpression.java b/epi_judge_java/epi/RegularExpression.java index b1c471b23..ff0fc5684 100644 --- a/epi_judge_java/epi/RegularExpression.java +++ b/epi_judge_java/epi/RegularExpression.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class RegularExpression { @EpiTest(testfile = "regular_expression.tsv") @@ -12,7 +12,7 @@ public static boolean isMatch(String regex, String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RemoveDuplicates.java b/epi_judge_java/epi/RemoveDuplicates.java index 1c70887d5..499f03c46 100644 --- a/epi_judge_java/epi/RemoveDuplicates.java +++ b/epi_judge_java/epi/RemoveDuplicates.java @@ -4,7 +4,7 @@ import epi.test_framework.EpiTestComparator; import epi.test_framework.EpiTestExpectedType; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Arrays; import java.util.Collections; @@ -85,7 +85,7 @@ public static List eliminateDuplicateWrapper(List names) { Arrays.asList(List.class, String.class); public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RemoveDuplicatesFromSortedList.java b/epi_judge_java/epi/RemoveDuplicatesFromSortedList.java index d81b6b972..ac564d0d4 100644 --- a/epi_judge_java/epi/RemoveDuplicatesFromSortedList.java +++ b/epi_judge_java/epi/RemoveDuplicatesFromSortedList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class RemoveDuplicatesFromSortedList { @EpiTest(testfile = "remove_duplicates_from_sorted_list.tsv") @@ -12,7 +12,7 @@ public static ListNode removeDuplicates(ListNode L) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ReplaceAndRemove.java b/epi_judge_java/epi/ReplaceAndRemove.java index 17b75909e..638b5b285 100644 --- a/epi_judge_java/epi/ReplaceAndRemove.java +++ b/epi_judge_java/epi/ReplaceAndRemove.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -35,7 +35,7 @@ public static int replaceAndRemove(int size, char[] s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ReverseBits.java b/epi_judge_java/epi/ReverseBits.java index c104a091b..26ca0f6c3 100644 --- a/epi_judge_java/epi/ReverseBits.java +++ b/epi_judge_java/epi/ReverseBits.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ReverseBits { @@ -12,7 +12,7 @@ public static long reverseBits(long x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ReverseDigits.java b/epi_judge_java/epi/ReverseDigits.java index cf4e52b16..100b23360 100644 --- a/epi_judge_java/epi/ReverseDigits.java +++ b/epi_judge_java/epi/ReverseDigits.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ReverseDigits { @EpiTest(testfile = "reverse_digits.tsv") @@ -11,7 +11,7 @@ public static long reverse(int x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ReverseSublist.java b/epi_judge_java/epi/ReverseSublist.java index 91315e8ac..3ce637bcc 100644 --- a/epi_judge_java/epi/ReverseSublist.java +++ b/epi_judge_java/epi/ReverseSublist.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ReverseSublist { @EpiTest(testfile = "reverse_sublist.tsv") @@ -13,7 +13,7 @@ public static ListNode reverseSublist(ListNode L, int start, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ReverseWords.java b/epi_judge_java/epi/ReverseWords.java index 866a90acc..5683a43cf 100644 --- a/epi_judge_java/epi/ReverseWords.java +++ b/epi_judge_java/epi/ReverseWords.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; public class ReverseWords { @@ -23,7 +23,7 @@ public static String reverseWordsWrapper(TestTimer timer, String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RoadNetwork.java b/epi_judge_java/epi/RoadNetwork.java index d80905243..58de6c054 100644 --- a/epi_judge_java/epi/RoadNetwork.java +++ b/epi_judge_java/epi/RoadNetwork.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -46,7 +46,7 @@ public String toString() { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RomanToInteger.java b/epi_judge_java/epi/RomanToInteger.java index e16b84437..e4d3c28de 100644 --- a/epi_judge_java/epi/RomanToInteger.java +++ b/epi_judge_java/epi/RomanToInteger.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class RomanToInteger { @EpiTest(testfile = "roman_to_integer.tsv") @@ -12,7 +12,7 @@ public static int romanToInteger(String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RookAttack.java b/epi_judge_java/epi/RookAttack.java index 27598c5b2..7719205a3 100644 --- a/epi_judge_java/epi/RookAttack.java +++ b/epi_judge_java/epi/RookAttack.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.ArrayList; import java.util.List; @@ -21,7 +21,7 @@ public static List> rookAttackWrapper(List> A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RotateArray.java b/epi_judge_java/epi/RotateArray.java index d345688ed..36972f163 100644 --- a/epi_judge_java/epi/RotateArray.java +++ b/epi_judge_java/epi/RotateArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -25,7 +25,7 @@ public static void rotateArray(int rotateAmount, List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/RunLengthCompression.java b/epi_judge_java/epi/RunLengthCompression.java index c24875860..88fddabd4 100644 --- a/epi_judge_java/epi/RunLengthCompression.java +++ b/epi_judge_java/epi/RunLengthCompression.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; public class RunLengthCompression { @@ -28,7 +28,7 @@ public static void rleTester(String encoded, String decoded) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchEntryEqualToIndex.java b/epi_judge_java/epi/SearchEntryEqualToIndex.java index 5f9f5d655..2397ff14f 100644 --- a/epi_judge_java/epi/SearchEntryEqualToIndex.java +++ b/epi_judge_java/epi/SearchEntryEqualToIndex.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -14,7 +14,7 @@ public static int searchEntryEqualToItsIndex(List A) { return 0; } - @EpiTest(testfile = "binary_search_ai=i.tsv") + @EpiTest(testfile = "search_entry_equal_to_index.tsv") public static void searchEntryEqualToItsIndexWrapper(TestTimer timer, List A) throws TestFailureException { @@ -37,7 +37,7 @@ public static void searchEntryEqualToItsIndexWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchFirstGreaterValueInBst.java b/epi_judge_java/epi/SearchFirstGreaterValueInBst.java index b38263eb5..bbe1a68e3 100644 --- a/epi_judge_java/epi/SearchFirstGreaterValueInBst.java +++ b/epi_judge_java/epi/SearchFirstGreaterValueInBst.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SearchFirstGreaterValueInBst { @@ -19,7 +19,7 @@ public static int findFirstGreaterThanKWrapper(BstNode tree, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchFirstKey.java b/epi_judge_java/epi/SearchFirstKey.java index 1a6183765..9e1f81098 100644 --- a/epi_judge_java/epi/SearchFirstKey.java +++ b/epi_judge_java/epi/SearchFirstKey.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int searchFirstOfK(List A, int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchForMinMaxInArray.java b/epi_judge_java/epi/SearchForMinMaxInArray.java index 8f49e032c..d26631183 100644 --- a/epi_judge_java/epi/SearchForMinMaxInArray.java +++ b/epi_judge_java/epi/SearchForMinMaxInArray.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -53,7 +53,7 @@ public static MinMax findMinMax(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchForMissingElement.java b/epi_judge_java/epi/SearchForMissingElement.java index ce0b2a116..a3eade1de 100644 --- a/epi_judge_java/epi/SearchForMissingElement.java +++ b/epi_judge_java/epi/SearchForMissingElement.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -56,7 +56,7 @@ public static DuplicateAndMissing findDuplicateMissing(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchFrequentItems.java b/epi_judge_java/epi/SearchFrequentItems.java index a9f1cc96a..4d21144b5 100644 --- a/epi_judge_java/epi/SearchFrequentItems.java +++ b/epi_judge_java/epi/SearchFrequentItems.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiTestComparator; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Collections; import java.util.List; @@ -35,7 +35,7 @@ public static List searchFrequentItemsWrapper(int k, }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchInList.java b/epi_judge_java/epi/SearchInList.java index e8f19f61e..1f4a95c7e 100644 --- a/epi_judge_java/epi/SearchInList.java +++ b/epi_judge_java/epi/SearchInList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SearchInList { @@ -17,7 +17,7 @@ public static int searchListWrapper(ListNode L, int key) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchMaze.java b/epi_judge_java/epi/SearchMaze.java index 53517c81f..39a553d2e 100644 --- a/epi_judge_java/epi/SearchMaze.java +++ b/epi_judge_java/epi/SearchMaze.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.ArrayList; @@ -89,7 +89,7 @@ public static boolean searchMazeWrapper(List> maze, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchRowColSortedMatrix.java b/epi_judge_java/epi/SearchRowColSortedMatrix.java index 0009d4ab5..bba3e78b6 100644 --- a/epi_judge_java/epi/SearchRowColSortedMatrix.java +++ b/epi_judge_java/epi/SearchRowColSortedMatrix.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static boolean matrixSearch(List> A, int x) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchShiftedSortedArray.java b/epi_judge_java/epi/SearchShiftedSortedArray.java index e42dfe593..e35b444e9 100644 --- a/epi_judge_java/epi/SearchShiftedSortedArray.java +++ b/epi_judge_java/epi/SearchShiftedSortedArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int searchSmallest(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SearchUnknownLengthArray.java b/epi_judge_java/epi/SearchUnknownLengthArray.java index 283a613bf..05871df6c 100644 --- a/epi_judge_java/epi/SearchUnknownLengthArray.java +++ b/epi_judge_java/epi/SearchUnknownLengthArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int binarySearchUnknownLength(List A, int k) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SmallestNonconstructibleValue.java b/epi_judge_java/epi/SmallestNonconstructibleValue.java index b55e13db0..9dd085dd4 100644 --- a/epi_judge_java/epi/SmallestNonconstructibleValue.java +++ b/epi_judge_java/epi/SmallestNonconstructibleValue.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static int smallestNonconstructibleValue(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SmallestSubarrayCoveringAllValues.java b/epi_judge_java/epi/SmallestSubarrayCoveringAllValues.java index 137a0cecf..e1a5a8da8 100644 --- a/epi_judge_java/epi/SmallestSubarrayCoveringAllValues.java +++ b/epi_judge_java/epi/SmallestSubarrayCoveringAllValues.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -59,7 +59,7 @@ public static int findSmallestSequentiallyCoveringSubsetWrapper( } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SmallestSubarrayCoveringSet.java b/epi_judge_java/epi/SmallestSubarrayCoveringSet.java index 69792f707..64658a7c5 100644 --- a/epi_judge_java/epi/SmallestSubarrayCoveringSet.java +++ b/epi_judge_java/epi/SmallestSubarrayCoveringSet.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -53,7 +53,7 @@ public static int findSmallestSubarrayCoveringSetWrapper( } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SnakeString.java b/epi_judge_java/epi/SnakeString.java index fbae6eb91..d385a22aa 100644 --- a/epi_judge_java/epi/SnakeString.java +++ b/epi_judge_java/epi/SnakeString.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SnakeString { @EpiTest(testfile = "snake_string.tsv") @@ -12,7 +12,7 @@ public static String snakeString(String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortAlmostSortedArray.java b/epi_judge_java/epi/SortAlmostSortedArray.java index c440aeecc..b6817c64a 100644 --- a/epi_judge_java/epi/SortAlmostSortedArray.java +++ b/epi_judge_java/epi/SortAlmostSortedArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Iterator; import java.util.List; @@ -21,7 +21,7 @@ public class SortAlmostSortedArray { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortIncreasingDecreasingArray.java b/epi_judge_java/epi/SortIncreasingDecreasingArray.java index 290fc9ff2..5067fde08 100644 --- a/epi_judge_java/epi/SortIncreasingDecreasingArray.java +++ b/epi_judge_java/epi/SortIncreasingDecreasingArray.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List sortKIncreasingDecreasingArray(List A) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortList.java b/epi_judge_java/epi/SortList.java index c9d803f89..961fb8942 100644 --- a/epi_judge_java/epi/SortList.java +++ b/epi_judge_java/epi/SortList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SortList { @EpiTest(testfile = "sort_list.tsv") @@ -12,7 +12,7 @@ public static ListNode stableSortList(ListNode L) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortedArrayRemoveDups.java b/epi_judge_java/epi/SortedArrayRemoveDups.java index fb58434cb..1d57d003e 100644 --- a/epi_judge_java/epi/SortedArrayRemoveDups.java +++ b/epi_judge_java/epi/SortedArrayRemoveDups.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.List; @@ -24,7 +24,7 @@ public static List deleteDuplicatesWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortedArraysMerge.java b/epi_judge_java/epi/SortedArraysMerge.java index bd701a424..da9cac7aa 100644 --- a/epi_judge_java/epi/SortedArraysMerge.java +++ b/epi_judge_java/epi/SortedArraysMerge.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -16,7 +16,7 @@ public class SortedArraysMerge { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortedListToBst.java b/epi_judge_java/epi/SortedListToBst.java index 27e723e39..64b16e61f 100644 --- a/epi_judge_java/epi/SortedListToBst.java +++ b/epi_judge_java/epi/SortedListToBst.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -63,7 +63,7 @@ public static void buildBSTFromSortedListWrapper(TestTimer timer, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SortedListsMerge.java b/epi_judge_java/epi/SortedListsMerge.java index e2d4c9ba8..409b1d261 100644 --- a/epi_judge_java/epi/SortedListsMerge.java +++ b/epi_judge_java/epi/SortedListsMerge.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SortedListsMerge { @EpiTest(testfile = "sorted_lists_merge.tsv") @@ -13,7 +13,7 @@ public static ListNode mergeTwoSortedLists(ListNode L1, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SpiralOrderingSegments.java b/epi_judge_java/epi/SpiralOrderingSegments.java index 4258e1975..4fbe12846 100644 --- a/epi_judge_java/epi/SpiralOrderingSegments.java +++ b/epi_judge_java/epi/SpiralOrderingSegments.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public class SpiralOrderingSegments { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SpreadsheetEncoding.java b/epi_judge_java/epi/SpreadsheetEncoding.java index 5b6577c5e..2b5d1e644 100644 --- a/epi_judge_java/epi/SpreadsheetEncoding.java +++ b/epi_judge_java/epi/SpreadsheetEncoding.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SpreadsheetEncoding { @EpiTest(testfile = "spreadsheet_encoding.tsv") @@ -12,7 +12,7 @@ public static int ssDecodeColID(final String col) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/StackWithMax.java b/epi_judge_java/epi/StackWithMax.java index c9848c01e..d589f762d 100644 --- a/epi_judge_java/epi/StackWithMax.java +++ b/epi_judge_java/epi/StackWithMax.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import java.util.List; @@ -91,7 +91,7 @@ public static void stackTest(List ops) throws TestFailureException { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/StringDecompositionsIntoDictionaryWords.java b/epi_judge_java/epi/StringDecompositionsIntoDictionaryWords.java index 913455961..cc6c08630 100644 --- a/epi_judge_java/epi/StringDecompositionsIntoDictionaryWords.java +++ b/epi_judge_java/epi/StringDecompositionsIntoDictionaryWords.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List findAllSubstrings(String s, List words) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/StringIntegerInterconversion.java b/epi_judge_java/epi/StringIntegerInterconversion.java index 49198fc61..8074db64c 100644 --- a/epi_judge_java/epi/StringIntegerInterconversion.java +++ b/epi_judge_java/epi/StringIntegerInterconversion.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; public class StringIntegerInterconversion { @@ -27,7 +27,7 @@ public static void wrapper(int x, String s) throws TestFailureException { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/StringTransformability.java b/epi_judge_java/epi/StringTransformability.java index b42e40dca..fec7844d9 100644 --- a/epi_judge_java/epi/StringTransformability.java +++ b/epi_judge_java/epi/StringTransformability.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Set; @@ -16,7 +16,7 @@ public static int transformString(Set D, String s, String t) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SubstringMatch.java b/epi_judge_java/epi/SubstringMatch.java index e500d0f6c..d0af1d396 100644 --- a/epi_judge_java/epi/SubstringMatch.java +++ b/epi_judge_java/epi/SubstringMatch.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SubstringMatch { @EpiTest(testfile = "substring_match.tsv") @@ -14,7 +14,7 @@ public static int rabinKarp(String t, String s) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SuccessorInTree.java b/epi_judge_java/epi/SuccessorInTree.java index 731ba715a..097ff8b63 100644 --- a/epi_judge_java/epi/SuccessorInTree.java +++ b/epi_judge_java/epi/SuccessorInTree.java @@ -2,7 +2,7 @@ import epi.test_framework.BinaryTreeUtils; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; public class SuccessorInTree { @@ -25,7 +25,7 @@ public static BinaryTree findSuccessor(BinaryTree node) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SudokuSolve.java b/epi_judge_java/epi/SudokuSolve.java index 36a136a0a..1b8b3e89e 100644 --- a/epi_judge_java/epi/SudokuSolve.java +++ b/epi_judge_java/epi/SudokuSolve.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -99,7 +99,7 @@ private static List gatherSquareBlock(List> data, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SumRootToLeaf.java b/epi_judge_java/epi/SumRootToLeaf.java index be2330aa0..0c0abf1d2 100644 --- a/epi_judge_java/epi/SumRootToLeaf.java +++ b/epi_judge_java/epi/SumRootToLeaf.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SumRootToLeaf { @EpiTest(testfile = "sum_root_to_leaf.tsv") @@ -12,7 +12,7 @@ public static int sumRootToLeaf(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SunsetView.java b/epi_judge_java/epi/SunsetView.java index 9d5bd2d02..983ac752a 100644 --- a/epi_judge_java/epi/SunsetView.java +++ b/epi_judge_java/epi/SunsetView.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.Iterator; import java.util.List; @@ -21,7 +21,7 @@ public class SunsetView { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/SwapBits.java b/epi_judge_java/epi/SwapBits.java index be8a1e023..a663e2701 100644 --- a/epi_judge_java/epi/SwapBits.java +++ b/epi_judge_java/epi/SwapBits.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class SwapBits { @EpiTest(testfile = "swap_bits.tsv") @@ -11,7 +11,7 @@ public static long swapBits(long x, int i, int j) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TaskPairing.java b/epi_judge_java/epi/TaskPairing.java index 17be83976..cf426c9fe 100644 --- a/epi_judge_java/epi/TaskPairing.java +++ b/epi_judge_java/epi/TaskPairing.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.EpiUserType; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.ArrayList; import java.util.Collections; @@ -54,7 +54,7 @@ public String toString() { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ThreeSum.java b/epi_judge_java/epi/ThreeSum.java index 401691a80..535acbd77 100644 --- a/epi_judge_java/epi/ThreeSum.java +++ b/epi_judge_java/epi/ThreeSum.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static boolean hasThreeSum(List A, int t) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeConnectLeaves.java b/epi_judge_java/epi/TreeConnectLeaves.java index baee9b906..de67a0381 100644 --- a/epi_judge_java/epi/TreeConnectLeaves.java +++ b/epi_judge_java/epi/TreeConnectLeaves.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -36,7 +36,7 @@ public class TreeConnectLeaves { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeExterior.java b/epi_judge_java/epi/TreeExterior.java index 6f7d4515b..2ee427a5a 100644 --- a/epi_judge_java/epi/TreeExterior.java +++ b/epi_judge_java/epi/TreeExterior.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -39,7 +39,7 @@ private static List createOutputList(List> L) } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeFromPreorderInorder.java b/epi_judge_java/epi/TreeFromPreorderInorder.java index 7e7275ed8..290235fc0 100644 --- a/epi_judge_java/epi/TreeFromPreorderInorder.java +++ b/epi_judge_java/epi/TreeFromPreorderInorder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public class TreeFromPreorderInorder { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeFromPreorderWithNull.java b/epi_judge_java/epi/TreeFromPreorderWithNull.java index 8900e106e..7b3028c3d 100644 --- a/epi_judge_java/epi/TreeFromPreorderWithNull.java +++ b/epi_judge_java/epi/TreeFromPreorderWithNull.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -33,7 +33,7 @@ public class TreeFromPreorderWithNull { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeInorder.java b/epi_judge_java/epi/TreeInorder.java index 2f7c9e641..faaf76999 100644 --- a/epi_judge_java/epi/TreeInorder.java +++ b/epi_judge_java/epi/TreeInorder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List inorderTraversal(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeLevelOrder.java b/epi_judge_java/epi/TreeLevelOrder.java index 69b407190..a7668f898 100644 --- a/epi_judge_java/epi/TreeLevelOrder.java +++ b/epi_judge_java/epi/TreeLevelOrder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public class TreeLevelOrder { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreePostorder.java b/epi_judge_java/epi/TreePostorder.java index 39c27c776..ac27a600d 100644 --- a/epi_judge_java/epi/TreePostorder.java +++ b/epi_judge_java/epi/TreePostorder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -15,7 +15,7 @@ public static List postorderTraversal(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreePreorder.java b/epi_judge_java/epi/TreePreorder.java index 7b2d02b74..0ab9baee2 100644 --- a/epi_judge_java/epi/TreePreorder.java +++ b/epi_judge_java/epi/TreePreorder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List preorderTraversal(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeRightSibling.java b/epi_judge_java/epi/TreeRightSibling.java index b8216b568..e22219709 100644 --- a/epi_judge_java/epi/TreeRightSibling.java +++ b/epi_judge_java/epi/TreeRightSibling.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestTimer; import java.util.ArrayList; @@ -57,7 +57,7 @@ public static void constructRightSibling(BinaryTreeNode tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TreeWithParentInorder.java b/epi_judge_java/epi/TreeWithParentInorder.java index 2d8119a0e..f4b0c06ab 100644 --- a/epi_judge_java/epi/TreeWithParentInorder.java +++ b/epi_judge_java/epi/TreeWithParentInorder.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static List inorderTraversal(BinaryTree tree) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/TwoSum.java b/epi_judge_java/epi/TwoSum.java index 9186f7570..c6e873bbf 100644 --- a/epi_judge_java/epi/TwoSum.java +++ b/epi_judge_java/epi/TwoSum.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import java.util.List; @@ -14,7 +14,7 @@ public static boolean hasTwoSum(List A, int t) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/UniformRandomNumber.java b/epi_judge_java/epi/UniformRandomNumber.java index b4946247d..74a51292b 100644 --- a/epi_judge_java/epi/UniformRandomNumber.java +++ b/epi_judge_java/epi/UniformRandomNumber.java @@ -2,7 +2,7 @@ import epi.test_framework.EpiTest; import epi.test_framework.RandomSequenceChecker; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.TestFailureException; import epi.test_framework.TestTimer; @@ -47,7 +47,7 @@ public static void uniformRandomWrapper(TestTimer timer, int lowerBound, } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ValidIpAddresses.java b/epi_judge_java/epi/ValidIpAddresses.java index 851f0b8a3..9cb79dec6 100644 --- a/epi_judge_java/epi/ValidIpAddresses.java +++ b/epi_judge_java/epi/ValidIpAddresses.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; import epi.test_framework.EpiTestComparator; import java.util.Collections; @@ -28,7 +28,7 @@ public static List getValidIpAddress(String s) { }; public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_java/epi/ZipList.java b/epi_judge_java/epi/ZipList.java index 716363c35..cc488e8c4 100644 --- a/epi_judge_java/epi/ZipList.java +++ b/epi_judge_java/epi/ZipList.java @@ -1,7 +1,7 @@ package epi; import epi.test_framework.EpiTest; -import epi.test_framework.GenericTestHandler; +import epi.test_framework.GenericTest; public class ZipList { @EpiTest(testfile = "zip_list.tsv") @@ -12,7 +12,7 @@ public static ListNode zippingLinkedList(ListNode L) { } public static void main(String[] args) { - GenericTestHandler.executeTestsByAnnotation( - new Object() {}.getClass().getEnclosingClass(), args); + GenericTest.runFromAnnotations( + args, new Object() {}.getClass().getEnclosingClass()); } } diff --git a/epi_judge_python/absent_value_array.py b/epi_judge_python/absent_value_array.py index e317d9ce3..76e476856 100644 --- a/epi_judge_python/absent_value_array.py +++ b/epi_judge_python/absent_value_array.py @@ -13,8 +13,8 @@ def find_missing_element_wrapper(data): raise TestFailureException('Unexpected no_missing_element exception') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('absent_value_array.tsv', - find_missing_element_wrapper) + generic_test.generic_test_main('absent_value_array.tsv', + find_missing_element_wrapper) diff --git a/epi_judge_python/adding_credits.py b/epi_judge_python/adding_credits.py index cd9b16117..fc8130f63 100644 --- a/epi_judge_python/adding_credits.py +++ b/epi_judge_python/adding_credits.py @@ -50,8 +50,8 @@ def client_credits_info_tester(ops): raise TestFailureException('Lookup: return value mismatch') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('adding_credits.tsv', - client_credits_info_tester) + generic_test.generic_test_main('adding_credits.tsv', + client_credits_info_tester) diff --git a/epi_judge_python/advance_by_offsets.py b/epi_judge_python/advance_by_offsets.py index 73100e754..5c5622c2e 100644 --- a/epi_judge_python/advance_by_offsets.py +++ b/epi_judge_python/advance_by_offsets.py @@ -3,8 +3,7 @@ def can_reach_end(A): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("advance_by_offsets.tsv", - can_reach_end) + generic_test.generic_test_main("advance_by_offsets.tsv", can_reach_end) diff --git a/epi_judge_python/alternating_array.py b/epi_judge_python/alternating_array.py index eaa609f01..9bb042f79 100644 --- a/epi_judge_python/alternating_array.py +++ b/epi_judge_python/alternating_array.py @@ -33,8 +33,7 @@ def check_answer(A): check_answer(A) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('alternating_array.tsv', - rearrange_wrapper) + generic_test.generic_test_main('alternating_array.tsv', rearrange_wrapper) diff --git a/epi_judge_python/anagrams.py b/epi_judge_python/anagrams.py index 57c2d6123..5012b20de 100644 --- a/epi_judge_python/anagrams.py +++ b/epi_judge_python/anagrams.py @@ -3,8 +3,8 @@ def find_anagrams(dictionary): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "anagrams.tsv", find_anagrams, comp=test_utils.unordered_compare) + generic_test.generic_test_main( + "anagrams.tsv", find_anagrams, comparator=test_utils.unordered_compare) diff --git a/epi_judge_python/apply_permutation.py b/epi_judge_python/apply_permutation.py index 5f32d5e30..ae6cde674 100644 --- a/epi_judge_python/apply_permutation.py +++ b/epi_judge_python/apply_permutation.py @@ -8,8 +8,8 @@ def apply_permutation_wrapper(perm, A): return A -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("apply_permutation.tsv", - apply_permutation_wrapper) + generic_test.generic_test_main("apply_permutation.tsv", + apply_permutation_wrapper) diff --git a/epi_judge_python/arbitrage.py b/epi_judge_python/arbitrage.py index 48ace2e26..39364fd9e 100644 --- a/epi_judge_python/arbitrage.py +++ b/epi_judge_python/arbitrage.py @@ -3,8 +3,7 @@ def is_arbitrage_exist(graph): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("arbitrage.tsv", - is_arbitrage_exist) + generic_test.generic_test_main("arbitrage.tsv", is_arbitrage_exist) diff --git a/epi_judge_python/binomial_coefficients.py b/epi_judge_python/binomial_coefficients.py index ebd4cc192..bf9210e29 100644 --- a/epi_judge_python/binomial_coefficients.py +++ b/epi_judge_python/binomial_coefficients.py @@ -3,8 +3,8 @@ def compute_binomial_coefficient(n, k): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('binomial_coefficients.tsv', - compute_binomial_coefficient) + generic_test.generic_test_main('binomial_coefficients.tsv', + compute_binomial_coefficient) diff --git a/epi_judge_python/bonus.py b/epi_judge_python/bonus.py index ca8f5ac87..3ccf99c35 100644 --- a/epi_judge_python/bonus.py +++ b/epi_judge_python/bonus.py @@ -3,7 +3,7 @@ def calculate_bonus(productivity): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('bonus.tsv', calculate_bonus) + generic_test.generic_test_main('bonus.tsv', calculate_bonus) diff --git a/epi_judge_python/bst_from_preorder.py b/epi_judge_python/bst_from_preorder.py index 94ea2a542..76eeef9bd 100644 --- a/epi_judge_python/bst_from_preorder.py +++ b/epi_judge_python/bst_from_preorder.py @@ -6,8 +6,8 @@ def rebuild_bst_from_preorder(preorder_sequence): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('bst_from_preorder.tsv', - rebuild_bst_from_preorder) + generic_test.generic_test_main('bst_from_preorder.tsv', + rebuild_bst_from_preorder) diff --git a/epi_judge_python/bst_from_sorted_array.py b/epi_judge_python/bst_from_sorted_array.py index 4d73cceef..05d0ce474 100644 --- a/epi_judge_python/bst_from_sorted_array.py +++ b/epi_judge_python/bst_from_sorted_array.py @@ -20,9 +20,9 @@ def build_min_height_bst_from_sorted_array_wrapper(timer, A): return binary_tree_height(result) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'bst_from_sorted_array.tsv', build_min_height_bst_from_sorted_array_wrapper) diff --git a/epi_judge_python/bst_merge.py b/epi_judge_python/bst_merge.py index 0ec32e0f1..74f95b802 100644 --- a/epi_judge_python/bst_merge.py +++ b/epi_judge_python/bst_merge.py @@ -6,7 +6,7 @@ def merge_two_bsts(A, B): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('bst_merge.tsv', merge_two_bsts) + generic_test.generic_test_main('bst_merge.tsv', merge_two_bsts) diff --git a/epi_judge_python/bst_to_sorted_list.py b/epi_judge_python/bst_to_sorted_list.py index f20361bb7..d8dad76af 100644 --- a/epi_judge_python/bst_to_sorted_list.py +++ b/epi_judge_python/bst_to_sorted_list.py @@ -27,8 +27,8 @@ def bst_to_doubly_linked_list_wrapper(timer, tree): return v -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'bst_to_sorted_list.tsv', bst_to_doubly_linked_list_wrapper) + generic_test.generic_test_main('bst_to_sorted_list.tsv', + bst_to_doubly_linked_list_wrapper) diff --git a/epi_judge_python/buy_and_sell_stock.py b/epi_judge_python/buy_and_sell_stock.py index d4f7d6ace..5452e1160 100644 --- a/epi_judge_python/buy_and_sell_stock.py +++ b/epi_judge_python/buy_and_sell_stock.py @@ -3,8 +3,8 @@ def buy_and_sell_stock_once(prices): return 0.0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("buy_and_sell_stock.tsv", - buy_and_sell_stock_once) + generic_test.generic_test_main("buy_and_sell_stock.tsv", + buy_and_sell_stock_once) diff --git a/epi_judge_python/buy_and_sell_stock_k_times.py b/epi_judge_python/buy_and_sell_stock_k_times.py index 372e58553..3ee07c164 100644 --- a/epi_judge_python/buy_and_sell_stock_k_times.py +++ b/epi_judge_python/buy_and_sell_stock_k_times.py @@ -3,8 +3,8 @@ def buy_and_sell_stock_k_times(prices, k): return 0.0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('buy_and_sell_stock_k_times.tsv', - buy_and_sell_stock_k_times) + generic_test.generic_test_main('buy_and_sell_stock_k_times.tsv', + buy_and_sell_stock_k_times) diff --git a/epi_judge_python/buy_and_sell_stock_twice.py b/epi_judge_python/buy_and_sell_stock_twice.py index 057ccca50..e10f96c4a 100644 --- a/epi_judge_python/buy_and_sell_stock_twice.py +++ b/epi_judge_python/buy_and_sell_stock_twice.py @@ -3,8 +3,8 @@ def buy_and_sell_stock_twice(prices): return 0.0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("buy_and_sell_stock_twice.tsv", - buy_and_sell_stock_twice) + generic_test.generic_test_main("buy_and_sell_stock_twice.tsv", + buy_and_sell_stock_twice) diff --git a/epi_judge_python/calendar_rendering.py b/epi_judge_python/calendar_rendering.py index 75408d3a9..75bd5e88e 100644 --- a/epi_judge_python/calendar_rendering.py +++ b/epi_judge_python/calendar_rendering.py @@ -18,8 +18,8 @@ def find_max_simultaneous_events_wrapper(timer, events): return find_max_simultaneous_events(events) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'calendar_rendering.tsv', find_max_simultaneous_events_wrapper) + generic_test.generic_test_main('calendar_rendering.tsv', + find_max_simultaneous_events_wrapper) diff --git a/epi_judge_python/circular_queue.py b/epi_judge_python/circular_queue.py index 01641cfdc..fc7d983c1 100644 --- a/epi_judge_python/circular_queue.py +++ b/epi_judge_python/circular_queue.py @@ -41,8 +41,7 @@ def queue_tester(ops): raise RuntimeError("Unsupported queue operation: " + op) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('circular_queue.tsv', - queue_tester) + generic_test.generic_test_main('circular_queue.tsv', queue_tester) diff --git a/epi_judge_python/closest_int_same_weight.py b/epi_judge_python/closest_int_same_weight.py index c4daca991..4d3d5d816 100644 --- a/epi_judge_python/closest_int_same_weight.py +++ b/epi_judge_python/closest_int_same_weight.py @@ -3,8 +3,8 @@ def closest_int_same_bit_count(x): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("closest_int_same_weight.tsv", - closest_int_same_bit_count) + generic_test.generic_test_main("closest_int_same_weight.tsv", + closest_int_same_bit_count) diff --git a/epi_judge_python/collatz_checker.py b/epi_judge_python/collatz_checker.py index c8fcd270e..098a56911 100644 --- a/epi_judge_python/collatz_checker.py +++ b/epi_judge_python/collatz_checker.py @@ -3,8 +3,8 @@ def test_collatz_conjecture(n): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('collatz_checker.tsv', - test_collatz_conjecture) + generic_test.generic_test_main('collatz_checker.tsv', + test_collatz_conjecture) diff --git a/epi_judge_python/combinations.py b/epi_judge_python/combinations.py index eb85ea151..6f135d5fd 100644 --- a/epi_judge_python/combinations.py +++ b/epi_judge_python/combinations.py @@ -3,8 +3,10 @@ def combinations(n, k): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'combinations.tsv', combinations, comp=test_utils.unordered_compare) + generic_test.generic_test_main( + 'combinations.tsv', + combinations, + comparator=test_utils.unordered_compare) diff --git a/epi_judge_python/convert_base.py b/epi_judge_python/convert_base.py index 65432af12..910443cc5 100644 --- a/epi_judge_python/convert_base.py +++ b/epi_judge_python/convert_base.py @@ -3,7 +3,7 @@ def convert_base(num_as_string, b1, b2): return '' -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("convert_base.tsv", convert_base) + generic_test.generic_test_main("convert_base.tsv", convert_base) diff --git a/epi_judge_python/copy_posting_list.py b/epi_judge_python/copy_posting_list.py index 00c4c7efd..0b7d2cf1b 100644 --- a/epi_judge_python/copy_posting_list.py +++ b/epi_judge_python/copy_posting_list.py @@ -71,8 +71,8 @@ def create_posting_list(serialized): assert_lists_equal(head, copy) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('copy_posting_list.tsv', - copy_postings_list_wrapper) + generic_test.generic_test_main('copy_posting_list.tsv', + copy_postings_list_wrapper) diff --git a/epi_judge_python/count_bits.py b/epi_judge_python/count_bits.py index 6060d3ccc..1043483d6 100644 --- a/epi_judge_python/count_bits.py +++ b/epi_judge_python/count_bits.py @@ -3,7 +3,7 @@ def count_bits(x): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('count_bits.tsv', count_bits) + generic_test.generic_test_main('count_bits.tsv', count_bits) diff --git a/epi_judge_python/count_inversions.py b/epi_judge_python/count_inversions.py index 0a159a73c..ca4e41f15 100644 --- a/epi_judge_python/count_inversions.py +++ b/epi_judge_python/count_inversions.py @@ -3,8 +3,7 @@ def count_inversions(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('count_inversions.tsv', - count_inversions) + generic_test.generic_test_main('count_inversions.tsv', count_inversions) diff --git a/epi_judge_python/deadlock_detection.py b/epi_judge_python/deadlock_detection.py index ba5b2f96f..a0e237778 100644 --- a/epi_judge_python/deadlock_detection.py +++ b/epi_judge_python/deadlock_detection.py @@ -32,8 +32,8 @@ def is_deadlocked_wrapper(timer, num_nodes, edges): return result -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('deadlock_detection.tsv', - is_deadlocked_wrapper) + generic_test.generic_test_main('deadlock_detection.tsv', + is_deadlocked_wrapper) diff --git a/epi_judge_python/defective_jugs.py b/epi_judge_python/defective_jugs.py index e8f8efd3a..795c83fd7 100644 --- a/epi_judge_python/defective_jugs.py +++ b/epi_judge_python/defective_jugs.py @@ -17,8 +17,8 @@ def check_feasible_wrapper(timer, A, l, h): return check_feasible(A, l, h) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('defective_jugs.tsv', - check_feasible_wrapper) + generic_test.generic_test_main('defective_jugs.tsv', + check_feasible_wrapper) diff --git a/epi_judge_python/delete_from_list.py b/epi_judge_python/delete_from_list.py index 53a6e2407..a646b873a 100644 --- a/epi_judge_python/delete_from_list.py +++ b/epi_judge_python/delete_from_list.py @@ -26,8 +26,8 @@ def delete_from_list_wrapper(timer, head, node_idx): return head -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('delete_from_list.tsv', - delete_from_list_wrapper) + generic_test.generic_test_main('delete_from_list.tsv', + delete_from_list_wrapper) diff --git a/epi_judge_python/delete_kth_last_from_list.py b/epi_judge_python/delete_kth_last_from_list.py index 5fe2d73c0..7c8e29fab 100644 --- a/epi_judge_python/delete_kth_last_from_list.py +++ b/epi_judge_python/delete_kth_last_from_list.py @@ -7,8 +7,8 @@ def remove_kth_last(L, k): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('delete_kth_last_from_list.tsv', - remove_kth_last) + generic_test.generic_test_main('delete_kth_last_from_list.tsv', + remove_kth_last) diff --git a/epi_judge_python/delete_node_from_list.py b/epi_judge_python/delete_node_from_list.py index 1f2136a2d..f35e713f1 100644 --- a/epi_judge_python/delete_node_from_list.py +++ b/epi_judge_python/delete_node_from_list.py @@ -24,8 +24,8 @@ def deletion_from_list_wrapper(timer, head, node_to_delete_idx): return head -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('delete_node_from_list.tsv', - deletion_from_list_wrapper) + generic_test.generic_test_main('delete_node_from_list.tsv', + deletion_from_list_wrapper) diff --git a/epi_judge_python/descendant_and_ancestor_in_bst.py b/epi_judge_python/descendant_and_ancestor_in_bst.py index cbd5d6f57..1e59fae57 100644 --- a/epi_judge_python/descendant_and_ancestor_in_bst.py +++ b/epi_judge_python/descendant_and_ancestor_in_bst.py @@ -23,9 +23,9 @@ def pair_includes_ancestor_and_descendant_of_m_wrapper( return result -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'descendant_and_ancestor_in_bst.tsv', pair_includes_ancestor_and_descendant_of_m_wrapper) diff --git a/epi_judge_python/directory_path_normalization.py b/epi_judge_python/directory_path_normalization.py index d8669e8fe..53dcc135a 100644 --- a/epi_judge_python/directory_path_normalization.py +++ b/epi_judge_python/directory_path_normalization.py @@ -3,8 +3,8 @@ def shortest_equivalent_path(path): return '' -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'directory_path_normalization.tsv', shortest_equivalent_path) + generic_test.generic_test_main('directory_path_normalization.tsv', + shortest_equivalent_path) diff --git a/epi_judge_python/do_lists_overlap.py b/epi_judge_python/do_lists_overlap.py index 9dd41b4a2..8bb4ed853 100644 --- a/epi_judge_python/do_lists_overlap.py +++ b/epi_judge_python/do_lists_overlap.py @@ -64,8 +64,8 @@ def overlapping_lists_wrapper(timer, l0, l1, common, cycle0, cycle1): raise TestFailureException('Invalid result') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('do_lists_overlap.tsv', - overlapping_lists_wrapper) + generic_test.generic_test_main('do_lists_overlap.tsv', + overlapping_lists_wrapper) diff --git a/epi_judge_python/do_terminated_lists_overlap.py b/epi_judge_python/do_terminated_lists_overlap.py index bbfd8feb9..32cbd6626 100644 --- a/epi_judge_python/do_terminated_lists_overlap.py +++ b/epi_judge_python/do_terminated_lists_overlap.py @@ -34,8 +34,8 @@ def overlapping_no_cycle_lists_wrapper(timer, l0, l1, common): raise TestFailureException('Invalid result') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'do_terminated_lists_overlap.tsv', overlapping_no_cycle_lists_wrapper) + generic_test.generic_test_main('do_terminated_lists_overlap.tsv', + overlapping_no_cycle_lists_wrapper) diff --git a/epi_judge_python/drawing_skyline.py b/epi_judge_python/drawing_skyline.py index 6d4aecc17..df5dc250c 100644 --- a/epi_judge_python/drawing_skyline.py +++ b/epi_judge_python/drawing_skyline.py @@ -21,8 +21,8 @@ def compute_skyline_wrapper(timer, buildings): return [(x.left, x.right, x.height) for x in result] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('drawing_skyline.tsv', - compute_skyline_wrapper) + generic_test.generic_test_main('drawing_skyline.tsv', + compute_skyline_wrapper) diff --git a/epi_judge_python/dutch_national_flag.py b/epi_judge_python/dutch_national_flag.py index 20bf4c693..329d3110d 100644 --- a/epi_judge_python/dutch_national_flag.py +++ b/epi_judge_python/dutch_national_flag.py @@ -35,8 +35,8 @@ def dutch_flag_partition_wrapper(timer, A, pivot_idx): raise TestFailureException("Invalid output") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('dutch_national_flag.tsv', - dutch_flag_partition_wrapper) + generic_test.generic_test_main('dutch_national_flag.tsv', + dutch_flag_partition_wrapper) diff --git a/epi_judge_python/element_appearing_once.py b/epi_judge_python/element_appearing_once.py index 6b2619841..95a58098f 100644 --- a/epi_judge_python/element_appearing_once.py +++ b/epi_judge_python/element_appearing_once.py @@ -3,8 +3,8 @@ def find_element_appears_once(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('element_appearing_once.tsv', - find_element_appears_once) + generic_test.generic_test_main('element_appearing_once.tsv', + find_element_appears_once) diff --git a/epi_judge_python/enumerate_balanced_parentheses.py b/epi_judge_python/enumerate_balanced_parentheses.py index 43341e512..84ce20233 100644 --- a/epi_judge_python/enumerate_balanced_parentheses.py +++ b/epi_judge_python/enumerate_balanced_parentheses.py @@ -3,9 +3,9 @@ def generate_balanced_parentheses(num_pairs): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'enumerate_balanced_parentheses.tsv', generate_balanced_parentheses, - test_utils.unordered_compare) + generic_test.generic_test_main('enumerate_balanced_parentheses.tsv', + generate_balanced_parentheses, + test_utils.unordered_compare) diff --git a/epi_judge_python/enumerate_palindromic_decompositions.py b/epi_judge_python/enumerate_palindromic_decompositions.py index db1f60575..0f2a6ff98 100644 --- a/epi_judge_python/enumerate_palindromic_decompositions.py +++ b/epi_judge_python/enumerate_palindromic_decompositions.py @@ -7,9 +7,8 @@ def comp(a, b): return sorted(a) == sorted(b) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'enumerate_palindromic_decompositions.tsv', palindrome_decompositions, - comp) + generic_test.generic_test_main('enumerate_palindromic_decompositions.tsv', + palindrome_decompositions, comp) diff --git a/epi_judge_python/enumerate_trees.py b/epi_judge_python/enumerate_trees.py index 6dcc31109..23ffb0234 100644 --- a/epi_judge_python/enumerate_trees.py +++ b/epi_judge_python/enumerate_trees.py @@ -28,8 +28,8 @@ def generate_all_binary_trees_wrapper(timer, num_nodes): return sorted(map(serialize_structure, result)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'enumerate_trees.tsv', generate_all_binary_trees_wrapper) + generic_test.generic_test_main('enumerate_trees.tsv', + generate_all_binary_trees_wrapper) diff --git a/epi_judge_python/evaluate_rpn.py b/epi_judge_python/evaluate_rpn.py index 2dd82de53..5e54f8f5a 100644 --- a/epi_judge_python/evaluate_rpn.py +++ b/epi_judge_python/evaluate_rpn.py @@ -3,7 +3,7 @@ def evaluate(expression): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('evaluate_rpn.tsv', evaluate) + generic_test.generic_test_main('evaluate_rpn.tsv', evaluate) diff --git a/epi_judge_python/even_odd_array.py b/epi_judge_python/even_odd_array.py index 0c4f41840..7b0225306 100644 --- a/epi_judge_python/even_odd_array.py +++ b/epi_judge_python/even_odd_array.py @@ -29,8 +29,7 @@ def even_odd_wrapper(timer, A): raise TestFailureException("Elements mismatch") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('even_odd_array.tsv', - even_odd_wrapper) + generic_test.generic_test_main('even_odd_array.tsv', even_odd_wrapper) diff --git a/epi_judge_python/even_odd_list_merge.py b/epi_judge_python/even_odd_list_merge.py index 8fb6c9dd3..754f58f85 100644 --- a/epi_judge_python/even_odd_list_merge.py +++ b/epi_judge_python/even_odd_list_merge.py @@ -6,8 +6,7 @@ def even_odd_merge(L): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('even_odd_list_merge.tsv', - even_odd_merge) + generic_test.generic_test_main('even_odd_list_merge.tsv', even_odd_merge) diff --git a/epi_judge_python/find_salary_threshold.py b/epi_judge_python/find_salary_threshold.py index f0c97281f..9f5bd353b 100644 --- a/epi_judge_python/find_salary_threshold.py +++ b/epi_judge_python/find_salary_threshold.py @@ -3,8 +3,8 @@ def find_salary_cap(target_payroll, current_salaries): return 0.0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('find_salary_threshold.tsv', - find_salary_cap) + generic_test.generic_test_main('find_salary_threshold.tsv', + find_salary_cap) diff --git a/epi_judge_python/first_missing_positive_entry.py b/epi_judge_python/first_missing_positive_entry.py index d0c82abd8..72d15244e 100644 --- a/epi_judge_python/first_missing_positive_entry.py +++ b/epi_judge_python/first_missing_positive_entry.py @@ -3,8 +3,8 @@ def find_first_missing_positive(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'first_missing_positive_entry.tsv', find_first_missing_positive) + generic_test.generic_test_main('first_missing_positive_entry.tsv', + find_first_missing_positive) diff --git a/epi_judge_python/gcd.py b/epi_judge_python/gcd.py index 4d2f2ac34..2646fdbd0 100644 --- a/epi_judge_python/gcd.py +++ b/epi_judge_python/gcd.py @@ -3,7 +3,7 @@ def gcd(x, y): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('gcd.tsv', gcd) + generic_test.generic_test_main('gcd.tsv', gcd) diff --git a/epi_judge_python/graph_clone.py b/epi_judge_python/graph_clone.py index bea952289..36c8665df 100644 --- a/epi_judge_python/graph_clone.py +++ b/epi_judge_python/graph_clone.py @@ -52,8 +52,7 @@ def clone_graph_test(k, edges): check_graph(result, graph) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('graph_clone.tsv', - clone_graph_test) + generic_test.generic_test_main('graph_clone.tsv', clone_graph_test) diff --git a/epi_judge_python/gray_code.py b/epi_judge_python/gray_code.py index a915648c8..a3b824011 100644 --- a/epi_judge_python/gray_code.py +++ b/epi_judge_python/gray_code.py @@ -40,8 +40,7 @@ def differs_by_1_bit(a, b): str(len(result) - len(uniq)) + " duplicates") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("gray_code.tsv", - gray_code_wrapper) + generic_test.generic_test_main("gray_code.tsv", gray_code_wrapper) diff --git a/epi_judge_python/group_equal_entries.py b/epi_judge_python/group_equal_entries.py index e909ac3a9..50c2ea0cc 100644 --- a/epi_judge_python/group_equal_entries.py +++ b/epi_judge_python/group_equal_entries.py @@ -42,8 +42,8 @@ def group_by_age_wrapper(timer, people): last_age = x.age -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('group_equal_entries.tsv', - group_by_age_wrapper) + generic_test.generic_test_main('group_equal_entries.tsv', + group_by_age_wrapper) diff --git a/epi_judge_python/hanoi.py b/epi_judge_python/hanoi.py index 8e87ff7fd..e57b3ce42 100644 --- a/epi_judge_python/hanoi.py +++ b/epi_judge_python/hanoi.py @@ -30,8 +30,7 @@ def compute_tower_hanoi_wrapper(timer, num_rings): "Pegs doesn't place in the right configuration") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('hanoi.tsv', - compute_tower_hanoi_wrapper) + generic_test.generic_test_main('hanoi.tsv', compute_tower_hanoi_wrapper) diff --git a/epi_judge_python/huffman_coding.py b/epi_judge_python/huffman_coding.py index 9ea745586..58c3fec1b 100644 --- a/epi_judge_python/huffman_coding.py +++ b/epi_judge_python/huffman_coding.py @@ -20,8 +20,8 @@ def huffman_encoding_wrapper(timer, symbols): return huffman_encoding(symbols) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('huffman_coding.tsv', - huffman_encoding_wrapper) + generic_test.generic_test_main('huffman_coding.tsv', + huffman_encoding_wrapper) diff --git a/epi_judge_python/insert_in_list.py b/epi_judge_python/insert_in_list.py index 49b992c35..2fb149adf 100644 --- a/epi_judge_python/insert_in_list.py +++ b/epi_judge_python/insert_in_list.py @@ -22,8 +22,7 @@ def insert_list_wrapper(timer, l, node_idx, new_node_data): return l -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('insert_in_list.tsv', - insert_list_wrapper) + generic_test.generic_test_main('insert_in_list.tsv', insert_list_wrapper) diff --git a/epi_judge_python/insert_operators_in_string.py b/epi_judge_python/insert_operators_in_string.py index a82191b08..87c68b3e7 100644 --- a/epi_judge_python/insert_operators_in_string.py +++ b/epi_judge_python/insert_operators_in_string.py @@ -3,8 +3,8 @@ def expression_synthesis(digits, target): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("insert_operators_in_string.tsv", - expression_synthesis) + generic_test.generic_test_main("insert_operators_in_string.tsv", + expression_synthesis) diff --git a/epi_judge_python/int_as_array_increment.py b/epi_judge_python/int_as_array_increment.py index 4d675718f..d1002605f 100644 --- a/epi_judge_python/int_as_array_increment.py +++ b/epi_judge_python/int_as_array_increment.py @@ -3,8 +3,7 @@ def plus_one(A): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("int_as_array_increment.tsv", - plus_one) + generic_test.generic_test_main("int_as_array_increment.tsv", plus_one) diff --git a/epi_judge_python/int_as_array_multiply.py b/epi_judge_python/int_as_array_multiply.py index e21b3d36e..586f2465b 100644 --- a/epi_judge_python/int_as_array_multiply.py +++ b/epi_judge_python/int_as_array_multiply.py @@ -3,8 +3,7 @@ def multiply(num1, num2): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('int_as_array_multiply.tsv', - multiply) + generic_test.generic_test_main('int_as_array_multiply.tsv', multiply) diff --git a/epi_judge_python/int_as_list_add.py b/epi_judge_python/int_as_list_add.py index 2f9c4db51..9fbeffc44 100644 --- a/epi_judge_python/int_as_list_add.py +++ b/epi_judge_python/int_as_list_add.py @@ -6,8 +6,7 @@ def add_two_numbers(L1, L2): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('int_as_list_add.tsv', - add_two_numbers) + generic_test.generic_test_main('int_as_list_add.tsv', add_two_numbers) diff --git a/epi_judge_python/int_square_root.py b/epi_judge_python/int_square_root.py index 8a513407e..d2862781a 100644 --- a/epi_judge_python/int_square_root.py +++ b/epi_judge_python/int_square_root.py @@ -3,8 +3,7 @@ def square_root(k): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("int_square_root.tsv", - square_root) + generic_test.generic_test_main("int_square_root.tsv", square_root) diff --git a/epi_judge_python/intersect_sorted_arrays.py b/epi_judge_python/intersect_sorted_arrays.py index be6344c67..79d4b713f 100644 --- a/epi_judge_python/intersect_sorted_arrays.py +++ b/epi_judge_python/intersect_sorted_arrays.py @@ -3,8 +3,8 @@ def intersect_two_sorted_arrays(A, B): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('intersect_sorted_arrays.tsv', - intersect_two_sorted_arrays) + generic_test.generic_test_main('intersect_sorted_arrays.tsv', + intersect_two_sorted_arrays) diff --git a/epi_judge_python/interval_add.py b/epi_judge_python/interval_add.py index 0b983ef3f..ca3dccb4f 100644 --- a/epi_judge_python/interval_add.py +++ b/epi_judge_python/interval_add.py @@ -24,8 +24,8 @@ def fmt(x): return fmt(expected), fmt(result) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'interval_add.tsv', add_interval_wrapper, res_printer=res_printer) diff --git a/epi_judge_python/intervals_union.py b/epi_judge_python/intervals_union.py index 12382c11d..0cff0cdae 100644 --- a/epi_judge_python/intervals_union.py +++ b/epi_judge_python/intervals_union.py @@ -26,8 +26,8 @@ def union_of_intervals_wrapper(timer, intervals): for i in result] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("intervals_union.tsv", - union_of_intervals_wrapper) + generic_test.generic_test_main("intervals_union.tsv", + union_of_intervals_wrapper) diff --git a/epi_judge_python/is_anonymous_letter_constructible.py b/epi_judge_python/is_anonymous_letter_constructible.py index de4f03a34..f0499f54b 100644 --- a/epi_judge_python/is_anonymous_letter_constructible.py +++ b/epi_judge_python/is_anonymous_letter_constructible.py @@ -3,9 +3,8 @@ def is_letter_constructible_from_magazine(letter_text, magazine_text): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'is_anonymous_letter_constructible.tsv', - is_letter_constructible_from_magazine) + generic_test.generic_test_main('is_anonymous_letter_constructible.tsv', + is_letter_constructible_from_magazine) diff --git a/epi_judge_python/is_array_dominated.py b/epi_judge_python/is_array_dominated.py index 58010ec79..a851aa429 100644 --- a/epi_judge_python/is_array_dominated.py +++ b/epi_judge_python/is_array_dominated.py @@ -29,8 +29,8 @@ def valid_placement_exists_wrapper(timer, team0, team1, expected_01, raise TestFailureException("") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_array_dominated.tsv', - valid_placement_exists_wrapper) + generic_test.generic_test_main('is_array_dominated.tsv', + valid_placement_exists_wrapper) diff --git a/epi_judge_python/is_circuit_wirable.py b/epi_judge_python/is_circuit_wirable.py index 958a190c9..15fa43b01 100644 --- a/epi_judge_python/is_circuit_wirable.py +++ b/epi_judge_python/is_circuit_wirable.py @@ -29,8 +29,8 @@ def is_any_placement_feasible_wrapper(timer, k, edges): return result -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'is_circuit_wirable.tsv', is_any_placement_feasible_wrapper) + generic_test.generic_test_main('is_circuit_wirable.tsv', + is_any_placement_feasible_wrapper) diff --git a/epi_judge_python/is_list_cyclic.py b/epi_judge_python/is_list_cyclic.py index 7d5d4601b..9849834bd 100644 --- a/epi_judge_python/is_list_cyclic.py +++ b/epi_judge_python/is_list_cyclic.py @@ -55,8 +55,7 @@ def has_cycle_wrapper(timer, head, cycle_idx): ) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_list_cyclic.tsv', - has_cycle_wrapper) + generic_test.generic_test_main('is_list_cyclic.tsv', has_cycle_wrapper) diff --git a/epi_judge_python/is_list_palindromic.py b/epi_judge_python/is_list_palindromic.py index 0c6ce9d4e..ea9eb5ef1 100644 --- a/epi_judge_python/is_list_palindromic.py +++ b/epi_judge_python/is_list_palindromic.py @@ -6,8 +6,8 @@ def is_linked_list_a_palindrome(L): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_list_palindromic.tsv', - is_linked_list_a_palindrome) + generic_test.generic_test_main('is_list_palindromic.tsv', + is_linked_list_a_palindrome) diff --git a/epi_judge_python/is_number_palindromic.py b/epi_judge_python/is_number_palindromic.py index 670dec33f..8434dd20c 100644 --- a/epi_judge_python/is_number_palindromic.py +++ b/epi_judge_python/is_number_palindromic.py @@ -3,8 +3,8 @@ def is_palindrome_number(x): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("is_number_palindromic.tsv", - is_palindrome_number) + generic_test.generic_test_main("is_number_palindromic.tsv", + is_palindrome_number) diff --git a/epi_judge_python/is_string_decomposable_into_words.py b/epi_judge_python/is_string_decomposable_into_words.py index ad40e1eda..cce3c999c 100644 --- a/epi_judge_python/is_string_decomposable_into_words.py +++ b/epi_judge_python/is_string_decomposable_into_words.py @@ -3,9 +3,8 @@ def decompose_into_dictionary_words(domain, dictionary): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'is_string_decomposable_into_words.tsv', - decompose_into_dictionary_words) + generic_test.generic_test_main('is_string_decomposable_into_words.tsv', + decompose_into_dictionary_words) diff --git a/epi_judge_python/is_string_in_matrix.py b/epi_judge_python/is_string_in_matrix.py index 5f2366e9a..a79f8c105 100644 --- a/epi_judge_python/is_string_in_matrix.py +++ b/epi_judge_python/is_string_in_matrix.py @@ -3,8 +3,8 @@ def is_pattern_contained_in_grid(grid, S): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_string_in_matrix.tsv', - is_pattern_contained_in_grid) + generic_test.generic_test_main('is_string_in_matrix.tsv', + is_pattern_contained_in_grid) diff --git a/epi_judge_python/is_string_palindromic_punctuation.py b/epi_judge_python/is_string_palindromic_punctuation.py index 913bfa480..6ad643ec2 100644 --- a/epi_judge_python/is_string_palindromic_punctuation.py +++ b/epi_judge_python/is_string_palindromic_punctuation.py @@ -3,8 +3,8 @@ def is_palindrome(s): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "is_string_palindromic_punctuation.tsv", is_palindrome) + generic_test.generic_test_main("is_string_palindromic_punctuation.tsv", + is_palindrome) diff --git a/epi_judge_python/is_string_permutable_to_palindrome.py b/epi_judge_python/is_string_permutable_to_palindrome.py index f2ce38323..6b7886051 100644 --- a/epi_judge_python/is_string_permutable_to_palindrome.py +++ b/epi_judge_python/is_string_permutable_to_palindrome.py @@ -3,8 +3,8 @@ def can_form_palindrome(s): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('can_string_be_palindrome.tsv', - can_form_palindrome) + generic_test.generic_test_main('can_string_be_palindrome.tsv', + can_form_palindrome) diff --git a/epi_judge_python/is_tree_a_bst.py b/epi_judge_python/is_tree_a_bst.py index cf89f5139..c97f4f64c 100644 --- a/epi_judge_python/is_tree_a_bst.py +++ b/epi_judge_python/is_tree_a_bst.py @@ -6,8 +6,7 @@ def is_binary_tree_bst(tree, low_range=float('-inf'), high_range=float('inf')): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_tree_a_bst.tsv', - is_binary_tree_bst) + generic_test.generic_test_main('is_tree_a_bst.tsv', is_binary_tree_bst) diff --git a/epi_judge_python/is_tree_balanced.py b/epi_judge_python/is_tree_balanced.py index f8db65b52..92b7f69d9 100644 --- a/epi_judge_python/is_tree_balanced.py +++ b/epi_judge_python/is_tree_balanced.py @@ -6,8 +6,8 @@ def is_balanced_binary_tree(tree): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_tree_balanced.tsv', - is_balanced_binary_tree) + generic_test.generic_test_main('is_tree_balanced.tsv', + is_balanced_binary_tree) diff --git a/epi_judge_python/is_tree_symmetric.py b/epi_judge_python/is_tree_symmetric.py index 6a1ee4584..0643d8928 100644 --- a/epi_judge_python/is_tree_symmetric.py +++ b/epi_judge_python/is_tree_symmetric.py @@ -6,8 +6,7 @@ def is_symmetric(tree): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_tree_symmetric.tsv', - is_symmetric) + generic_test.generic_test_main('is_tree_symmetric.tsv', is_symmetric) diff --git a/epi_judge_python/is_valid_parenthesization.py b/epi_judge_python/is_valid_parenthesization.py index 54ddfa2ee..2d47bb403 100644 --- a/epi_judge_python/is_valid_parenthesization.py +++ b/epi_judge_python/is_valid_parenthesization.py @@ -3,8 +3,8 @@ def is_well_formed(s): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('is_valid_parenthesization.tsv', - is_well_formed) + generic_test.generic_test_main('is_valid_parenthesization.tsv', + is_well_formed) diff --git a/epi_judge_python/is_valid_sudoku.py b/epi_judge_python/is_valid_sudoku.py index 8b79b4365..70136f795 100644 --- a/epi_judge_python/is_valid_sudoku.py +++ b/epi_judge_python/is_valid_sudoku.py @@ -4,8 +4,7 @@ def is_valid_sudoku(partial_assignment): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("is_valid_sudoku.tsv", - is_valid_sudoku) + generic_test.generic_test_main("is_valid_sudoku.tsv", is_valid_sudoku) diff --git a/epi_judge_python/k_closest_stars.py b/epi_judge_python/k_closest_stars.py index 9f4a42acd..1aad33611 100644 --- a/epi_judge_python/k_closest_stars.py +++ b/epi_judge_python/k_closest_stars.py @@ -44,8 +44,8 @@ def find_closest_k_stars_wrapper(timer, stars, k): return find_closest_k_stars(iter(stars), k) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "k_closest_stars.tsv", find_closest_k_stars_wrapper, comp) + generic_test.generic_test_main("k_closest_stars.tsv", + find_closest_k_stars_wrapper, comp) diff --git a/epi_judge_python/k_largest_in_heap.py b/epi_judge_python/k_largest_in_heap.py index 46c2c2111..7887c66c2 100644 --- a/epi_judge_python/k_largest_in_heap.py +++ b/epi_judge_python/k_largest_in_heap.py @@ -3,10 +3,10 @@ def k_largest_in_binary_heap(A, k): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( "k_largest_in_heap.tsv", k_largest_in_binary_heap, - comp=test_utils.unordered_compare) + comparator=test_utils.unordered_compare) diff --git a/epi_judge_python/k_largest_values_in_bst.py b/epi_judge_python/k_largest_values_in_bst.py index 143a0fd57..078b3c284 100644 --- a/epi_judge_python/k_largest_values_in_bst.py +++ b/epi_judge_python/k_largest_values_in_bst.py @@ -3,9 +3,9 @@ def find_k_largest_in_bst(tree, k): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('k_largest_values_in_bst.tsv', - find_k_largest_in_bst, - test_utils.unordered_compare) + generic_test.generic_test_main('k_largest_values_in_bst.tsv', + find_k_largest_in_bst, + test_utils.unordered_compare) diff --git a/epi_judge_python/knapsack.py b/epi_judge_python/knapsack.py index cca79a98a..2680f0552 100644 --- a/epi_judge_python/knapsack.py +++ b/epi_judge_python/knapsack.py @@ -17,8 +17,8 @@ def optimum_subject_to_capacity_wrapper(timer, items, capacity): return optimum_subject_to_capacity(items, capacity) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "knapsack.tsv", optimum_subject_to_capacity_wrapper) + generic_test.generic_test_main("knapsack.tsv", + optimum_subject_to_capacity_wrapper) diff --git a/epi_judge_python/kth_largest_element_in_two_sorted_arrays.py b/epi_judge_python/kth_largest_element_in_two_sorted_arrays.py index 1b602de4d..4d547fb0d 100644 --- a/epi_judge_python/kth_largest_element_in_two_sorted_arrays.py +++ b/epi_judge_python/kth_largest_element_in_two_sorted_arrays.py @@ -3,9 +3,9 @@ def find_kth_in_two_sorted_arrays(A, B, k): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'kth_largest_element_in_two_sorted_arrays.tsv', find_kth_in_two_sorted_arrays) diff --git a/epi_judge_python/kth_largest_in_array.py b/epi_judge_python/kth_largest_in_array.py index 72830882d..28caa42b6 100644 --- a/epi_judge_python/kth_largest_in_array.py +++ b/epi_judge_python/kth_largest_in_array.py @@ -6,8 +6,8 @@ def find_kth_largest(k, A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('kth_largest_in_array.tsv', - find_kth_largest) + generic_test.generic_test_main('kth_largest_in_array.tsv', + find_kth_largest) diff --git a/epi_judge_python/kth_node_in_tree.py b/epi_judge_python/kth_node_in_tree.py index 759d20b83..ab0ded10e 100644 --- a/epi_judge_python/kth_node_in_tree.py +++ b/epi_judge_python/kth_node_in_tree.py @@ -34,8 +34,8 @@ def init_size(node): return result.data -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "kth_node_in_tree.tsv", find_kth_node_binary_tree_wrapper) + generic_test.generic_test_main("kth_node_in_tree.tsv", + find_kth_node_binary_tree_wrapper) diff --git a/epi_judge_python/largest_rectangle_under_skyline.py b/epi_judge_python/largest_rectangle_under_skyline.py index ac3e6b14f..067b98958 100644 --- a/epi_judge_python/largest_rectangle_under_skyline.py +++ b/epi_judge_python/largest_rectangle_under_skyline.py @@ -3,8 +3,8 @@ def calculate_largest_rectangle(heights): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'largest_rectangle_under_skyline.tsv', calculate_largest_rectangle) + generic_test.generic_test_main('largest_rectangle_under_skyline.tsv', + calculate_largest_rectangle) diff --git a/epi_judge_python/left_right_justify_text.py b/epi_judge_python/left_right_justify_text.py index 2d5f6998f..535640c43 100644 --- a/epi_judge_python/left_right_justify_text.py +++ b/epi_judge_python/left_right_justify_text.py @@ -3,8 +3,7 @@ def justify_text(words, L): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('left_right_justify_text.tsv', - justify_text) + generic_test.generic_test_main('left_right_justify_text.tsv', justify_text) diff --git a/epi_judge_python/levenshtein_distance.py b/epi_judge_python/levenshtein_distance.py index 3d8346f52..f5f112794 100644 --- a/epi_judge_python/levenshtein_distance.py +++ b/epi_judge_python/levenshtein_distance.py @@ -3,8 +3,8 @@ def levenshtein_distance(A, B): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("levenshtein_distance.tsv", - levenshtein_distance) + generic_test.generic_test_main("levenshtein_distance.tsv", + levenshtein_distance) diff --git a/epi_judge_python/line_though_most_points.py b/epi_judge_python/line_though_most_points.py index b749edfb1..51692fb0e 100644 --- a/epi_judge_python/line_though_most_points.py +++ b/epi_judge_python/line_though_most_points.py @@ -17,8 +17,8 @@ def find_line_with_most_points_wrapper(timer, points): return find_line_with_most_points(points) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'line_though_most_points.tsv', find_line_with_most_points_wrapper) + generic_test.generic_test_main('line_though_most_points.tsv', + find_line_with_most_points_wrapper) diff --git a/epi_judge_python/list_cyclic_right_shift.py b/epi_judge_python/list_cyclic_right_shift.py index 91fd3556f..40b86cc59 100644 --- a/epi_judge_python/list_cyclic_right_shift.py +++ b/epi_judge_python/list_cyclic_right_shift.py @@ -6,8 +6,8 @@ def cyclically_right_shift_list(L, k): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('list_cyclic_right_shift.tsv', - cyclically_right_shift_list) + generic_test.generic_test_main('list_cyclic_right_shift.tsv', + cyclically_right_shift_list) diff --git a/epi_judge_python/longest_contained_interval.py b/epi_judge_python/longest_contained_interval.py index 5cacf4540..d90e17178 100644 --- a/epi_judge_python/longest_contained_interval.py +++ b/epi_judge_python/longest_contained_interval.py @@ -3,8 +3,8 @@ def longest_contained_range(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('longest_contained_interval.tsv', - longest_contained_range) + generic_test.generic_test_main('longest_contained_interval.tsv', + longest_contained_range) diff --git a/epi_judge_python/longest_increasing_subarray.py b/epi_judge_python/longest_increasing_subarray.py index 4a5e141e1..ced34f531 100644 --- a/epi_judge_python/longest_increasing_subarray.py +++ b/epi_judge_python/longest_increasing_subarray.py @@ -13,9 +13,8 @@ def find_longest_increasing_subarray_wrapper(A): return result.end - result.start + 1 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'longest_increasing_subarray.tsv', - find_longest_increasing_subarray_wrapper) + generic_test.generic_test_main('longest_increasing_subarray.tsv', + find_longest_increasing_subarray_wrapper) diff --git a/epi_judge_python/longest_nondecreasing_subsequence.py b/epi_judge_python/longest_nondecreasing_subsequence.py index 1a742c3c4..b443fed1a 100644 --- a/epi_judge_python/longest_nondecreasing_subsequence.py +++ b/epi_judge_python/longest_nondecreasing_subsequence.py @@ -3,9 +3,8 @@ def longest_nondecreasing_subsequence_length(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'longest_nondecreasing_subsequence.tsv', - longest_nondecreasing_subsequence_length) + generic_test.generic_test_main('longest_nondecreasing_subsequence.tsv', + longest_nondecreasing_subsequence_length) diff --git a/epi_judge_python/longest_subarray_with_distinct_values.py b/epi_judge_python/longest_subarray_with_distinct_values.py index 71dbdc7cf..975c153ca 100644 --- a/epi_judge_python/longest_subarray_with_distinct_values.py +++ b/epi_judge_python/longest_subarray_with_distinct_values.py @@ -3,9 +3,8 @@ def longest_subarray_with_distinct_entries(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'longest_subarray_with_distinct_values.tsv', - longest_subarray_with_distinct_entries) + generic_test.generic_test_main('longest_subarray_with_distinct_values.tsv', + longest_subarray_with_distinct_entries) diff --git a/epi_judge_python/longest_subarray_with_sum_constraint.py b/epi_judge_python/longest_subarray_with_sum_constraint.py index 097be3d33..f19b89fae 100644 --- a/epi_judge_python/longest_subarray_with_sum_constraint.py +++ b/epi_judge_python/longest_subarray_with_sum_constraint.py @@ -3,9 +3,8 @@ def find_longest_subarray_less_equal_k(A, k): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'longest_subarray_with_sum_constraint.tsv', - find_longest_subarray_less_equal_k) + generic_test.generic_test_main('longest_subarray_with_sum_constraint.tsv', + find_longest_subarray_less_equal_k) diff --git a/epi_judge_python/longest_substring_with_matching_parentheses.py b/epi_judge_python/longest_substring_with_matching_parentheses.py index a2cf77e8a..bae235fec 100644 --- a/epi_judge_python/longest_substring_with_matching_parentheses.py +++ b/epi_judge_python/longest_substring_with_matching_parentheses.py @@ -3,9 +3,9 @@ def longest_matching_parentheses(s): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'longest_substring_with_matching_parentheses.tsv', longest_matching_parentheses) diff --git a/epi_judge_python/look_and_say.py b/epi_judge_python/look_and_say.py index 2135a2f9f..1916334f1 100644 --- a/epi_judge_python/look_and_say.py +++ b/epi_judge_python/look_and_say.py @@ -3,7 +3,7 @@ def look_and_say(n): return '' -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("look_and_say.tsv", look_and_say) + generic_test.generic_test_main("look_and_say.tsv", look_and_say) diff --git a/epi_judge_python/lowest_common_ancestor.py b/epi_judge_python/lowest_common_ancestor.py index 039f27a49..27c7badb3 100644 --- a/epi_judge_python/lowest_common_ancestor.py +++ b/epi_judge_python/lowest_common_ancestor.py @@ -20,8 +20,7 @@ def lca_wrapper(timer, tree, key1, key2): return result.data -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('lowest_common_ancestor.tsv', - lca_wrapper) + generic_test.generic_test_main('lowest_common_ancestor.tsv', lca_wrapper) diff --git a/epi_judge_python/lowest_common_ancestor_close_ancestor.py b/epi_judge_python/lowest_common_ancestor_close_ancestor.py index 1d71d0460..6226fb427 100644 --- a/epi_judge_python/lowest_common_ancestor_close_ancestor.py +++ b/epi_judge_python/lowest_common_ancestor_close_ancestor.py @@ -19,8 +19,7 @@ def lca_wrapper(timer, tree, node0, node1): return result.data -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('lowest_common_ancestor.tsv', - lca_wrapper) + generic_test.generic_test_main('lowest_common_ancestor.tsv', lca_wrapper) diff --git a/epi_judge_python/lowest_common_ancestor_in_bst.py b/epi_judge_python/lowest_common_ancestor_in_bst.py index 59a7d4baf..6ae609b15 100644 --- a/epi_judge_python/lowest_common_ancestor_in_bst.py +++ b/epi_judge_python/lowest_common_ancestor_in_bst.py @@ -19,8 +19,8 @@ def lca_wrapper(timer, tree, s, b): return result.data -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'lowest_common_ancestor_in_bst.tsv', lca_wrapper) + generic_test.generic_test_main('lowest_common_ancestor_in_bst.tsv', + lca_wrapper) diff --git a/epi_judge_python/lowest_common_ancestor_with_parent.py b/epi_judge_python/lowest_common_ancestor_with_parent.py index 62e2d2814..eea1c9a82 100644 --- a/epi_judge_python/lowest_common_ancestor_with_parent.py +++ b/epi_judge_python/lowest_common_ancestor_with_parent.py @@ -19,8 +19,7 @@ def lca_wrapper(timer, tree, node0, node1): return result.data -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('lowest_common_ancestor.tsv', - lca_wrapper) + generic_test.generic_test_main('lowest_common_ancestor.tsv', lca_wrapper) diff --git a/epi_judge_python/lru_cache.py b/epi_judge_python/lru_cache.py index b76bf9fd7..4253037f8 100644 --- a/epi_judge_python/lru_cache.py +++ b/epi_judge_python/lru_cache.py @@ -42,7 +42,7 @@ def run_test(commands): raise RuntimeError('Unexpected command ' + cmd[0]) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('lru_cache.tsv', run_test) + generic_test.generic_test_main('lru_cache.tsv', run_test) diff --git a/epi_judge_python/majority_element.py b/epi_judge_python/majority_element.py index 51faeed2b..1029f6d6b 100644 --- a/epi_judge_python/majority_element.py +++ b/epi_judge_python/majority_element.py @@ -7,8 +7,8 @@ def majority_search_wrapper(stream): return majority_search(iter(stream)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('majority_element.tsv', - majority_search_wrapper) + generic_test.generic_test_main('majority_element.tsv', + majority_search_wrapper) diff --git a/epi_judge_python/matrix_connected_regions.py b/epi_judge_python/matrix_connected_regions.py index ae7bffea2..690061fbc 100644 --- a/epi_judge_python/matrix_connected_regions.py +++ b/epi_judge_python/matrix_connected_regions.py @@ -8,8 +8,7 @@ def flip_color_wrapper(x, y, image): return image -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('painting.tsv', - flip_color_wrapper) + generic_test.generic_test_main('painting.tsv', flip_color_wrapper) diff --git a/epi_judge_python/matrix_enclosed_regions.py b/epi_judge_python/matrix_enclosed_regions.py index 1e2d56812..1a162f098 100644 --- a/epi_judge_python/matrix_enclosed_regions.py +++ b/epi_judge_python/matrix_enclosed_regions.py @@ -8,8 +8,8 @@ def fill_surrounded_regions_wrapper(board): return board -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('matrix_enclosed_regions.tsv', - fill_surrounded_regions_wrapper) + generic_test.generic_test_main('matrix_enclosed_regions.tsv', + fill_surrounded_regions_wrapper) diff --git a/epi_judge_python/matrix_rotation.py b/epi_judge_python/matrix_rotation.py index 5562d5de4..82338cecc 100644 --- a/epi_judge_python/matrix_rotation.py +++ b/epi_judge_python/matrix_rotation.py @@ -8,8 +8,8 @@ def rotate_matrix_wrapper(square_matrix): return square_matrix -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('matrix_rotation.tsv', - rotate_matrix_wrapper) + generic_test.generic_test_main('matrix_rotation.tsv', + rotate_matrix_wrapper) diff --git a/epi_judge_python/max_of_sliding_window.py b/epi_judge_python/max_of_sliding_window.py index d96d94972..80074da99 100644 --- a/epi_judge_python/max_of_sliding_window.py +++ b/epi_judge_python/max_of_sliding_window.py @@ -23,8 +23,8 @@ def calculate_traffic_volumes_wrapper(timer, A, w): return [(x.time, x.volume) for x in result] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'max_of_sliding_window.tsv', calculate_traffic_volumes_wrapper) + generic_test.generic_test_main('max_of_sliding_window.tsv', + calculate_traffic_volumes_wrapper) diff --git a/epi_judge_python/max_product_all_but_one.py b/epi_judge_python/max_product_all_but_one.py index d5fe4e264..40a2af78d 100644 --- a/epi_judge_python/max_product_all_but_one.py +++ b/epi_judge_python/max_product_all_but_one.py @@ -3,8 +3,8 @@ def find_biggest_n_minus_one_product(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('max_product_all_but_one.tsv', - find_biggest_n_minus_one_product) + generic_test.generic_test_main('max_product_all_but_one.tsv', + find_biggest_n_minus_one_product) diff --git a/epi_judge_python/max_safe_height.py b/epi_judge_python/max_safe_height.py index ac897a27b..ec099bf0a 100644 --- a/epi_judge_python/max_safe_height.py +++ b/epi_judge_python/max_safe_height.py @@ -3,8 +3,7 @@ def get_height(cases, drops): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('max_safe_height.tsv', - get_height) + generic_test.generic_test_main('max_safe_height.tsv', get_height) diff --git a/epi_judge_python/max_square_submatrix.py b/epi_judge_python/max_square_submatrix.py index 2b9a33590..0bf64c111 100644 --- a/epi_judge_python/max_square_submatrix.py +++ b/epi_judge_python/max_square_submatrix.py @@ -3,8 +3,8 @@ def max_square_submatrix(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('max_square_submatrix.tsv', - max_square_submatrix) + generic_test.generic_test_main('max_square_submatrix.tsv', + max_square_submatrix) diff --git a/epi_judge_python/max_submatrix.py b/epi_judge_python/max_submatrix.py index 5ba6cdca1..540bc3045 100644 --- a/epi_judge_python/max_submatrix.py +++ b/epi_judge_python/max_submatrix.py @@ -3,8 +3,8 @@ def max_rectangle_submatrix(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('max_submatrix.tsv', - max_rectangle_submatrix) + generic_test.generic_test_main('max_submatrix.tsv', + max_rectangle_submatrix) diff --git a/epi_judge_python/max_teams_in_photograph.py b/epi_judge_python/max_teams_in_photograph.py index f25dfa475..e8ead6c52 100644 --- a/epi_judge_python/max_teams_in_photograph.py +++ b/epi_judge_python/max_teams_in_photograph.py @@ -30,8 +30,8 @@ def find_largest_number_teams_wrapper(timer, k, edges): return result -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'max_teams_in_photograph.tsv', find_largest_number_teams_wrapper) + generic_test.generic_test_main('max_teams_in_photograph.tsv', + find_largest_number_teams_wrapper) diff --git a/epi_judge_python/max_water_trappable.py b/epi_judge_python/max_water_trappable.py index de8a1eb72..14615514e 100644 --- a/epi_judge_python/max_water_trappable.py +++ b/epi_judge_python/max_water_trappable.py @@ -3,8 +3,8 @@ def calculate_trapping_water(heights): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('max_water_trappable.tsv', - calculate_trapping_water) + generic_test.generic_test_main('max_water_trappable.tsv', + calculate_trapping_water) diff --git a/epi_judge_python/maximum_subarray_in_circular_array.py b/epi_judge_python/maximum_subarray_in_circular_array.py index 4433fb7e2..0bda5881a 100644 --- a/epi_judge_python/maximum_subarray_in_circular_array.py +++ b/epi_judge_python/maximum_subarray_in_circular_array.py @@ -3,8 +3,8 @@ def max_subarray_sum_in_circular(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'maximum_subarray_in_circular_array.tsv', max_subarray_sum_in_circular) + generic_test.generic_test_main('maximum_subarray_in_circular_array.tsv', + max_subarray_sum_in_circular) diff --git a/epi_judge_python/minimum_distance_3_sorted_arrays.py b/epi_judge_python/minimum_distance_3_sorted_arrays.py index d812cb437..c790c3cc6 100644 --- a/epi_judge_python/minimum_distance_3_sorted_arrays.py +++ b/epi_judge_python/minimum_distance_3_sorted_arrays.py @@ -3,9 +3,8 @@ def find_closest_elements_in_sorted_arrays(sorted_arrays): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'minimum_distance_3_sorted_arrays.tsv', - find_closest_elements_in_sorted_arrays) + generic_test.generic_test_main('minimum_distance_3_sorted_arrays.tsv', + find_closest_elements_in_sorted_arrays) diff --git a/epi_judge_python/minimum_points_covering_intervals.py b/epi_judge_python/minimum_points_covering_intervals.py index b39134c1e..99ca83eab 100644 --- a/epi_judge_python/minimum_points_covering_intervals.py +++ b/epi_judge_python/minimum_points_covering_intervals.py @@ -17,8 +17,8 @@ def find_minimum_visits_wrapper(timer, A): return find_minimum_visits(A) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('points_covering_intervals.tsv', - find_minimum_visits_wrapper) + generic_test.generic_test_main('minimum_points_covering_intervals.tsv', + find_minimum_visits_wrapper) diff --git a/epi_judge_python/minimum_waiting_time.py b/epi_judge_python/minimum_waiting_time.py index f9d13c4c4..d9fde9ad5 100644 --- a/epi_judge_python/minimum_waiting_time.py +++ b/epi_judge_python/minimum_waiting_time.py @@ -3,8 +3,8 @@ def minimum_total_waiting_time(service_times): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('minimum_waiting_time.tsv', - minimum_total_waiting_time) + generic_test.generic_test_main('minimum_waiting_time.tsv', + minimum_total_waiting_time) diff --git a/epi_judge_python/minimum_weight_path_in_a_triangle.py b/epi_judge_python/minimum_weight_path_in_a_triangle.py index e519470f9..f32fb8bd0 100644 --- a/epi_judge_python/minimum_weight_path_in_a_triangle.py +++ b/epi_judge_python/minimum_weight_path_in_a_triangle.py @@ -3,8 +3,8 @@ def minimum_path_weight(triangle): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'minimum_weight_path_in_a_triangle.tsv', minimum_path_weight) + generic_test.generic_test_main('minimum_weight_path_in_a_triangle.tsv', + minimum_path_weight) diff --git a/epi_judge_python/n_queens.py b/epi_judge_python/n_queens.py index f4226be88..479e3f35f 100644 --- a/epi_judge_python/n_queens.py +++ b/epi_judge_python/n_queens.py @@ -7,7 +7,7 @@ def comp(a, b): return sorted(a) == sorted(b) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('n_queens.tsv', n_queens, comp) + generic_test.generic_test_main('n_queens.tsv', n_queens, comp) diff --git a/epi_judge_python/nearest_repeated_entries.py b/epi_judge_python/nearest_repeated_entries.py index 1ae70c63d..9111592a6 100644 --- a/epi_judge_python/nearest_repeated_entries.py +++ b/epi_judge_python/nearest_repeated_entries.py @@ -3,8 +3,8 @@ def find_nearest_repetition(paragraph): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('nearest_repeated_entries.tsv', - find_nearest_repetition) + generic_test.generic_test_main('nearest_repeated_entries.tsv', + find_nearest_repetition) diff --git a/epi_judge_python/next_permutation.py b/epi_judge_python/next_permutation.py index 60b0e6b3e..ee35dae09 100644 --- a/epi_judge_python/next_permutation.py +++ b/epi_judge_python/next_permutation.py @@ -3,8 +3,7 @@ def next_permutation(perm): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('next_permutation.tsv', - next_permutation) + generic_test.generic_test_main('next_permutation.tsv', next_permutation) diff --git a/epi_judge_python/nonuniform_random_number.py b/epi_judge_python/nonuniform_random_number.py index 9a312861e..de7afa2da 100644 --- a/epi_judge_python/nonuniform_random_number.py +++ b/epi_judge_python/nonuniform_random_number.py @@ -37,9 +37,8 @@ def nonuniform_random_number_generation_runner(timer, values, values, probabilities)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'nonuniform_random_number.tsv', - nonuniform_random_number_generation_wrapper) + generic_test.generic_test_main('nonuniform_random_number.tsv', + nonuniform_random_number_generation_wrapper) diff --git a/epi_judge_python/number_of_score_combinations.py b/epi_judge_python/number_of_score_combinations.py index e7739d7c9..cbac1c071 100644 --- a/epi_judge_python/number_of_score_combinations.py +++ b/epi_judge_python/number_of_score_combinations.py @@ -3,8 +3,8 @@ def num_combinations_for_final_score(final_score, individual_play_scores): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "number_of_score_combinations.tsv", num_combinations_for_final_score) + generic_test.generic_test_main("number_of_score_combinations.tsv", + num_combinations_for_final_score) diff --git a/epi_judge_python/number_of_traversals_matrix.py b/epi_judge_python/number_of_traversals_matrix.py index 972de9b6b..32fcb2e9b 100644 --- a/epi_judge_python/number_of_traversals_matrix.py +++ b/epi_judge_python/number_of_traversals_matrix.py @@ -3,8 +3,8 @@ def number_of_ways(n, m): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'number_of_traversals_matrix.tsv', number_of_ways) + generic_test.generic_test_main('number_of_traversals_matrix.tsv', + number_of_ways) diff --git a/epi_judge_python/number_of_traversals_staircase.py b/epi_judge_python/number_of_traversals_staircase.py index c9d175349..dd351d635 100644 --- a/epi_judge_python/number_of_traversals_staircase.py +++ b/epi_judge_python/number_of_traversals_staircase.py @@ -3,8 +3,8 @@ def number_of_ways_to_top(top, maximum_step): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "number_of_traversals_staircase.tsv", number_of_ways_to_top) + generic_test.generic_test_main("number_of_traversals_staircase.tsv", + number_of_ways_to_top) diff --git a/epi_judge_python/offline_sampling.py b/epi_judge_python/offline_sampling.py index 2da361c8f..970b95513 100644 --- a/epi_judge_python/offline_sampling.py +++ b/epi_judge_python/offline_sampling.py @@ -36,8 +36,8 @@ def random_sampling_runner(timer, k, A): functools.partial(random_sampling_runner, timer, k, A)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('offline_sampling.tsv', - random_sampling_wrapper) + generic_test.generic_test_main('offline_sampling.tsv', + random_sampling_wrapper) diff --git a/epi_judge_python/online_median.py b/epi_judge_python/online_median.py index adbc03c69..35424106c 100644 --- a/epi_judge_python/online_median.py +++ b/epi_judge_python/online_median.py @@ -7,8 +7,7 @@ def online_median_wrapper(sequence): return online_median(iter(sequence)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("online_median.tsv", - online_median_wrapper) + generic_test.generic_test_main("online_median.tsv", online_median_wrapper) diff --git a/epi_judge_python/online_sampling.py b/epi_judge_python/online_sampling.py index 166b52ecb..6c57b72db 100644 --- a/epi_judge_python/online_sampling.py +++ b/epi_judge_python/online_sampling.py @@ -33,8 +33,8 @@ def online_random_sample_runner(timer, stream, k): functools.partial(online_random_sample_runner, timer, stream, k)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("online_sampling.tsv", - online_random_sample_wrapper) + generic_test.generic_test_main("online_sampling.tsv", + online_random_sample_wrapper) diff --git a/epi_judge_python/parity.py b/epi_judge_python/parity.py index dc36b95c8..110ecfda3 100644 --- a/epi_judge_python/parity.py +++ b/epi_judge_python/parity.py @@ -3,7 +3,7 @@ def parity(x): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('parity.tsv', parity) + generic_test.generic_test_main('parity.tsv', parity) diff --git a/epi_judge_python/pascal_triangle.py b/epi_judge_python/pascal_triangle.py index ed7b14242..943d8f71e 100644 --- a/epi_judge_python/pascal_triangle.py +++ b/epi_judge_python/pascal_triangle.py @@ -3,8 +3,8 @@ def generate_pascal_triangle(n): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('pascal_triangle.tsv', - generate_pascal_triangle) + generic_test.generic_test_main('pascal_triangle.tsv', + generate_pascal_triangle) diff --git a/epi_judge_python/path_sum.py b/epi_judge_python/path_sum.py index 07939e603..5d90bbe2e 100644 --- a/epi_judge_python/path_sum.py +++ b/epi_judge_python/path_sum.py @@ -3,7 +3,7 @@ def has_path_sum(tree, remaining_weight): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('path_sum.tsv', has_path_sum) + generic_test.generic_test_main('path_sum.tsv', has_path_sum) diff --git a/epi_judge_python/permutations.py b/epi_judge_python/permutations.py index a13432364..5bec3408a 100644 --- a/epi_judge_python/permutations.py +++ b/epi_judge_python/permutations.py @@ -3,8 +3,8 @@ def permutations(A): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('permutations.tsv', permutations, - test_utils.unordered_compare) + generic_test.generic_test_main('permutations.tsv', permutations, + test_utils.unordered_compare) diff --git a/epi_judge_python/phone_number_mnemonic.py b/epi_judge_python/phone_number_mnemonic.py index a87401340..501b905ae 100644 --- a/epi_judge_python/phone_number_mnemonic.py +++ b/epi_judge_python/phone_number_mnemonic.py @@ -3,10 +3,10 @@ def phone_mnemonic(phone_number): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'phone_number_mnemonic.tsv', phone_mnemonic, - comp=test_utils.unordered_compare) + comparator=test_utils.unordered_compare) diff --git a/epi_judge_python/picking_up_coins.py b/epi_judge_python/picking_up_coins.py index 7f726af97..30d256f60 100644 --- a/epi_judge_python/picking_up_coins.py +++ b/epi_judge_python/picking_up_coins.py @@ -3,8 +3,7 @@ def maximum_revenue(coins): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('picking_up_coins.tsv', - maximum_revenue) + generic_test.generic_test_main('picking_up_coins.tsv', maximum_revenue) diff --git a/epi_judge_python/pivot_list.py b/epi_judge_python/pivot_list.py index 0a7bbd614..eada4491d 100644 --- a/epi_judge_python/pivot_list.py +++ b/epi_judge_python/pivot_list.py @@ -45,8 +45,7 @@ def list_pivoting_wrapper(timer, l, x): raise TestFailureException('Result list contains different values') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('pivot_list.tsv', - list_pivoting_wrapper) + generic_test.generic_test_main('pivot_list.tsv', list_pivoting_wrapper) diff --git a/epi_judge_python/power_set.py b/epi_judge_python/power_set.py index f9e3a7086..c81fb28eb 100644 --- a/epi_judge_python/power_set.py +++ b/epi_judge_python/power_set.py @@ -3,8 +3,8 @@ def generate_power_set(S): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'power_set.tsv', generate_power_set, test_utils.unordered_compare) + generic_test.generic_test_main('power_set.tsv', generate_power_set, + test_utils.unordered_compare) diff --git a/epi_judge_python/power_x_y.py b/epi_judge_python/power_x_y.py index 8b97e4f47..d3170c3ae 100644 --- a/epi_judge_python/power_x_y.py +++ b/epi_judge_python/power_x_y.py @@ -3,7 +3,7 @@ def power(x, y): return 0.0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('power_x_y.tsv', power) + generic_test.generic_test_main('power_x_y.tsv', power) diff --git a/epi_judge_python/pretty_printing.py b/epi_judge_python/pretty_printing.py index d63587da7..1218cd4ca 100644 --- a/epi_judge_python/pretty_printing.py +++ b/epi_judge_python/pretty_printing.py @@ -3,8 +3,7 @@ def minimum_messiness(words, line_length): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('pretty_printing.tsv', - minimum_messiness) + generic_test.generic_test_main('pretty_printing.tsv', minimum_messiness) diff --git a/epi_judge_python/prime_sieve.py b/epi_judge_python/prime_sieve.py index d09f47d9d..af8976397 100644 --- a/epi_judge_python/prime_sieve.py +++ b/epi_judge_python/prime_sieve.py @@ -4,8 +4,7 @@ def generate_primes(n): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("prime_sieve.tsv", - generate_primes) + generic_test.generic_test_main("prime_sieve.tsv", generate_primes) diff --git a/epi_judge_python/primitive_divide.py b/epi_judge_python/primitive_divide.py index 8d00effcb..ff9fb03e8 100644 --- a/epi_judge_python/primitive_divide.py +++ b/epi_judge_python/primitive_divide.py @@ -3,7 +3,7 @@ def divide(x, y): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("primitive_divide.tsv", divide) + generic_test.generic_test_main("primitive_divide.tsv", divide) diff --git a/epi_judge_python/primitive_multiply.py b/epi_judge_python/primitive_multiply.py index 20772e891..f4c2d9e1a 100644 --- a/epi_judge_python/primitive_multiply.py +++ b/epi_judge_python/primitive_multiply.py @@ -3,8 +3,7 @@ def multiply(x, y): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('primitive_multiply.tsv', - multiply) + generic_test.generic_test_main('primitive_multiply.tsv', multiply) diff --git a/epi_judge_python/queue_from_stacks.py b/epi_judge_python/queue_from_stacks.py index 8f446ace9..481a283a3 100644 --- a/epi_judge_python/queue_from_stacks.py +++ b/epi_judge_python/queue_from_stacks.py @@ -30,8 +30,7 @@ def queue_tester(ops): raise TestFailureException('Unexpected IndexError exception') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('queue_from_stacks.tsv', - queue_tester) + generic_test.generic_test_main('queue_from_stacks.tsv', queue_tester) diff --git a/epi_judge_python/queue_with_max.py b/epi_judge_python/queue_with_max.py index 000213d3a..995f438a7 100644 --- a/epi_judge_python/queue_with_max.py +++ b/epi_judge_python/queue_with_max.py @@ -41,8 +41,7 @@ def queue_tester(ops): raise TestFailureException('Unexpected IndexError exception') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('queue_with_max.tsv', - queue_tester) + generic_test.generic_test_main('queue_with_max.tsv', queue_tester) diff --git a/epi_judge_python/random_permutation.py b/epi_judge_python/random_permutation.py index 9f4d24ee8..a25deb230 100644 --- a/epi_judge_python/random_permutation.py +++ b/epi_judge_python/random_permutation.py @@ -39,8 +39,8 @@ def permutation_index(perm): functools.partial(compute_random_permutation_runner, timer, n)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'random_permutation.tsv', compute_random_permutation_wrapper) + generic_test.generic_test_main('random_permutation.tsv', + compute_random_permutation_wrapper) diff --git a/epi_judge_python/random_subset.py b/epi_judge_python/random_subset.py index 74c4e0736..4fe6ebf28 100644 --- a/epi_judge_python/random_subset.py +++ b/epi_judge_python/random_subset.py @@ -30,8 +30,7 @@ def random_subset_runner(timer, n, k): run_func_with_retries(functools.partial(random_subset_runner, timer, n, k)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('random_subset.tsv', - random_subset_wrapper) + generic_test.generic_test_main('random_subset.tsv', random_subset_wrapper) diff --git a/epi_judge_python/real_square_root.py b/epi_judge_python/real_square_root.py index 895046fa3..0174501c0 100644 --- a/epi_judge_python/real_square_root.py +++ b/epi_judge_python/real_square_root.py @@ -3,8 +3,7 @@ def square_root(x): return 0.0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('real_square_root.tsv', - square_root) + generic_test.generic_test_main('real_square_root.tsv', square_root) diff --git a/epi_judge_python/rectangle_intersection.py b/epi_judge_python/rectangle_intersection.py index f12ea78f5..676934bbd 100644 --- a/epi_judge_python/rectangle_intersection.py +++ b/epi_judge_python/rectangle_intersection.py @@ -19,10 +19,10 @@ def fmt(x): return fmt(expected), fmt(result) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'rectangle_intersection.tsv', intersect_rectangle_wrapper, res_printer=res_printer) diff --git a/epi_judge_python/refueling_schedule.py b/epi_judge_python/refueling_schedule.py index fcb9ce225..0ed82da0d 100644 --- a/epi_judge_python/refueling_schedule.py +++ b/epi_judge_python/refueling_schedule.py @@ -5,8 +5,7 @@ def find_ample_city(gallons, distances): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('refueling_schedule.tsv', - find_ample_city) + generic_test.generic_test_main('refueling_schedule.tsv', find_ample_city) diff --git a/epi_judge_python/regular_expression.py b/epi_judge_python/regular_expression.py index 603ad3e4f..4ce68637d 100644 --- a/epi_judge_python/regular_expression.py +++ b/epi_judge_python/regular_expression.py @@ -3,8 +3,7 @@ def is_match(regex, s): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('regular_expression.tsv', - is_match) + generic_test.generic_test_main('regular_expression.tsv', is_match) diff --git a/epi_judge_python/remove_duplicates.py b/epi_judge_python/remove_duplicates.py index a7a8b57c2..5ed61694e 100644 --- a/epi_judge_python/remove_duplicates.py +++ b/epi_judge_python/remove_duplicates.py @@ -33,8 +33,8 @@ def comp(expected, result): ]) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'remove_duplicates.tsv', eliminate_duplicate_wrapper, comp) + generic_test.generic_test_main('remove_duplicates.tsv', + eliminate_duplicate_wrapper, comp) diff --git a/epi_judge_python/remove_duplicates_from_sorted_list.py b/epi_judge_python/remove_duplicates_from_sorted_list.py index 4b27c8bcc..db135840e 100644 --- a/epi_judge_python/remove_duplicates_from_sorted_list.py +++ b/epi_judge_python/remove_duplicates_from_sorted_list.py @@ -6,8 +6,8 @@ def remove_duplicates(L): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'remove_duplicates_from_sorted_list.tsv', remove_duplicates) + generic_test.generic_test_main('remove_duplicates_from_sorted_list.tsv', + remove_duplicates) diff --git a/epi_judge_python/replace_and_remove.py b/epi_judge_python/replace_and_remove.py index c8f880f93..bd23f6773 100644 --- a/epi_judge_python/replace_and_remove.py +++ b/epi_judge_python/replace_and_remove.py @@ -8,8 +8,8 @@ def replace_and_remove_wrapper(size, s): return s[:res_size] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('replace_and_remove.tsv', - replace_and_remove_wrapper) + generic_test.generic_test_main('replace_and_remove.tsv', + replace_and_remove_wrapper) diff --git a/epi_judge_python/reverse_bits.py b/epi_judge_python/reverse_bits.py index f229925db..e339a20d5 100644 --- a/epi_judge_python/reverse_bits.py +++ b/epi_judge_python/reverse_bits.py @@ -3,7 +3,7 @@ def reverse_bits(x): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("reverse_bits.tsv", reverse_bits) + generic_test.generic_test_main("reverse_bits.tsv", reverse_bits) diff --git a/epi_judge_python/reverse_digits.py b/epi_judge_python/reverse_digits.py index 1a7ac3a67..6479df488 100644 --- a/epi_judge_python/reverse_digits.py +++ b/epi_judge_python/reverse_digits.py @@ -3,7 +3,7 @@ def reverse(x): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('reverse_digits.tsv', reverse) + generic_test.generic_test_main('reverse_digits.tsv', reverse) diff --git a/epi_judge_python/reverse_sublist.py b/epi_judge_python/reverse_sublist.py index 65d474dd7..82421a0a9 100644 --- a/epi_judge_python/reverse_sublist.py +++ b/epi_judge_python/reverse_sublist.py @@ -6,8 +6,7 @@ def reverse_sublist(L, start, finish): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("reverse_sublist.tsv", - reverse_sublist) + generic_test.generic_test_main("reverse_sublist.tsv", reverse_sublist) diff --git a/epi_judge_python/reverse_words.py b/epi_judge_python/reverse_words.py index 0c6740c6a..3ff2388a9 100644 --- a/epi_judge_python/reverse_words.py +++ b/epi_judge_python/reverse_words.py @@ -19,8 +19,7 @@ def reverse_words_wrapper(timer, s): return s_copy.decode("utf-8") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('reverse_words.tsv', - reverse_words_wrapper) + generic_test.generic_test_main('reverse_words.tsv', reverse_words_wrapper) diff --git a/epi_judge_python/road_network.py b/epi_judge_python/road_network.py index 260788743..3643e6565 100644 --- a/epi_judge_python/road_network.py +++ b/epi_judge_python/road_network.py @@ -27,10 +27,10 @@ def fmt(x): return fmt(expected), fmt(result) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'road_network.tsv', find_best_proposals_wrapper, res_printer=res_printer) diff --git a/epi_judge_python/roman_to_integer.py b/epi_judge_python/roman_to_integer.py index 0d7d768db..0bfa9af5f 100644 --- a/epi_judge_python/roman_to_integer.py +++ b/epi_judge_python/roman_to_integer.py @@ -3,8 +3,7 @@ def roman_to_integer(s): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('roman_to_integer.tsv', - roman_to_integer) + generic_test.generic_test_main('roman_to_integer.tsv', roman_to_integer) diff --git a/epi_judge_python/rook_attack.py b/epi_judge_python/rook_attack.py index 2d89e5e5e..b3ea83047 100644 --- a/epi_judge_python/rook_attack.py +++ b/epi_judge_python/rook_attack.py @@ -9,8 +9,7 @@ def rook_attack_wrapper(A): return a_copy -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('rook_attack.tsv', - rook_attack_wrapper) + generic_test.generic_test_main('rook_attack.tsv', rook_attack_wrapper) diff --git a/epi_judge_python/rotate_array.py b/epi_judge_python/rotate_array.py index feb1e471c..12f69b8f8 100644 --- a/epi_judge_python/rotate_array.py +++ b/epi_judge_python/rotate_array.py @@ -15,8 +15,7 @@ def rotate_array_wrapper(timer, A, rotate_amount): return a_copy -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('rotate_array.tsv', - rotate_array_wrapper) + generic_test.generic_test_main('rotate_array.tsv', rotate_array_wrapper) diff --git a/epi_judge_python/run_length_compression.py b/epi_judge_python/run_length_compression.py index 68b2d17ec..021549cf3 100644 --- a/epi_judge_python/run_length_compression.py +++ b/epi_judge_python/run_length_compression.py @@ -18,8 +18,7 @@ def rle_tester(encoded, decoded): raise TestFailureException('Encoding failed') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('run_length_compression.tsv', - rle_tester) + generic_test.generic_test_main('run_length_compression.tsv', rle_tester) diff --git a/epi_judge_python/search_entry_equal_to_index.py b/epi_judge_python/search_entry_equal_to_index.py index 6df3d86dd..97b524f61 100644 --- a/epi_judge_python/search_entry_equal_to_index.py +++ b/epi_judge_python/search_entry_equal_to_index.py @@ -1,3 +1,4 @@ +from test_framework.test_failure_exception import TestFailureException from test_framework.test_utils import enable_timer_hook @@ -20,8 +21,8 @@ def search_entry_equal_to_its_index_wrapper(timer, A): "There are entries which equal to its index") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'binary_search_ai=i.tsv', search_entry_equal_to_its_index_wrapper) + generic_test.generic_test_main('search_entry_equal_to_index.tsv', + search_entry_equal_to_its_index_wrapper) diff --git a/epi_judge_python/search_first_greater_value_in_bst.py b/epi_judge_python/search_first_greater_value_in_bst.py index 9479970b9..1e41656d6 100644 --- a/epi_judge_python/search_first_greater_value_in_bst.py +++ b/epi_judge_python/search_first_greater_value_in_bst.py @@ -11,9 +11,8 @@ def find_first_greater_than_k_wrapper(tree, k): return result.data if result else -1 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'search_first_greater_value_in_bst.tsv', - find_first_greater_than_k_wrapper) + generic_test.generic_test_main('search_first_greater_value_in_bst.tsv', + find_first_greater_than_k_wrapper) diff --git a/epi_judge_python/search_first_key.py b/epi_judge_python/search_first_key.py index 8f90ba037..7c9dc7686 100644 --- a/epi_judge_python/search_first_key.py +++ b/epi_judge_python/search_first_key.py @@ -3,8 +3,7 @@ def search_first_of_k(A, k): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('search_first_key.tsv', - search_first_of_k) + generic_test.generic_test_main('search_first_key.tsv', search_first_of_k) diff --git a/epi_judge_python/search_for_min_max_in_array.py b/epi_judge_python/search_for_min_max_in_array.py index 3bb087c72..0eed18535 100644 --- a/epi_judge_python/search_for_min_max_in_array.py +++ b/epi_judge_python/search_for_min_max_in_array.py @@ -8,10 +8,10 @@ def find_min_max(A): return MinMax(0, 0) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'search_for_min_max_in_array.tsv', find_min_max, res_printer=res_printer) diff --git a/epi_judge_python/search_for_missing_element.py b/epi_judge_python/search_for_missing_element.py index 9d75d986b..428b0dbac 100644 --- a/epi_judge_python/search_for_missing_element.py +++ b/epi_judge_python/search_for_missing_element.py @@ -16,10 +16,10 @@ def fmt(x): return fmt(expected), fmt(result) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'find_missing_and_duplicate.tsv', find_duplicate_missing, res_printer=res_printer) diff --git a/epi_judge_python/search_frequent_items.py b/epi_judge_python/search_frequent_items.py index b7aab85a8..5f4be926e 100644 --- a/epi_judge_python/search_frequent_items.py +++ b/epi_judge_python/search_frequent_items.py @@ -8,9 +8,9 @@ def search_frequent_items_wrapper(k, stream): return search_frequent_items(k, iter(stream)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("search_frequent_items.tsv", - search_frequent_items_wrapper, - test_utils.unordered_compare) + generic_test.generic_test_main("search_frequent_items.tsv", + search_frequent_items_wrapper, + test_utils.unordered_compare) diff --git a/epi_judge_python/search_in_list.py b/epi_judge_python/search_in_list.py index 5a7855d8c..dfa6a688d 100644 --- a/epi_judge_python/search_in_list.py +++ b/epi_judge_python/search_in_list.py @@ -11,8 +11,7 @@ def search_list_wrapper(L, key): return result.data if result else -1 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('search_in_list.tsv', - search_list_wrapper) + generic_test.generic_test_main('search_in_list.tsv', search_list_wrapper) diff --git a/epi_judge_python/search_maze.py b/epi_judge_python/search_maze.py index 39fa8a766..6f61e706c 100644 --- a/epi_judge_python/search_maze.py +++ b/epi_judge_python/search_maze.py @@ -48,8 +48,7 @@ def search_maze_wrapper(timer, maze, s, e): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('search_maze.tsv', - search_maze_wrapper) + generic_test.generic_test_main('search_maze.tsv', search_maze_wrapper) diff --git a/epi_judge_python/search_row_col_sorted_matrix.py b/epi_judge_python/search_row_col_sorted_matrix.py index 1eda6292f..5c404de48 100644 --- a/epi_judge_python/search_row_col_sorted_matrix.py +++ b/epi_judge_python/search_row_col_sorted_matrix.py @@ -3,8 +3,8 @@ def matrix_search(A, x): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'search_row_col_sorted_matrix.tsv', matrix_search) + generic_test.generic_test_main('search_row_col_sorted_matrix.tsv', + matrix_search) diff --git a/epi_judge_python/search_shifted_sorted_array.py b/epi_judge_python/search_shifted_sorted_array.py index 5e63396eb..927e79b64 100644 --- a/epi_judge_python/search_shifted_sorted_array.py +++ b/epi_judge_python/search_shifted_sorted_array.py @@ -3,8 +3,8 @@ def search_smallest(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'search_shifted_sorted_array.tsv', search_smallest) + generic_test.generic_test_main('search_shifted_sorted_array.tsv', + search_smallest) diff --git a/epi_judge_python/search_unknown_length_array.py b/epi_judge_python/search_unknown_length_array.py index 30695592e..b0dda3b79 100644 --- a/epi_judge_python/search_unknown_length_array.py +++ b/epi_judge_python/search_unknown_length_array.py @@ -3,8 +3,8 @@ def binary_search_unknown_length(A, k): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'search_unknown_length_array.tsv', binary_search_unknown_length) + generic_test.generic_test_main('search_unknown_length_array.tsv', + binary_search_unknown_length) diff --git a/epi_judge_python/smallest_nonconstructible_value.py b/epi_judge_python/smallest_nonconstructible_value.py index 3f2106f0f..dbb552f91 100644 --- a/epi_judge_python/smallest_nonconstructible_value.py +++ b/epi_judge_python/smallest_nonconstructible_value.py @@ -3,8 +3,8 @@ def smallest_nonconstructible_value(A): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'smallest_nonconstructible_value.tsv', smallest_nonconstructible_value) + generic_test.generic_test_main('smallest_nonconstructible_value.tsv', + smallest_nonconstructible_value) diff --git a/epi_judge_python/smallest_subarray_covering_all_values.py b/epi_judge_python/smallest_subarray_covering_all_values.py index 1ae83e1f8..1b9b2395c 100644 --- a/epi_judge_python/smallest_subarray_covering_all_values.py +++ b/epi_judge_python/smallest_subarray_covering_all_values.py @@ -1,8 +1,8 @@ from test_framework.test_utils import enable_timer_hook -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'subsequence_cover.tsv', find_smallest_sequentially_covering_subset_wrapper) diff --git a/epi_judge_python/smallest_subarray_covering_set.py b/epi_judge_python/smallest_subarray_covering_set.py index 128f9e076..dd0abcf84 100644 --- a/epi_judge_python/smallest_subarray_covering_set.py +++ b/epi_judge_python/smallest_subarray_covering_set.py @@ -31,9 +31,8 @@ def find_smallest_subarray_covering_set_wrapper(timer, paragraph, keywords): return end - start + 1 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "smallest_subarray_covering_set.tsv", - find_smallest_subarray_covering_set_wrapper) + generic_test.generic_test_main("smallest_subarray_covering_set.tsv", + find_smallest_subarray_covering_set_wrapper) diff --git a/epi_judge_python/snake_string.py b/epi_judge_python/snake_string.py index 26a6bd6b7..9dfce9b76 100644 --- a/epi_judge_python/snake_string.py +++ b/epi_judge_python/snake_string.py @@ -3,7 +3,7 @@ def snake_string(s): return '' -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('snake_string.tsv', snake_string) + generic_test.generic_test_main('snake_string.tsv', snake_string) diff --git a/epi_judge_python/sort_almost_sorted_array.py b/epi_judge_python/sort_almost_sorted_array.py index d01beb265..786631133 100644 --- a/epi_judge_python/sort_almost_sorted_array.py +++ b/epi_judge_python/sort_almost_sorted_array.py @@ -7,9 +7,8 @@ def sort_approximately_sorted_array_wrapper(sequence, k): return sort_approximately_sorted_array(iter(sequence), k) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'sort_almost_sorted_array.tsv', - sort_approximately_sorted_array_wrapper) + generic_test.generic_test_main('sort_almost_sorted_array.tsv', + sort_approximately_sorted_array_wrapper) diff --git a/epi_judge_python/sort_increasing_decreasing_array.py b/epi_judge_python/sort_increasing_decreasing_array.py index 00023d3b8..1e7500e10 100644 --- a/epi_judge_python/sort_increasing_decreasing_array.py +++ b/epi_judge_python/sort_increasing_decreasing_array.py @@ -3,9 +3,8 @@ def sort_k_increasing_decreasing_array(A): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'sort_increasing_decreasing_array.tsv', - sort_k_increasing_decreasing_array) + generic_test.generic_test_main('sort_increasing_decreasing_array.tsv', + sort_k_increasing_decreasing_array) diff --git a/epi_judge_python/sort_list.py b/epi_judge_python/sort_list.py index b5d8f8764..045ec035f 100644 --- a/epi_judge_python/sort_list.py +++ b/epi_judge_python/sort_list.py @@ -3,8 +3,7 @@ def stable_sort_list(L): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('sort_list.tsv', - stable_sort_list) + generic_test.generic_test_main('sort_list.tsv', stable_sort_list) diff --git a/epi_judge_python/sorted_array_remove_dups.py b/epi_judge_python/sorted_array_remove_dups.py index 0f6f4d8ac..00b70cdb9 100644 --- a/epi_judge_python/sorted_array_remove_dups.py +++ b/epi_judge_python/sorted_array_remove_dups.py @@ -9,8 +9,8 @@ def delete_duplicates_wrapper(A): return A[:idx] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('sorted_array_remove_dups.tsv', - delete_duplicates_wrapper) + generic_test.generic_test_main('sorted_array_remove_dups.tsv', + delete_duplicates_wrapper) diff --git a/epi_judge_python/sorted_arrays_merge.py b/epi_judge_python/sorted_arrays_merge.py index 18ba409e9..3c6dd60a5 100644 --- a/epi_judge_python/sorted_arrays_merge.py +++ b/epi_judge_python/sorted_arrays_merge.py @@ -3,8 +3,8 @@ def merge_sorted_arrays(sorted_arrays): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("sorted_arrays_merge.tsv", - merge_sorted_arrays) + generic_test.generic_test_main("sorted_arrays_merge.tsv", + merge_sorted_arrays) diff --git a/epi_judge_python/sorted_list_to_bst.py b/epi_judge_python/sorted_list_to_bst.py index 1a048fcef..f109cc5f0 100644 --- a/epi_judge_python/sorted_list_to_bst.py +++ b/epi_judge_python/sorted_list_to_bst.py @@ -44,8 +44,8 @@ def build_bst_from_sorted_doubly_list_wrapper(timer, L): raise TestFailureException("Too many L in the tree") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - "sorted_list_to_bst.tsv", build_bst_from_sorted_doubly_list_wrapper) + generic_test.generic_test_main("sorted_list_to_bst.tsv", + build_bst_from_sorted_doubly_list_wrapper) diff --git a/epi_judge_python/sorted_lists_merge.py b/epi_judge_python/sorted_lists_merge.py index 27aa83f64..0a1c4d634 100644 --- a/epi_judge_python/sorted_lists_merge.py +++ b/epi_judge_python/sorted_lists_merge.py @@ -6,8 +6,8 @@ def merge_two_sorted_lists(L1, L2): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('sorted_lists_merge.tsv', - merge_two_sorted_lists) + generic_test.generic_test_main('sorted_lists_merge.tsv', + merge_two_sorted_lists) diff --git a/epi_judge_python/spiral_ordering_segments.py b/epi_judge_python/spiral_ordering_segments.py index c12f32fd5..06aed0400 100644 --- a/epi_judge_python/spiral_ordering_segments.py +++ b/epi_judge_python/spiral_ordering_segments.py @@ -3,8 +3,8 @@ def matrix_in_spiral_order(square_matrix): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("spiral_ordering_segments.tsv", - matrix_in_spiral_order) + generic_test.generic_test_main("spiral_ordering_segments.tsv", + matrix_in_spiral_order) diff --git a/epi_judge_python/spreadsheet_encoding.py b/epi_judge_python/spreadsheet_encoding.py index ef4dcb905..d8014ecb8 100644 --- a/epi_judge_python/spreadsheet_encoding.py +++ b/epi_judge_python/spreadsheet_encoding.py @@ -3,8 +3,8 @@ def ss_decode_col_id(col): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('spreadsheet_encoding.tsv', - ss_decode_col_id) + generic_test.generic_test_main('spreadsheet_encoding.tsv', + ss_decode_col_id) diff --git a/epi_judge_python/stack_with_max.py b/epi_judge_python/stack_with_max.py index f4d10191b..b6fba6b31 100644 --- a/epi_judge_python/stack_with_max.py +++ b/epi_judge_python/stack_with_max.py @@ -49,8 +49,7 @@ def stack_tester(ops): raise TestFailureException('Unexpected IndexError exception') -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('stack_with_max.tsv', - stack_tester) + generic_test.generic_test_main('stack_with_max.tsv', stack_tester) diff --git a/epi_judge_python/string_decompositions_into_dictionary_words.py b/epi_judge_python/string_decompositions_into_dictionary_words.py index f085399f7..66d27eb71 100644 --- a/epi_judge_python/string_decompositions_into_dictionary_words.py +++ b/epi_judge_python/string_decompositions_into_dictionary_words.py @@ -3,8 +3,8 @@ def find_all_substrings(s, words): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( + generic_test.generic_test_main( 'string_decompositions_into_dictionary_words.tsv', find_all_substrings) diff --git a/epi_judge_python/string_integer_interconversion.py b/epi_judge_python/string_integer_interconversion.py index 0f6da23f7..e0cac0b47 100644 --- a/epi_judge_python/string_integer_interconversion.py +++ b/epi_judge_python/string_integer_interconversion.py @@ -18,8 +18,8 @@ def wrapper(x, s): raise TestFailureException("String to int conversion failed") -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'string_integer_interconversion.tsv', wrapper) + generic_test.generic_test_main('string_integer_interconversion.tsv', + wrapper) diff --git a/epi_judge_python/string_transformability.py b/epi_judge_python/string_transformability.py index 0fa4356dc..324b6f12d 100644 --- a/epi_judge_python/string_transformability.py +++ b/epi_judge_python/string_transformability.py @@ -4,8 +4,8 @@ def transform_string(D, s, t): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('string_transformability.tsv', - transform_string) + generic_test.generic_test_main('string_transformability.tsv', + transform_string) diff --git a/epi_judge_python/substring_match.py b/epi_judge_python/substring_match.py index b69bad784..4c2cb5861 100644 --- a/epi_judge_python/substring_match.py +++ b/epi_judge_python/substring_match.py @@ -3,8 +3,7 @@ def rabin_karp(t, s): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('substring_match.tsv', - rabin_karp) + generic_test.generic_test_main('substring_match.tsv', rabin_karp) diff --git a/epi_judge_python/successor_in_tree.py b/epi_judge_python/successor_in_tree.py index 23a935a0b..4eb085176 100644 --- a/epi_judge_python/successor_in_tree.py +++ b/epi_judge_python/successor_in_tree.py @@ -18,8 +18,8 @@ def find_successor_wrapper(timer, tree, node_idx): return result.data if result else -1 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('successor_in_tree.tsv', - find_successor_wrapper) + generic_test.generic_test_main('successor_in_tree.tsv', + find_successor_wrapper) diff --git a/epi_judge_python/sudoku_solve.py b/epi_judge_python/sudoku_solve.py index 1ab15a87d..16e85a7f7 100644 --- a/epi_judge_python/sudoku_solve.py +++ b/epi_judge_python/sudoku_solve.py @@ -27,8 +27,8 @@ def gather_square_block(data, block_size, n): block_y = (n // block_size) * block_size return [ - data[block_x + i][block_y + j] for j in range(block_size) - for i in range(block_size) + data[block_x + i][block_y + j] + for j in range(block_size) for i in range(block_size) ] @@ -60,8 +60,7 @@ def solve_sudoku_wrapper(timer, partial_assignment): assert_unique_seq(gather_square_block(solved, block_size, i)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('sudoku_solve.tsv', - solve_sudoku_wrapper) + generic_test.generic_test_main('sudoku_solve.tsv', solve_sudoku_wrapper) diff --git a/epi_judge_python/sum_root_to_leaf.py b/epi_judge_python/sum_root_to_leaf.py index 3ac06240e..3fd482ed6 100644 --- a/epi_judge_python/sum_root_to_leaf.py +++ b/epi_judge_python/sum_root_to_leaf.py @@ -6,8 +6,7 @@ def sum_root_to_leaf(tree, partial_path_sum=0): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('sum_root_to_leaf.tsv', - sum_root_to_leaf) + generic_test.generic_test_main('sum_root_to_leaf.tsv', sum_root_to_leaf) diff --git a/epi_judge_python/sunset_view.py b/epi_judge_python/sunset_view.py index bebb255bd..167bad308 100644 --- a/epi_judge_python/sunset_view.py +++ b/epi_judge_python/sunset_view.py @@ -7,8 +7,8 @@ def examine_buildings_with_sunset_wrapper(sequence): return examine_buildings_with_sunset(iter(sequence)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('sunset_view.tsv', - examine_buildings_with_sunset) + generic_test.generic_test_main('sunset_view.tsv', + examine_buildings_with_sunset) diff --git a/epi_judge_python/swap_bits.py b/epi_judge_python/swap_bits.py index 839e4d11b..a001b85aa 100644 --- a/epi_judge_python/swap_bits.py +++ b/epi_judge_python/swap_bits.py @@ -3,7 +3,7 @@ def swap_bits(x, i, j): return 0 -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('swap_bits.tsv', swap_bits) + generic_test.generic_test_main('swap_bits.tsv', swap_bits) diff --git a/epi_judge_python/task_pairing.py b/epi_judge_python/task_pairing.py index affaa2941..0e1e49fca 100644 --- a/epi_judge_python/task_pairing.py +++ b/epi_judge_python/task_pairing.py @@ -8,8 +8,7 @@ def optimum_task_assignment(task_durations): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('task_pairing.tsv', - optimum_task_assignment) + generic_test.generic_test_main('task_pairing.tsv', optimum_task_assignment) diff --git a/epi_judge_python/three_sum.py b/epi_judge_python/three_sum.py index 930effca4..a5d276cba 100644 --- a/epi_judge_python/three_sum.py +++ b/epi_judge_python/three_sum.py @@ -3,7 +3,7 @@ def has_three_sum(A, t): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("three_sum.tsv", has_three_sum) + generic_test.generic_test_main("three_sum.tsv", has_three_sum) diff --git a/epi_judge_python/tree_connect_leaves.py b/epi_judge_python/tree_connect_leaves.py index 685b803a0..246fd8515 100644 --- a/epi_judge_python/tree_connect_leaves.py +++ b/epi_judge_python/tree_connect_leaves.py @@ -18,8 +18,8 @@ def create_list_of_leaves_wrapper(timer, tree): return [x.data for x in result] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("tree_connect_leaves.tsv", - create_list_of_leaves_wrapper) + generic_test.generic_test_main("tree_connect_leaves.tsv", + create_list_of_leaves_wrapper) diff --git a/epi_judge_python/tree_exterior.py b/epi_judge_python/tree_exterior.py index 0d5e0e483..03983b677 100644 --- a/epi_judge_python/tree_exterior.py +++ b/epi_judge_python/tree_exterior.py @@ -22,8 +22,8 @@ def create_output_list_wrapper(timer, tree): return create_output_list(tree) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('tree_exterior.tsv', - create_output_list_wrapper) + generic_test.generic_test_main('tree_exterior.tsv', + create_output_list_wrapper) diff --git a/epi_judge_python/tree_from_preorder_inorder.py b/epi_judge_python/tree_from_preorder_inorder.py index fab99b244..9af97f01d 100644 --- a/epi_judge_python/tree_from_preorder_inorder.py +++ b/epi_judge_python/tree_from_preorder_inorder.py @@ -6,8 +6,8 @@ def binary_tree_from_preorder_inorder(preorder, inorder): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'tree_from_preorder_inorder.tsv', binary_tree_from_preorder_inorder) + generic_test.generic_test_main('tree_from_preorder_inorder.tsv', + binary_tree_from_preorder_inorder) diff --git a/epi_judge_python/tree_from_preorder_with_null.py b/epi_judge_python/tree_from_preorder_with_null.py index 4e7a3f36f..6f586ae25 100644 --- a/epi_judge_python/tree_from_preorder_with_null.py +++ b/epi_judge_python/tree_from_preorder_with_null.py @@ -16,8 +16,8 @@ def reconstruct_preorder_wrapper(timer, data): return result -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'tree_from_preorder_with_null.tsv', reconstruct_preorder_wrapper) + generic_test.generic_test_main('tree_from_preorder_with_null.tsv', + reconstruct_preorder_wrapper) diff --git a/epi_judge_python/tree_inorder.py b/epi_judge_python/tree_inorder.py index 4d1f27f4f..a1bc1f92a 100644 --- a/epi_judge_python/tree_inorder.py +++ b/epi_judge_python/tree_inorder.py @@ -6,8 +6,7 @@ def inorder_traversal(tree): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('tree_inorder.tsv', - inorder_traversal) + generic_test.generic_test_main('tree_inorder.tsv', inorder_traversal) diff --git a/epi_judge_python/tree_level_order.py b/epi_judge_python/tree_level_order.py index 41b863f02..c98560fbe 100644 --- a/epi_judge_python/tree_level_order.py +++ b/epi_judge_python/tree_level_order.py @@ -6,8 +6,8 @@ def binary_tree_depth_order(tree): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main("tree_level_order.tsv", - binary_tree_depth_order) + generic_test.generic_test_main("tree_level_order.tsv", + binary_tree_depth_order) diff --git a/epi_judge_python/tree_postorder.py b/epi_judge_python/tree_postorder.py index 5ce508d05..e9b55c7ee 100644 --- a/epi_judge_python/tree_postorder.py +++ b/epi_judge_python/tree_postorder.py @@ -7,8 +7,7 @@ def postorder_traversal(tree): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('tree_postorder.tsv', - postorder_traversal) + generic_test.generic_test_main('tree_postorder.tsv', postorder_traversal) diff --git a/epi_judge_python/tree_preorder.py b/epi_judge_python/tree_preorder.py index e9252ae12..949456c93 100644 --- a/epi_judge_python/tree_preorder.py +++ b/epi_judge_python/tree_preorder.py @@ -6,8 +6,7 @@ def preorder_traversal(tree): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('tree_preorder.tsv', - preorder_traversal) + generic_test.generic_test_main('tree_preorder.tsv', preorder_traversal) diff --git a/epi_judge_python/tree_right_sibling.py b/epi_judge_python/tree_right_sibling.py index 47ecb22ad..9ad312b97 100644 --- a/epi_judge_python/tree_right_sibling.py +++ b/epi_judge_python/tree_right_sibling.py @@ -47,8 +47,8 @@ def construct_right_sibling_wrapper(timer, tree): for level in traverse_left(tree)] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('tree_right_sibling.tsv', - construct_right_sibling_wrapper) + generic_test.generic_test_main('tree_right_sibling.tsv', + construct_right_sibling_wrapper) diff --git a/epi_judge_python/tree_with_parent_inorder.py b/epi_judge_python/tree_with_parent_inorder.py index 0160743d1..a742140d3 100644 --- a/epi_judge_python/tree_with_parent_inorder.py +++ b/epi_judge_python/tree_with_parent_inorder.py @@ -3,8 +3,8 @@ def inorder_traversal(tree): return [] -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('tree_with_parent_inorder.tsv', - inorder_traversal) + generic_test.generic_test_main('tree_with_parent_inorder.tsv', + inorder_traversal) diff --git a/epi_judge_python/two_sum.py b/epi_judge_python/two_sum.py index 556c0ba76..f5c9151bd 100644 --- a/epi_judge_python/two_sum.py +++ b/epi_judge_python/two_sum.py @@ -3,7 +3,7 @@ def has_two_sum(A, t): return True -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('two_sum.tsv', has_two_sum) + generic_test.generic_test_main('two_sum.tsv', has_two_sum) diff --git a/epi_judge_python/uniform_random_number.py b/epi_judge_python/uniform_random_number.py index 21a2bb7bb..9affcf949 100644 --- a/epi_judge_python/uniform_random_number.py +++ b/epi_judge_python/uniform_random_number.py @@ -32,8 +32,8 @@ def uniform_random_runner(timer, lower_bound, upper_bound): upper_bound)) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('uniform_random_number.tsv', - uniform_random_wrapper) + generic_test.generic_test_main('uniform_random_number.tsv', + uniform_random_wrapper) diff --git a/epi_judge_python/valid_ip_addresses.py b/epi_judge_python/valid_ip_addresses.py index 71c3ecd51..315d6893c 100644 --- a/epi_judge_python/valid_ip_addresses.py +++ b/epi_judge_python/valid_ip_addresses.py @@ -7,8 +7,8 @@ def comp(a, b): return sorted(a) == sorted(b) -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main( - 'valid_ip_addresses.tsv', get_valid_ip_address, comp=comp) + generic_test.generic_test_main( + 'valid_ip_addresses.tsv', get_valid_ip_address, comparator=comp) diff --git a/epi_judge_python/zip_list.py b/epi_judge_python/zip_list.py index 96cf75434..552e85ca2 100644 --- a/epi_judge_python/zip_list.py +++ b/epi_judge_python/zip_list.py @@ -3,8 +3,7 @@ def zipping_linked_list(L): return None -from test_framework import test_utils_generic_main, test_utils +from test_framework import generic_test, test_utils if __name__ == '__main__': - test_utils_generic_main.generic_test_main('zip_list.tsv', - zipping_linked_list) + generic_test.generic_test_main('zip_list.tsv', zipping_linked_list) diff --git a/test_data/alternating_array.tsv b/test_data/alternating_array.tsv index b72a859bf..c9c08897e 100644 --- a/test_data/alternating_array.tsv +++ b/test_data/alternating_array.tsv @@ -1,104 +1,204 @@ array(int) void -[5, 6, 1, 7, 3, 8, 4, 8] TODO +[2, 2, 3] TODO +[53, 32, 63, 44, 68, 26, 54, 49, 48, 59, 63, 32, 46, 37, 7, 61, 38, 57, 47, 71, 17, 50, 54, 14, 41, 28, 63, 67, 18, 34, 44, 65, 62, 40, 61, 38, 13, 4, 16, 36, 8, 50, 29, 11, 30, 64, 54, 45, 70, 70, 61, 61, 58, 52, 71, 75, 48, 74, 57, 6, 19, 14, 24, 28, 68, 8, 47, 1, 39, 20, 26, 58, 61, 45, 70, 9, 48, 34] TODO +[10, 3, 3, 6, 11, 1, 10, 7, 10, 10, 8] TODO +[1, 5, 2, 2, 1] TODO +[8, 26, 35, 52, 61, 31, 53, 46, 21, 19, 54, 57, 59, 35, 71, 64, 67, 10, 27, 53, 56, 69, 37, 53, 44, 43, 2, 18, 30, 70, 8, 64, 23, 41, 11, 24, 49, 76, 12, 41, 69, 14, 46, 14, 42, 69, 61, 11, 72, 8, 40, 5, 28, 13, 69, 72, 12, 50, 47, 58, 23, 69, 60, 53, 37, 3, 48, 17, 41, 2, 17, 16, 39, 74, 52, 31] TODO +[40, 84, 165, 117, 53, 70, 15, 16, 178, 61, 1, 196, 46, 188, 53, 146, 91, 92, 87, 179, 136, 127, 115, 13, 181, 110, 41, 25, 62, 6, 121, 39, 106, 34, 145, 161, 69, 27, 132, 55, 146, 126, 43, 188, 76, 65, 193, 85, 102, 120, 115, 193, 178, 45, 41, 85, 164, 35, 111, 127, 197, 17, 30, 109, 34, 98, 197, 168, 133, 137, 78, 121, 160, 121, 164, 196, 112, 103, 162, 105, 194, 96, 71, 145, 21, 144, 4, 164, 75, 67, 97, 166, 54, 174, 4, 7, 135, 125, 52, 8, 166, 131, 73, 25, 101, 133, 54, 178, 150, 141, 7, 153, 83, 166, 93, 7, 9, 95, 78, 76, 120, 144, 197, 12, 196, 180, 55, 181, 7, 123, 34, 174, 184, 196, 14, 181, 47, 199, 101, 121, 175, 71, 19, 193, 168, 139, 165, 150, 196, 146, 41, 137, 158, 159, 197, 9, 113, 126, 24, 27, 135, 191, 29, 5, 74, 192, 125, 63, 136, 17, 41, 174, 118, 140, 165, 3, 137, 24, 73, 120, 194, 58, 16, 139, 41, 53, 93, 76, 38, 115, 173, 179, 42, 21, 102, 170, 23, 4, 130, 31] TODO +[2, 3, 5, 5, 5] TODO +[] TODO +[3, 4, 4, 3, 6, 5, 7, 7] TODO +[10, 23, 13, 23, 3, 1, 11, 11, 19, 8, 15, 22, 23, 4, 1, 16, 3, 9, 21, 10, 20, 19, 9] TODO +[2, 1, 4, 4] TODO +[64, 64, 32, 7, 68, 44, 51, 57, 43, 63, 16, 7, 36, 20, 61, 40, 68, 29, 50, 48, 67, 67, 3, 32, 61, 4, 67, 65, 81, 21, 18, 70, 37, 78, 4, 21, 3, 9, 46, 26, 25, 23, 77, 70, 67, 28, 18, 66, 5, 13, 38, 53, 27, 45, 46, 55, 49, 29, 72, 16, 49, 34, 29, 32, 64, 45, 9, 68, 65, 22, 30, 68, 17, 70, 37, 48, 52, 77, 9, 76, 28] TODO +[196, 150, 43, 206, 13, 88, 127, 124, 32, 68, 136, 191, 206, 177, 60, 150, 148, 134, 148, 94, 101, 59, 200, 131, 50, 205, 158, 94, 51, 42, 51, 169, 64, 72, 209, 18, 18, 79, 51, 67, 5, 3, 191, 87, 75, 138, 155, 45, 133, 5, 23, 14, 59, 99, 137, 72, 152, 157, 193, 182, 121, 63, 89, 204, 139, 69, 39, 187, 172, 145, 105, 177, 41, 57, 76, 56, 35, 210, 61, 107, 24, 149, 117, 112, 58, 206, 33, 183, 15, 123, 105, 193, 147, 115, 68, 10, 147, 132, 114, 98, 27, 166, 43, 94, 137, 99, 188, 201, 55, 176, 175, 33, 118, 160, 63, 63, 210, 15, 33, 20, 202, 22, 139, 190, 197, 133, 98, 18, 28, 129, 216, 54, 63, 15, 36, 82, 49, 120, 96, 164, 82, 155, 89, 58, 198, 83, 9, 145, 212, 128, 35, 174, 133, 206, 68, 9, 150, 212, 2, 188, 189, 56, 41, 71, 189, 135, 200, 196, 153, 46, 77, 62, 5, 169, 45, 127, 218, 27, 214, 54, 28, 189, 133, 143, 59, 85, 191, 147, 219, 202, 68, 83, 170, 57, 138, 56, 12, 17, 6, 199, 79, 149, 190, 27, 155, 18, 18, 210, 123, 141, 93, 207, 166, 75, 71, 74, 63, 21, 58, 80, 78] TODO +[3, 3, 3, 2] TODO +[57, 57, 1, 16, 22, 11, 25, 29, 26, 17, 29, 22, 32, 52, 16, 49, 32, 62, 59, 42, 59, 36, 13, 30, 39, 34, 64, 9, 20, 11, 62, 63, 4, 50, 37, 57, 10, 57, 2, 7, 37, 17, 49, 54, 58, 12, 55, 13, 55, 11, 23, 22, 14, 11, 47, 59, 51, 53, 32, 5, 58, 39, 6, 46] TODO +[4, 3, 1, 4, 5] TODO +[167, 162, 54, 189, 88, 182, 11, 111, 245, 211, 11, 213, 129, 232, 203, 245, 301, 230, 81, 140, 111, 168, 222, 13, 142, 90, 265, 158, 127, 51, 99, 64, 57, 137, 297, 180, 225, 187, 235, 110, 179, 285, 289, 75, 35, 276, 85, 185, 138, 202, 17, 64, 184, 139, 267, 89, 81, 23, 31, 230, 111, 180, 79, 246, 193, 2, 205, 152, 251, 67, 88, 57, 174, 141, 250, 262, 79, 155, 204, 233, 187, 208, 50, 64, 75, 145, 217, 148, 174, 134, 175, 179, 251, 113, 9, 195, 108, 221, 275, 101, 186, 173, 33, 207, 100, 28, 175, 122, 296, 197, 56, 222, 302, 121, 177, 195, 15, 17, 180, 140, 187, 195, 165, 213, 81, 267, 226, 249, 90, 54, 211, 91, 66, 250, 113, 113, 290, 186, 15, 160, 167, 197, 28, 59, 193, 105, 187, 98, 50, 110, 160, 80, 253, 162, 31, 276, 74, 67, 133, 239, 60, 268, 176, 278, 147, 70, 255, 194, 73, 260, 93, 165, 50, 263, 283, 297, 14, 98, 25, 294, 292, 177, 10, 48, 217, 221, 244, 36, 140, 292, 280, 261, 154, 44, 216, 233, 182, 211, 145, 165, 25, 44, 178, 177, 224, 243, 193, 198, 163, 18, 170, 99, 103, 82, 279, 282, 157, 260, 95, 271, 157, 173, 65, 155, 47, 194, 123, 126, 66, 303, 24, 137, 87, 216, 196, 302, 247, 301, 185, 126, 6, 199, 304, 35, 24, 122, 280, 101, 8, 272, 293, 162, 118, 107, 105, 59, 194, 294, 239, 140, 238, 285, 294, 5, 127, 271, 288, 163, 253, 29, 163, 106, 63, 118, 13, 252, 85, 141, 29, 99, 193, 135, 29, 70, 99, 88, 112, 276, 227, 117, 38, 116, 40, 260, 89, 186, 217, 297, 25, 243, 259, 93, 56, 131, 276, 2, 99] TODO +[69, 9, 28, 14, 43, 57, 27, 5, 77, 30, 12, 57, 63, 15, 68, 22, 83, 16, 61, 83, 81, 83, 60, 67, 85, 43, 1, 59, 54, 76, 19, 37, 23, 47, 8, 22, 48, 33, 5, 40, 11, 40, 16, 37, 33, 29, 13, 35, 80, 66, 62, 41, 46, 32, 47, 46, 51, 36, 12, 54, 79, 76, 83, 50, 81, 59, 54, 21, 63, 24, 36, 76, 81, 57, 44, 60, 15, 73, 14, 78, 43, 74, 74, 14, 47, 68] TODO +[18, 19, 5, 18, 8, 17, 11, 10, 16, 4, 7, 13, 9, 1, 10, 5, 8, 10, 20, 2] TODO +[3, 2, 14, 9, 16, 12, 17, 14, 6, 5, 12, 8, 9, 17, 14, 3, 5] TODO +[51, 55, 8, 79, 81, 11, 71, 46, 99, 13, 57, 104, 19, 42, 15, 81, 2, 77, 13, 58, 30, 68, 93, 33, 23, 102, 82, 55, 20, 1, 90, 72, 67, 6, 65, 3, 61, 26, 10, 16, 58, 76, 51, 98, 85, 55, 48, 23, 7, 58, 81, 75, 49, 86, 75, 99, 68, 7, 91, 65, 84, 91, 58, 15, 46, 96, 5, 19, 2, 99, 43, 103, 61, 98, 97, 76, 1, 101, 11, 62, 90, 71, 54, 69, 53, 92, 15, 5, 105, 14, 18, 13, 35, 33, 79, 80, 73, 57, 92, 98, 69, 96, 6, 18, 63] TODO +[42, 19, 17, 28, 34, 26, 31, 39, 36, 13, 3, 28, 29, 33, 46, 35, 15, 6, 21, 2, 4, 24, 10, 32, 12, 24, 30, 35, 24, 36, 3, 45, 20, 15, 21, 42, 38, 1, 42, 39, 11, 42, 7, 43, 28, 19, 33] TODO +[7, 5, 9, 4, 1, 9, 6, 5, 6, 9] TODO +[37, 85, 315, 221, 272, 113, 120, 49, 164, 134, 209, 302, 181, 129, 82, 204, 318, 175, 241, 184, 7, 185, 294, 215, 272, 166, 112, 228, 186, 272, 295, 229, 27, 157, 240, 192, 33, 263, 236, 117, 265, 50, 167, 248, 147, 323, 14, 229, 177, 100, 126, 255, 305, 272, 67, 236, 271, 201, 10, 31, 43, 127, 30, 70, 269, 175, 131, 140, 238, 99, 91, 2, 262, 269, 173, 185, 243, 145, 51, 194, 192, 254, 227, 247, 177, 111, 198, 101, 211, 65, 23, 139, 77, 241, 105, 87, 310, 155, 193, 292, 240, 297, 10, 270, 293, 202, 88, 153, 29, 123, 204, 93, 100, 220, 156, 264, 79, 42, 252, 82, 59, 158, 134, 56, 147, 150, 58, 24, 323, 50, 34, 196, 161, 21, 23, 31, 102, 277, 200, 301, 47, 7, 187, 76, 216, 47, 286, 290, 57, 269, 285, 65, 102, 295, 23, 56, 291, 164, 19, 37, 206, 172, 314, 78, 162, 217, 189, 132, 16, 169, 175, 239, 126, 27, 245, 144, 321, 57, 316, 81, 113, 289, 186, 4, 184, 38, 314, 200, 4, 111, 278, 2, 318, 297, 302, 110, 318, 5, 251, 86, 42, 7, 156, 314, 34, 71, 7, 227, 182, 132, 27, 192, 208, 124, 33, 69, 93, 165, 268, 143, 192, 277, 135, 133, 244, 239, 181, 199, 74, 157, 166, 160, 228, 156, 79, 149, 276, 261, 66, 230, 188, 176, 276, 284, 131, 277, 74, 159, 147, 154, 81, 237, 193, 58, 246, 216, 134, 9, 251, 192, 262, 270, 263, 250, 135, 318, 305, 20, 234, 74, 113, 56, 314, 6, 53, 118, 177, 61, 23, 13, 319, 6, 6, 247, 101, 229, 85, 64, 64, 59, 88, 87, 122, 224, 146, 301, 282, 4, 148, 231, 297, 23, 110, 217, 114, 116, 316, 4, 302, 39, 260, 96, 46, 295, 73, 193, 269, 235, 315, 136, 109, 56, 251, 16, 49] TODO +[9, 1, 5, 2, 2, 9, 6, 2, 7] TODO +[1, 5, 4, 7, 1, 5, 1] TODO +[5, 10, 1, 3, 19, 18, 20, 21, 15, 19, 15, 9, 17, 3, 1, 3, 21, 4, 14, 21, 12] TODO +[12, 31, 17, 210, 31, 172, 103, 104, 220, 104, 2, 98, 132, 117, 223, 84, 120, 87, 55, 110, 46, 185, 69, 116, 26, 72, 193, 104, 206, 41, 181, 176, 78, 79, 24, 207, 98, 51, 68, 76, 114, 223, 34, 98, 205, 8, 83, 205, 143, 188, 194, 29, 102, 185, 84, 42, 12, 32, 97, 133, 175, 160, 12, 67, 160, 73, 167, 145, 194, 169, 196, 108, 131, 28, 135, 191, 126, 124, 56, 48, 85, 185, 177, 156, 135, 106, 207, 22, 6, 27, 13, 152, 89, 141, 173, 149, 146, 50, 10, 156, 207, 107, 92, 119, 153, 15, 126, 180, 155, 202, 183, 31, 99, 131, 19, 61, 33, 195, 10, 199, 135, 62, 33, 110, 40, 141, 109, 41, 167, 32, 18, 20, 213, 220, 36, 41, 1, 109, 28, 158, 125, 71, 127, 126, 168, 219, 157, 75, 87, 5, 63, 33, 53, 35, 192, 105, 19, 173, 177, 2, 176, 34, 207, 81, 211, 203, 63, 185, 159, 217, 67, 31, 109, 204, 103, 171, 19, 106, 147, 22, 108, 182, 199, 90, 111, 222, 74, 29, 112, 95, 46, 17, 32, 61, 78, 152, 105, 176, 171, 126, 181, 148, 102, 136, 19, 15, 67, 190, 9, 97, 21, 90, 162, 132, 99, 119, 68, 42, 152, 111, 167, 15, 61, 212] TODO +[2, 1] TODO +[7, 7, 3, 1, 9, 2, 5, 6, 3] TODO +[56, 44, 6, 30, 83, 60, 23, 44, 64, 21, 71, 36, 21, 39, 21, 40, 12, 27, 35, 31, 52, 53, 5, 3, 24, 30, 23, 40, 74, 81, 22, 51, 25, 43, 63, 51, 65, 77, 29, 30, 71, 26, 82, 75, 14, 60, 1, 66, 39, 10, 25, 57, 12, 8, 79, 68, 50, 76, 70, 10, 1, 24, 9, 36, 29, 17, 46, 43, 23, 16, 57, 42, 48, 37, 11, 26, 78, 20, 26, 41, 78, 60, 8, 16] TODO +[101, 80, 29, 91, 134, 40, 70, 5, 156, 42, 7, 35, 113, 63, 97, 1, 71, 44, 21, 15, 7, 97, 33, 75, 108, 134, 101, 12, 33, 155, 108, 71, 93, 150, 144, 4, 165, 79, 109, 155, 135, 39, 132, 60, 82, 100, 118, 11, 50, 95, 4, 74, 90, 33, 54, 99, 35, 111, 104, 126, 51, 85, 37, 109, 20, 70, 144, 82, 39, 67, 25, 69, 92, 46, 56, 35, 9, 104, 29, 75, 100, 21, 97, 46, 88, 153, 78, 108, 155, 13, 55, 105, 45, 49, 73, 58, 32, 5, 25, 32, 52, 22, 141, 143, 16, 113, 67, 154, 105, 136, 92, 87, 165, 105, 118, 83, 59, 11, 77, 75, 108, 13, 162, 162, 37, 137, 55, 163, 31, 147, 70, 44, 3, 22, 37, 82, 143, 64, 59, 8, 98, 111, 37, 36, 102, 110, 103, 152, 105, 53, 131, 8, 147, 32, 90, 97, 34, 45, 44, 85, 143, 62, 103, 156, 42] TODO +[4, 23, 23, 23, 11, 27, 25, 29, 10, 34, 18, 29, 3, 25, 20, 21, 33, 20, 8, 17, 1, 12, 11, 32, 20, 16, 28, 3, 1, 9, 16, 9, 28, 26, 26, 23, 30] TODO +[97, 57, 111, 69, 56, 87, 78, 99, 28, 138, 56, 23, 92, 134, 105, 54, 111, 131, 113, 37, 95, 22, 135, 118, 129, 129, 127, 37, 81, 60, 35, 127, 1, 21, 132, 16, 61, 101, 8, 124, 138, 24, 98, 47, 32, 88, 45, 136, 2, 73, 85, 81, 16, 133, 109, 81, 78, 55, 98, 2, 43, 4, 104, 39, 93, 139, 128, 100, 135, 1, 62, 31, 54, 71, 65, 54, 15, 18, 55, 42, 86, 46, 70, 87, 36, 67, 35, 69, 67, 103, 116, 37, 95, 89, 13, 28, 46, 9, 87, 103, 2, 103, 90, 14, 8, 80, 100, 43, 2, 99, 135, 126, 100, 129, 27, 85, 133, 4, 74, 22, 84, 34, 72, 129, 28, 70, 87, 10, 16, 53, 24, 51, 60, 110, 134, 84, 41, 134, 72] TODO +[19, 34, 30, 60, 15, 29, 38, 2, 49, 50, 35, 44, 51, 59, 30, 13, 50, 38, 24, 37, 53, 6, 23, 20, 3, 30, 4, 16, 31, 59, 65, 13, 25, 36, 51, 56, 74, 28, 31, 15, 8, 60, 38, 69, 76, 28, 65, 51, 72, 25, 64, 60, 11, 9, 8, 58, 61, 17, 67, 51, 62, 47, 62, 20, 17, 22, 59, 50, 22, 62, 1, 26, 1, 9, 18, 15] TODO +[8, 5, 3, 7, 7, 6, 2, 7, 7] TODO +[44, 31, 40, 5, 35, 5, 16, 38, 10, 14, 42, 47, 31, 33, 19, 45, 27, 46, 13, 24, 13, 32, 30, 41, 30, 18, 5, 17, 33, 18, 2, 25, 21, 2, 23, 36, 45, 7, 26, 11, 13, 18, 26, 8, 6, 1, 1] TODO +[136, 149, 164, 220, 131, 159, 214, 70, 60, 175, 84, 153, 20, 155, 203, 24, 199, 116, 56, 207, 110, 14, 101, 1, 148, 182, 46, 151, 38, 55, 97, 21, 170, 231, 95, 148, 108, 110, 91, 147, 105, 229, 148, 178, 157, 42, 97, 63, 101, 221, 181, 64, 197, 13, 178, 56, 20, 58, 212, 65, 138, 3, 117, 122, 202, 203, 50, 91, 170, 200, 46, 56, 231, 46, 131, 58, 227, 119, 111, 207, 86, 4, 194, 90, 16, 33, 109, 208, 163, 231, 166, 100, 177, 120, 125, 31, 143, 16, 8, 185, 173, 122, 162, 59, 131, 11, 186, 172, 201, 104, 8, 35, 34, 110, 81, 11, 161, 37, 170, 67, 6, 105, 59, 204, 235, 13, 141, 70, 29, 143, 23, 183, 113, 70, 176, 184, 172, 115, 37, 203, 138, 156, 103, 18, 77, 118, 72, 201, 78, 125, 82, 13, 23, 23, 159, 161, 188, 177, 29, 234, 116, 61, 60, 149, 83, 230, 28, 106, 69, 235, 89, 51, 79, 163, 73, 151, 156, 88, 133, 69, 205, 41, 212, 106, 8, 134, 197, 16, 218, 113, 190, 164, 187, 103, 46, 90, 42, 40, 32, 49, 207, 85, 59, 101, 75, 187, 61, 200, 126, 77, 230, 154, 179, 201, 94, 108, 105, 79, 137, 112, 132, 181, 39, 91, 20, 211, 183, 184, 208, 10, 99, 94, 215, 94, 175, 219, 143, 52] TODO +[24, 76, 30, 26, 17, 50, 94, 81, 76, 38, 60, 75, 99, 48, 50, 43, 21, 64, 45, 55, 93, 61, 94, 73, 46, 49, 54, 20, 14, 61, 7, 64, 12, 28, 60, 48, 70, 46, 33, 81, 68, 37, 1, 56, 5, 80, 27, 106, 69, 80, 22, 71, 39, 88, 56, 98, 18, 46, 98, 2, 63, 79, 80, 38, 19, 82, 108, 46, 76, 2, 1, 60, 58, 56, 42, 10, 77, 42, 9, 79, 102, 74, 22, 94, 70, 83, 4, 108, 9, 57, 18, 38, 86, 39, 19, 66, 14, 33, 108, 103, 77, 42, 59, 60, 27, 87, 33, 25] TODO +[5, 33, 49, 19, 29, 2, 21, 47, 39, 31, 18, 36, 43, 18, 23, 6, 21, 11, 45, 20, 39, 14, 37, 28, 29, 28, 47, 41, 26, 33, 31, 4, 14, 13, 14, 30, 49, 40, 26, 22, 30, 7, 8, 14, 7, 19, 29, 3, 29, 49, 48] TODO +[38, 47, 11, 43, 38, 44, 26, 10, 6, 28, 34, 47, 33, 23, 36, 27, 42, 5, 12, 22, 11, 36, 34, 31, 34, 27, 5, 4, 35, 38, 18, 6, 10, 3, 2, 45, 45, 9, 1, 3, 5, 43, 21, 18, 25, 19, 31] TODO +[113, 109, 60, 74, 98, 83, 52, 4, 107, 25, 32, 113, 84, 61, 32, 43, 101, 109, 84, 110, 117, 11, 38, 52, 103, 99, 13, 26, 101, 34, 86, 69, 110, 68, 67, 49, 70, 26, 62, 101, 54, 1, 44, 83, 93, 107, 91, 85, 117, 97, 113, 67, 93, 86, 1, 7, 83, 113, 27, 35, 36, 12, 98, 41, 80, 25, 118, 101, 1, 86, 25, 42, 44, 115, 10, 10, 24, 37, 17, 49, 2, 48, 61, 104, 43, 95, 52, 25, 41, 27, 8, 13, 24, 16, 35, 107, 70, 72, 32, 20, 102, 16, 63, 25, 1, 20, 18, 1, 118, 85, 67, 116, 29, 32, 57, 116, 16, 68, 18, 72] TODO +[7, 4, 8, 18, 8, 6, 3, 11, 1, 1, 10, 15, 6, 15, 2, 4, 16, 2, 1] TODO +[2, 4, 2, 3] TODO +[9, 6, 5, 17, 24, 13, 14, 19, 6, 4, 21, 33, 17, 30, 39, 27, 15, 35, 24, 34, 28, 25, 46, 36, 12, 12, 14, 15, 45, 41, 38, 9, 32, 36, 29, 25, 27, 15, 28, 19, 15, 5, 23, 2, 32, 21] TODO +[48, 17, 42, 23, 7, 12, 24, 31, 1, 5, 14, 23, 17, 14, 14, 21, 35, 9, 17, 14, 20, 9, 28, 40, 46, 25, 25, 30, 23, 30, 7, 38, 6, 26, 5, 28, 10, 35, 31, 11, 45, 15, 16, 38, 7, 10, 8, 46] TODO +[11, 14, 1, 11, 15, 12, 2, 3, 13, 6, 15, 3, 10, 11, 14, 10] TODO +[2, 11, 7, 14, 1, 3, 7, 3, 3, 3, 5, 7, 10, 15, 7] TODO +[37, 46, 64, 9, 38, 60, 59, 47, 5, 15, 12, 77, 37, 61, 25, 45, 1, 71, 49, 50, 46, 79, 75, 34, 4, 44, 47, 63, 70, 47, 14, 60, 54, 50, 53, 31, 66, 16, 68, 60, 24, 64, 35, 71, 36, 12, 45, 5, 54, 55, 78, 21, 62, 13, 72, 11, 22, 19, 73, 6, 62, 42, 47, 9, 76, 77, 16, 36, 79, 12, 20, 47, 28, 52, 39, 64, 26, 31, 51, 59] TODO +[24, 25, 13, 12, 5, 26, 21, 5, 13, 26, 3, 25, 7, 4, 21, 16, 7, 5, 11, 10, 23, 26, 25, 9, 9, 11, 14, 5] TODO +[66, 38, 94, 93, 22, 19, 11, 70, 89, 41, 65, 5, 103, 48, 80, 12, 54, 83, 70, 99, 104, 13, 97, 83, 40, 109, 70, 52, 6, 104, 38, 98, 89, 10, 108, 84, 18, 43, 70, 97, 64, 9, 69, 27, 69, 69, 103, 41, 44, 83, 81, 56, 12, 25, 7, 92, 69, 107, 33, 95, 49, 3, 6, 70, 108, 58, 19, 52, 51, 55, 39, 56, 30, 41, 55, 48, 85, 4, 38, 67, 18, 48, 17, 107, 31, 5, 86, 22, 75, 29, 81, 11, 50, 11, 22, 80, 31, 72, 3, 39, 44, 73, 85, 59, 51, 10, 35, 78, 96] TODO +[1, 1] TODO +[13, 12, 8, 9, 7, 7, 16, 5, 4, 2, 6, 9, 3, 6, 1, 11] TODO +[9, 9, 1, 1, 2, 11, 4, 2, 9, 10, 3] TODO +[20, 5, 17, 11, 17, 4, 14, 1, 4, 22, 7, 7, 23, 24, 24, 21, 7, 13, 24, 1, 19, 18, 14, 10] TODO +[62, 38, 53, 33, 36, 56, 4, 49, 60, 37, 33, 67, 13, 21, 66, 1, 13, 22, 11, 26, 24, 68, 49, 19, 38, 42, 34, 68, 29, 45, 60, 64, 27, 43, 9, 69, 22, 16, 69, 12, 11, 65, 51, 29, 50, 24, 7, 24, 26, 33, 19, 65, 6, 32, 62, 53, 53, 60, 51, 37, 67, 62, 24, 34, 47, 65, 61, 18, 29] TODO +[4, 34, 65, 103, 72, 101, 77, 109, 3, 15, 72, 32, 51, 26, 10, 68, 3, 94, 49, 12, 6, 84, 40, 70, 72, 50, 35, 62, 76, 34, 63, 20, 44, 68, 20, 96, 81, 47, 54, 6, 41, 78, 62, 59, 90, 52, 36, 38, 60, 38, 61, 48, 20, 9, 58, 30, 28, 93, 16, 22, 75, 71, 63, 39, 77, 23, 103, 72, 24, 107, 60, 69, 52, 63, 92, 7, 91, 63, 54, 64, 2, 30, 5, 93, 12, 13, 53, 77, 66, 26, 100, 17, 65, 80, 106, 84, 6, 55, 81, 3, 107, 29, 26, 53, 41, 30, 41, 9, 6] TODO +[16, 21, 14, 26, 15, 24, 21, 24, 25, 17, 11, 10, 4, 10, 9, 23, 23, 15, 1, 23, 20, 2, 8, 10, 2, 4] TODO +[235, 179, 153, 244, 33, 2, 72, 111, 167, 19, 187, 232, 177, 153, 102, 121, 238, 225, 99, 217, 256, 240, 139, 91, 199, 101, 99, 171, 127, 225, 43, 15, 187, 230, 37, 4, 180, 71, 226, 239, 248, 98, 1, 60, 201, 124, 16, 152, 230, 115, 3, 50, 176, 94, 198, 183, 262, 19, 1, 106, 238, 7, 185, 206, 236, 206, 158, 133, 49, 188, 210, 20, 245, 122, 132, 219, 147, 9, 86, 48, 142, 116, 157, 86, 128, 63, 20, 33, 238, 253, 187, 22, 107, 205, 232, 215, 193, 234, 4, 240, 215, 172, 54, 32, 256, 266, 236, 25, 256, 80, 18, 213, 128, 40, 119, 40, 201, 269, 170, 12, 97, 18, 140, 171, 216, 51, 139, 11, 3, 94, 119, 115, 147, 94, 94, 131, 154, 213, 210, 136, 71, 169, 49, 237, 165, 233, 170, 269, 120, 86, 71, 21, 123, 234, 195, 48, 8, 47, 124, 65, 49, 25, 67, 132, 73, 91, 184, 44, 11, 162, 36, 261, 106, 236, 232, 233, 82, 225, 155, 263, 220, 138, 17, 184, 122, 31, 167, 123, 205, 121, 96, 10, 236, 168, 267, 197, 262, 96, 235, 138, 83, 44, 58, 175, 120, 235, 53, 225, 57, 44, 254, 238, 258, 138, 77, 159, 185, 195, 64, 228, 54, 184, 184, 163, 56, 162, 36, 254, 156, 72, 258, 216, 221, 191, 265, 167, 152, 144, 27, 25, 112, 49, 33, 19, 16, 169, 247, 5, 223, 23, 138, 175, 246, 109, 232, 88, 46, 110, 72, 127, 90, 81, 169, 54, 186, 194, 153, 130, 269] TODO +[133, 68, 77, 59, 175, 172, 128, 4, 113, 114, 81, 13, 181, 167, 149, 102, 160, 131, 142, 80, 16, 105, 165, 45, 45, 73, 6, 88, 168, 13, 147, 72, 138, 185, 128, 22, 39, 76, 147, 168, 159, 126, 115, 114, 62, 145, 132, 173, 148, 45, 79, 5, 96, 143, 164, 83, 133, 109, 175, 84, 114, 61, 160, 2, 124, 133, 182, 159, 115, 57, 43, 184, 183, 61, 12, 39, 121, 106, 62, 3, 167, 173, 184, 108, 70, 162, 87, 84, 115, 117, 15, 122, 45, 118, 53, 33, 131, 22, 150, 108, 105, 117, 46, 54, 16, 116, 4, 182, 92, 62, 44, 151, 160, 181, 54, 105, 116, 132, 126, 58, 28, 163, 160, 159, 62, 165, 162, 117, 80, 130, 165, 54, 4, 180, 101, 1, 177, 107, 80, 110, 25, 151, 175, 15, 51, 96, 36, 86, 43, 155, 162, 181, 17, 115, 31, 74, 144, 101, 14, 180, 91, 75, 120, 25, 59, 67, 184, 136, 93, 48, 25, 145, 185, 47, 56, 9, 87, 126, 141, 180, 28, 53, 77, 52, 13] TODO +[3, 2, 3, 4, 5] TODO +[39, 66, 11, 16, 34, 68, 5, 17, 63, 21, 77, 27, 44, 39, 43, 48, 27, 12, 28, 11, 27, 22, 14, 55, 73, 29, 42, 51, 54, 62, 61, 67, 49, 55, 27, 11, 34, 75, 56, 21, 34, 30, 78, 35, 6, 32, 45, 75, 64, 25, 1, 8, 46, 69, 2, 10, 54, 26, 17, 27, 47, 59, 3, 63, 36, 34, 18, 27, 21, 12, 14, 56, 2, 38, 51, 54, 7, 45] TODO +[40, 43, 19, 63, 48, 17, 18, 58, 61, 44, 18, 56, 43, 34, 37, 34, 3, 34, 64, 40, 39, 32, 49, 25, 1, 40, 60, 25, 63, 37, 72, 59, 21, 10, 38, 32, 45, 64, 4, 31, 53, 32, 38, 9, 18, 48, 36, 19, 12, 50, 21, 74, 12, 73, 30, 62, 23, 29, 72, 77, 13, 36, 49, 26, 9, 13, 36, 1, 8, 5, 62, 21, 41, 78, 15, 53, 34, 11, 26, 31] TODO +[25, 8, 6, 7, 10, 19, 19, 13, 6, 1, 26, 14, 8, 7, 14, 19, 20, 4, 11, 10, 17, 18, 12, 13, 20, 3] TODO [2, 2] TODO -[3, 5, 2, 4, 1, 4] TODO -[149, 355, 196, 391, 286, 393, 56, 381, 155, 393, 127, 388, 104, 395, 95, 356, 46, 308, 191, 368, 12, 306, 145, 173, 31, 118, 66, 338, 96, 361, 144, 415, 216, 391, 269, 401, 143, 409, 167, 350, 40, 295, 115, 279, 41, 192, 82, 128, 21, 117, 36, 125, 40, 194, 167, 277, 175, 368, 86, 247, 128, 211, 103, 219, 111, 226, 101, 243, 6, 336, 107, 229, 90, 174, 153, 355, 52, 213, 97, 323, 68, 336, 109, 322, 81, 280, 98, 277, 172, 276, 195, 275, 88, 234, 37, 123, 7, 116, 8, 67, 59, 63, 36, 383, 177, 405, 182, 233, 11, 264, 189, 415, 244, 359, 197, 352, 162, 282, 129, 240, 204, 401, 222, 304, 237, 365, 78, 351, 80, 85, 54, 270, 96, 279, 194, 218, 70, 252, 165, 290, 47, 283, 150, 298, 32, 350, 125, 233, 186, 366, 81, 364, 270, 410, 233, 362, 282, 375, 292, 382, 64, 192, 148, 286, 104, 316, 263, 409, 42, 353, 83, 174, 46, 244, 96, 378, 165, 243, 80, 262, 26, 282, 160, 262, 55, 393, 179, 258, 65, 262, 21, 344, 224, 366, 16, 298, 73, 290, 164, 270, 62, 300, 17, 239, 215, 335, 221, 324, 92, 247, 95, 197, 65, 346, 147, 347, 336, 367, 3, 334, 213, 278, 252, 353, 237, 290, 255, 346, 297, 355, 63, 296, 3, 189, 111, 277, 203, 212, 123, 312, 192, 411, 40, 131, 44, 304, 264, 379, 27, 148, 97, 342, 169, 252, 83, 328, 103, 327, 50, 152, 66, 289, 98, 265, 45, 262, 9, 317, 82, 378, 142, 406, 192, 318, 191, 305, 24, 398, 52, 358, 107, 269, 65, 276, 198, 376, 267, 274, 147, 409, 190, 375, 90, 312, 182, 358, 313, 381, 182, 411, 213, 382, 108, 310, 100, 271, 246, 328, 97, 241, 99, 329, 161, 192, 83, 324, 162, 305, 139, 257, 171, 300, 120, 198, 59, 353, 24, 288, 224, 281, 144, 256, 23, 283, 48, 392, 186, 344, 119, 345, 97, 288, 40, 226, 67, 296, 24, 356, 34, 203, 55, 83, 74, 344, 72, 202, 27, 410, 15, 176, 17, 394, 124, 348, 35, 313, 133, 200, 124, 264, 6, 251, 117, 157, 30, 413, 75, 373, 209, 253, 162, 396, 229, 260, 196, 246, 192, 337, 186, 387, 50, 405, 70, 241, 100, 198, 67, 259, 43, 126, 68, 275, 194, 415, 5, 249, 18, 332, 196, 313, 179, 282, 23, 316, 192, 347, 251] TODO -[4, 7, 7, 7, 3, 7, 7] TODO -[20, 41, 12, 52, 28, 54, 10, 25, 22, 35, 32, 57, 20, 54, 15, 55, 36, 58, 14, 50, 39, 52, 47, 57, 1, 29, 5, 44, 14, 41, 19, 19, 2, 58, 15, 47, 22, 39, 31, 38, 10, 44, 41, 45, 19, 31, 28, 32, 1, 30, 20, 47, 3, 39, 33, 41, 35, 57, 13] TODO -[2, 9, 4, 5, 3, 9, 2, 7, 1, 11, 4, 14, 2, 10, 1] TODO -[1, 2] TODO -[92, 258, 27, 170, 86, 158, 7, 158, 56, 237, 64, 182, 21, 151, 93, 220, 24, 116, 91, 233, 78, 191, 80, 215, 2, 183, 62, 236, 12, 218, 77, 212, 89, 189, 33, 156, 16, 174, 28, 211, 186, 212, 126, 258, 30, 194, 82, 209, 53, 108, 64, 225, 27, 240, 58, 141, 102, 224, 84, 172, 115, 163, 13, 215, 23, 24, 12, 175, 65, 136, 110, 248, 122, 143, 9, 238, 18, 157, 120, 258, 31, 91, 60, 256, 49, 233, 115, 232, 194, 211, 34, 94, 88, 173, 70, 249, 143, 256, 182, 211, 176, 198, 75, 154, 107, 198, 44, 116, 34, 256, 101, 252, 196, 217, 68, 112, 100, 260, 156, 192, 61, 145, 108, 229, 42, 80, 40, 217, 26, 185, 51, 110, 78, 186, 44, 228, 36, 170, 49, 145, 26, 220, 73, 249, 98, 206, 172, 205, 28, 244, 33, 178, 115, 186, 27, 79, 37, 185, 74, 122, 61, 225, 120, 157, 143, 230, 156, 249, 22, 133, 35, 258, 39, 234, 166, 226, 178, 237, 144, 180, 123, 216, 14, 155, 55, 169, 62, 233, 3, 97, 68, 170, 18, 260, 82, 242, 108, 216, 57, 214, 90, 114, 5, 224, 66, 254, 99, 205, 165, 180, 18, 162, 45, 218, 98, 163, 36, 112, 105, 123, 38, 143, 18, 142, 12, 130, 36, 248, 22, 216, 37, 202, 53, 98, 17, 175, 54, 118, 37, 207, 16, 93, 43, 241, 17, 92, 58, 201, 155, 234, 122, 180, 19, 140, 52, 223, 185, 258, 117, 249, 178] TODO -[278, 354, 115, 251, 173, 323, 73, 354, 237, 281, 179, 304, 207, 366, 136, 349, 90, 209, 71, 92, 48, 357, 60, 145, 25, 253, 187, 276, 71, 354, 142, 306, 27, 243, 232, 256, 167, 286, 143, 337, 50, 204, 178, 235, 232, 245, 3, 121, 66, 189, 34, 328, 88, 350, 249, 311, 156, 266, 160, 277, 13, 238, 201, 232, 146, 186, 108, 313, 180, 202, 44, 94, 52, 173, 27, 109, 67, 317, 68, 310, 264, 304, 237, 349, 6, 221, 15, 218, 140, 216, 186, 370, 21, 274, 43, 332, 70, 267, 89, 168, 31, 354, 41, 200, 29, 243, 199, 279, 176, 296, 108, 263, 95, 349, 15, 202, 121, 336, 140, 331, 126, 348, 217, 339, 6, 303, 31, 179, 28, 102, 39, 353, 85, 254, 73, 105, 8, 194, 144, 338, 137, 325, 70, 284, 72, 205, 130, 254, 253, 260, 23, 138, 2, 165, 41, 272, 74, 365, 246, 280, 103, 256, 144, 351, 210, 214, 126, 353, 300, 336, 6, 281, 148, 162, 3, 351, 129, 311, 59, 297, 59, 155, 114, 372, 143, 290, 200, 247, 99, 217, 156, 271, 169, 237, 122, 365, 154, 362, 68, 125, 56, 271, 105, 331, 202, 358, 269, 309, 178, 286, 13, 328, 41, 129, 9, 328, 96, 163, 113, 131, 28, 232, 152, 256, 110, 334, 143, 325, 56, 192, 18, 119, 96, 300, 28, 145, 80, 275, 90, 232, 41, 241, 117, 364, 172, 203, 183, 318, 76, 280, 179, 287, 15, 308, 268, 270, 100, 322, 4, 352, 29, 115, 64, 271, 95, 315, 130, 144, 75, 370, 173, 238, 151, 299, 215, 263, 25, 366, 248, 265, 110, 303, 275, 282, 143, 300, 9, 353, 5, 324, 324, 338, 120, 146, 17, 306, 78, 95, 22, 319, 80, 358, 124, 316, 118, 272, 64, 230, 151, 182, 173, 197, 39, 264, 29, 173, 83, 94, 93, 355, 209, 296, 19, 253, 82, 215, 36, 279, 36, 338, 226, 324, 78, 356, 166, 309, 9, 318, 12, 232, 15, 361, 122, 159, 88, 325, 54, 147, 122, 358, 14, 220, 91, 370, 220, 242, 72, 187, 30, 345, 118, 327, 163, 254, 91, 209, 87, 153, 76, 137, 98, 307] TODO -[1, 6, 2, 3, 3, 3] TODO -[6, 9, 9, 9, 7, 10, 3, 11, 1, 5, 4, 8, 4, 5, 1] TODO -[1, 5, 2, 5, 5] TODO -[137, 194, 101, 168, 24, 135, 15, 103, 38, 178, 62, 201, 152, 198, 169, 216, 6, 219, 133, 179, 11, 145, 129, 214, 80, 205, 82, 151, 116, 172, 146, 222, 14, 199, 95, 130, 21, 163, 72, 161, 65, 226, 58, 76, 8, 195, 85, 176, 25, 160, 8, 61, 2, 205, 14, 38, 12, 143, 11, 160, 20, 111, 89, 163, 85, 133, 34, 120, 85, 154, 88, 89, 2, 223, 125, 191, 77, 112, 87, 220, 142, 212, 151, 185, 52, 201, 65, 177, 49, 176, 4, 85, 39, 178, 81, 208, 43, 84, 68, 216, 34, 113, 11, 85, 32, 131, 81, 197, 34, 120, 7, 229, 14, 133, 76, 99, 49, 184, 62, 221, 131, 182, 105, 217, 41, 118, 104, 158, 52, 193, 85, 96, 47, 103, 18, 122, 23, 109, 85, 207, 119, 189, 91, 122, 70, 185, 53, 98, 3, 82, 7, 144, 42, 198, 8, 88, 65, 194, 127, 223, 68, 210, 136, 155, 50, 183, 58, 177, 39, 92, 27, 98, 15, 78, 16, 218, 136, 149, 7, 184, 8, 176, 19, 173, 32, 172, 10, 158, 22, 71, 59, 193, 51, 138, 131, 146, 52, 214, 137, 187, 37, 210, 21, 83, 55, 70, 54, 198, 80, 98, 6, 90, 34, 211, 6, 189, 46, 71, 68, 155, 68, 92, 86, 194, 130, 146, 4, 210, 59, 136, 127] TODO -[25, 70, 8, 27, 1, 55, 21, 62, 8, 21, 17, 58, 42, 62, 17, 48, 22, 76, 10, 46, 11, 42, 35, 68, 48, 74, 58, 84, 31, 65, 25, 41, 31, 47, 37, 50, 3, 45, 42, 43, 32, 65, 33, 56, 14, 81, 55, 82, 22, 73, 17, 40, 35, 51, 21, 62, 36, 75, 60, 78, 18, 83, 27, 50, 43, 74, 45, 82, 15, 27, 23, 53, 21, 82, 7, 66, 25, 53, 9, 73, 25, 44, 11, 50] TODO -[17, 33, 29, 31, 12, 31, 10, 11, 2, 23, 5, 11, 3, 22, 6, 20, 9, 15, 6, 22, 7, 17, 12, 23, 7, 32, 7, 17, 6, 19, 6, 15, 2, 11] TODO -[1, 4, 2, 2] TODO -[3, 14, 2, 9, 2, 14, 5, 13, 7, 7, 1, 10, 3, 9] TODO -[23, 107, 29, 96, 20, 78, 49, 119, 54, 66, 58, 120, 9, 100, 44, 67, 24, 92, 2, 45, 2, 67, 6, 117, 53, 91, 28, 83, 59, 99, 67, 102, 89, 110, 19, 107, 1, 109, 3, 54, 35, 109, 4, 67, 35, 53, 33, 94, 37, 80, 22, 91, 40, 48, 6, 42, 41, 46, 24, 54, 22, 85, 27, 65, 61, 96, 81, 115, 52, 57, 55, 76, 4, 48, 1, 20, 19, 61, 25, 75, 27, 117, 53, 107, 3, 77, 58, 108, 60, 85, 1, 81, 49, 84, 60, 98, 62, 120, 57, 104, 56, 93, 17, 79, 46, 87, 6, 67, 36, 79, 39, 119, 68, 71, 20, 108, 36, 71, 39, 118, 12, 71] TODO -[3, 4, 3, 4] TODO +[1, 3, 3, 2] TODO +[5, 5, 2, 2, 6, 3, 7] TODO +[2, 4, 7, 8, 8, 10, 9, 9, 9, 2] TODO +[2, 15, 19, 23, 12, 7, 11, 1, 12, 17, 31, 36, 24, 31, 31, 11, 34, 4, 50, 22, 7, 35, 17, 22, 31, 1, 24, 38, 47, 37, 25, 3, 20, 11, 23, 50, 1, 41, 42, 47, 33, 30, 9, 35, 24, 32, 47, 29, 27, 40] TODO +[5, 5, 10, 2, 10, 5, 6, 9, 7, 2] TODO +[1, 1, 4, 2, 4] TODO +[132, 2, 45, 179, 46, 125, 88, 34, 116, 169, 79, 23, 42, 30, 96, 150, 175, 73, 102, 114, 197, 49, 166, 125, 121, 154, 29, 27, 129, 168, 76, 193, 64, 221, 97, 182, 123, 131, 183, 149, 101, 114, 103, 116, 110, 135, 139, 30, 161, 100, 50, 183, 164, 216, 171, 216, 27, 177, 125, 49, 97, 166, 189, 5, 100, 11, 27, 42, 202, 210, 57, 61, 33, 67, 209, 92, 45, 129, 214, 164, 16, 132, 126, 69, 19, 222, 224, 79, 149, 225, 32, 27, 70, 173, 3, 212, 124, 46, 206, 202, 160, 115, 91, 138, 26, 5, 41, 135, 1, 85, 25, 27, 97, 119, 160, 207, 31, 92, 222, 210, 158, 182, 51, 144, 40, 159, 159, 20, 170, 237, 64, 201, 90, 77, 17, 6, 158, 202, 9, 181, 181, 64, 149, 2, 83, 95, 86, 100, 179, 157, 151, 86, 21, 20, 202, 126, 192, 189, 130, 217, 237, 87, 179, 50, 212, 64, 208, 183, 108, 161, 82, 19, 206, 201, 171, 80, 137, 92, 198, 203, 95, 206, 72, 193, 146, 11, 113, 30, 28, 42, 181, 156, 110, 191, 216, 51, 171, 146, 168, 176, 225, 165, 23, 190, 49, 156, 197, 77, 218, 5, 106, 93, 144, 114, 44, 28, 183, 69, 92, 114, 40, 186, 3, 125, 36, 118, 198, 141, 147, 7, 19, 24, 49, 166, 231, 138, 45, 100, 213, 127, 125] TODO +[7, 5, 5, 1, 6, 2, 1] TODO +[1, 2, 4, 1] TODO +[1, 2, 3] TODO +[5, 5, 4, 3, 3] TODO +[27, 21, 30, 37, 3, 24, 11, 4, 33, 2, 7, 36, 8, 21, 37, 1, 11, 10, 13, 13, 4, 37, 23, 26, 14, 30, 20, 12, 36, 28, 1, 26, 20, 25, 1, 37, 29, 3] TODO +[67, 36, 95, 90, 46, 7, 65, 117, 11, 111, 189, 86, 194, 2, 54, 129, 184, 82, 101, 182, 128, 33, 7, 145, 95, 117, 178, 107, 93, 34, 97, 127, 96, 73, 106, 102, 13, 79, 13, 150, 161, 186, 11, 53, 81, 76, 71, 31, 93, 29, 96, 145, 115, 133, 194, 145, 163, 50, 46, 137, 56, 188, 139, 159, 110, 18, 90, 160, 111, 49, 186, 48, 128, 124, 103, 30, 135, 47, 7, 40, 71, 158, 80, 148, 44, 111, 146, 103, 156, 127, 185, 52, 58, 117, 131, 42, 27, 114, 194, 193, 25, 19, 130, 47, 22, 65, 157, 8, 104, 145, 121, 103, 147, 84, 78, 134, 52, 170, 182, 40, 91, 46, 94, 57, 15, 142, 54, 106, 5, 27, 118, 113, 140, 175, 167, 176, 179, 162, 196, 196, 113, 65, 75, 141, 115, 128, 163, 163, 45, 115, 103, 102, 173, 6, 21, 111, 45, 11, 143, 125, 13, 89, 184, 120, 96, 10, 85, 119, 156, 128, 141, 120, 99, 43, 29, 133, 11, 114, 89, 188, 98, 134, 144, 143, 121, 111, 78, 57, 148, 190, 176, 71, 111, 76, 131, 76] TODO +[9, 37, 41, 35, 39, 23, 11, 9, 16, 42, 20, 17, 61, 36, 28, 12, 48, 5, 19, 31, 31, 47, 57, 59, 5, 21, 10, 28, 44, 24, 30, 37, 4, 32, 29, 28, 37, 35, 45, 5, 50, 21, 47, 47, 20, 55, 40, 29, 55, 51, 31, 13, 58, 28, 49, 50, 12, 30, 60, 5, 19] TODO [3, 3, 1, 3] TODO -[18, 19, 2, 22, 2, 7, 6, 18, 11, 20, 6, 14, 7, 14, 10, 11, 5, 12, 11, 18, 2, 22, 14] TODO -[1, 17, 1, 9, 3, 4, 3, 14, 11, 13, 3, 5, 4, 4, 2, 6, 1] TODO -[75, 138, 14, 120, 67, 188, 164, 176, 14, 151, 17, 199, 10, 173, 29, 75, 26, 123, 28, 142, 19, 105, 45, 75, 51, 189, 50, 198, 157, 176, 77, 146, 55, 128, 125, 139, 5, 148, 12, 146, 24, 93, 35, 179, 15, 97, 19, 47, 23, 212, 178, 202, 147, 160, 71, 217, 74, 199, 86, 142, 112, 202, 9, 171, 23, 80, 27, 70, 49, 206, 26, 54, 42, 80, 64, 73, 10, 80, 69, 173, 127, 146, 3, 142, 135, 135, 53, 192, 6, 135, 64, 191, 43, 160, 1, 111, 2, 130, 125, 208, 175, 206, 68, 194, 8, 129, 12, 129, 28, 158, 23, 120, 52, 171, 103, 137, 24, 142, 37, 208, 49, 192, 40, 196, 48, 174, 116, 166, 68, 148, 47, 210, 21, 196, 46, 90, 6, 121, 74, 93, 65, 109, 47, 101, 100, 200, 36, 199, 98, 181, 5, 163, 74, 124, 108, 211, 87, 218, 49, 123, 53, 170, 51, 65, 15, 113, 30, 123, 48, 134, 25, 88, 85, 199, 137, 154, 56, 87, 44, 169, 30, 100, 55, 114, 74, 150, 16, 106, 44, 188, 182, 198, 88, 118, 111, 208, 93, 133, 38, 117, 99, 112, 110, 203, 58, 169, 31, 166, 102, 201, 90, 111, 60, 99, 98, 194, 67, 87] TODO -[25, 33, 22, 26, 2, 29, 21, 38, 20, 36, 5, 33, 12, 29, 9, 31, 8, 40, 13, 23, 15, 39, 19, 22, 20, 26, 5, 22, 5, 17, 6, 33, 30, 41, 2, 34, 3, 22, 1, 16, 8] TODO -[30, 88, 87, 114, 41, 101, 23, 78, 57, 91, 3, 90, 79, 103, 70, 80, 64, 99, 32, 102, 86, 94, 24, 102, 8, 47, 24, 74, 41, 104, 31, 56, 45, 110, 12, 90, 29, 81, 55, 59, 32, 97, 50, 60, 5, 96, 42, 87, 25, 109, 57, 59, 57, 67, 33, 110, 32, 104, 51, 59, 17, 85, 34, 65, 28, 67, 57, 111, 23, 42, 25, 91, 2, 71, 47, 58, 19, 98, 11, 62, 25, 108, 31, 84, 39, 78, 77, 79, 29, 77, 2, 76, 6, 70, 31, 63, 53, 56, 26, 85, 61, 74, 12, 73, 7, 68, 30, 95, 3, 92, 40, 77, 76, 96, 28, 71] TODO -[12, 39, 3, 16, 8, 39, 12, 41, 9, 28, 19, 28, 6, 34, 9, 33, 17, 56, 6, 55, 14, 25, 16, 20, 1, 33, 10, 26, 19, 36, 1, 53, 9, 10, 2, 9, 1, 40, 6, 49, 46, 47, 4, 41, 13, 20, 14, 44, 37, 40, 11, 53, 18, 38, 23, 31] TODO -[11, 14, 12, 13, 9, 13, 1, 12, 4, 11, 3, 9, 4, 8] TODO -[25, 33, 10, 73, 22, 76, 6, 54, 25, 73, 30, 58, 34, 67, 45, 75, 15, 53, 5, 71, 15, 65, 47, 64, 39, 73, 55, 57, 13, 42, 18, 48, 18, 65, 16, 43, 38, 73, 21, 56, 31, 75, 48, 56, 29, 75, 32, 57, 6, 49, 44, 66, 12, 76, 16, 43, 11, 72, 12, 65, 8, 56, 37, 53, 31, 59, 22, 51, 10, 26, 11, 74, 50, 62, 8, 29, 11] TODO -[29, 43, 20, 28, 1, 6, 3, 16, 15, 34, 20, 27, 5, 43, 24, 26, 13, 31, 18, 38, 11, 43, 26, 32, 12, 20, 5, 15, 11, 33, 18, 43, 5, 30, 12, 22, 4, 24, 5, 43, 1, 38, 13, 30] TODO -[73, 81, 41, 67, 31, 82, 1, 46, 14, 91, 52, 54, 41, 77, 58, 78, 47, 57, 23, 87, 17, 28, 14, 87, 17, 85, 52, 94, 61, 91, 33, 67, 38, 73, 3, 72, 4, 61, 6, 74, 15, 67, 23, 82, 67, 93, 81, 91, 34, 82, 9, 49, 27, 87, 58, 86, 21, 78, 42, 54, 23, 41, 1, 56, 20, 56, 2, 28, 4, 42, 28, 89, 39, 87, 15, 96, 78, 85, 47, 84, 46, 97, 6, 91, 13, 51, 38, 85, 9, 61, 44, 89, 6, 84, 57, 83, 76] TODO -[13, 14, 8, 15, 7, 9, 3, 10, 1, 19, 2, 16, 7, 10, 4, 15, 10, 14, 12] TODO -[36, 45, 10, 28, 23, 45, 32, 53, 19, 39, 28, 58, 15, 38, 33, 40, 5, 37, 9, 51, 21, 38, 14, 55, 32, 35, 20, 55, 4, 14, 14, 44, 9, 41, 4, 35, 15, 42, 33, 49, 44, 46, 6, 47, 18, 55, 31, 52, 26, 41, 3, 32, 30, 38, 36, 41, 7, 50] TODO -[] TODO -[170, 174, 128, 242, 155, 253, 129, 167, 103, 154, 1, 183, 50, 200, 75, 119, 16, 186, 127, 156, 52, 256, 176, 236, 161, 235, 39, 247, 51, 183, 26, 186, 36, 180, 144, 157, 29, 254, 125, 220, 63, 177, 162, 198, 113, 178, 59, 166, 24, 192, 120, 154, 124, 145, 48, 104, 58, 80, 47, 87, 38, 113, 103, 103, 30, 249, 212, 235, 95, 174, 81, 193, 112, 251, 86, 179, 58, 144, 112, 196, 6, 199, 63, 136, 26, 255, 40, 204, 18, 252, 45, 244, 189, 204, 74, 255, 113, 204, 91, 166, 138, 166, 26, 134, 5, 219, 175, 184, 18, 238, 100, 197, 80, 131, 90, 192, 8, 256, 93, 139, 66, 245, 159, 229, 165, 247, 54, 112, 84, 191, 42, 151, 121, 180, 13, 122, 81, 224, 4, 159, 81, 250, 161, 215, 188, 210, 143, 190, 132, 159, 120, 214, 75, 198, 150, 232, 58, 166, 40, 170, 78, 114, 21, 170, 96, 100, 51, 254, 183, 246, 36, 228, 41, 261, 101, 197, 34, 152, 26, 175, 8, 173, 99, 121, 29, 236, 6, 227, 121, 200, 80, 187, 84, 164, 157, 255, 197, 220, 204, 213, 41, 208, 83, 252, 1, 151, 142, 251, 166, 243, 76, 183, 30, 244, 75, 209, 119, 195, 9, 86, 81, 225, 184, 262, 10, 135, 20, 157, 154, 190, 21, 172, 83, 154, 25, 120, 58, 135, 112, 172, 12, 172, 38, 148, 67, 76, 68, 186, 33, 202, 130, 133, 17, 158, 33, 139, 86, 109, 1, 212, 114, 208, 162] TODO -[45, 55, 14, 65, 26, 56, 41, 58, 12, 53, 45, 55, 7, 45, 30, 62, 41, 56, 52, 69, 31, 35, 20, 44, 21, 70, 12, 68, 49, 75, 7, 32, 16, 74, 22, 74, 49, 56, 16, 49, 16, 75, 2, 48, 5, 47, 31, 51, 24, 52, 34, 46, 18, 73, 46, 66, 34, 46, 14, 62, 14, 53, 1, 50, 10, 54, 37, 50, 48, 55, 10, 41, 20, 59, 48] TODO -[1, 3, 2, 2] TODO -[11, 112, 107, 153, 40, 92, 48, 160, 78, 158, 63, 102, 85, 144, 70, 95, 78, 178, 70, 148, 8, 147, 127, 176, 78, 170, 2, 105, 83, 170, 3, 134, 126, 132, 16, 179, 54, 163, 14, 128, 23, 124, 24, 175, 63, 174, 12, 143, 35, 127, 39, 177, 20, 132, 77, 138, 72, 132, 10, 141, 59, 160, 22, 147, 16, 72, 12, 149, 28, 165, 28, 150, 36, 107, 45, 174, 46, 127, 75, 106, 98, 136, 44, 166, 33, 139, 58, 71, 38, 170, 54, 97, 90, 95, 26, 68, 47, 176, 72, 119, 53, 130, 7, 135, 68, 143, 90, 99, 40, 179, 100, 105, 73, 134, 82, 120, 100, 140, 94, 160, 10, 158, 17, 132, 22, 79, 38, 120, 45, 139, 63, 122, 77, 127, 99, 110, 44, 175, 81, 160, 72, 130, 6, 123, 100, 152, 82, 169, 104, 137, 50, 124, 24, 87, 16, 50, 47, 142, 44, 162, 22, 107, 75, 89, 82, 142, 138, 171, 162, 169, 136, 174, 15, 147, 10, 84, 53, 107, 98] TODO -[2, 4, 1, 3, 3] TODO -[14, 21, 8, 45, 3, 44, 6, 37, 8, 38, 13, 24, 6, 20, 2, 44, 19, 42, 24, 41, 29, 36, 6, 26, 8, 32, 6, 39, 5, 27, 7, 41, 18, 40, 26, 48, 37, 40, 4, 18, 11, 13, 13, 22, 2, 47, 3, 21] TODO -[34, 119, 99, 134, 37, 125, 61, 122, 24, 148, 36, 76, 22, 87, 54, 122, 29, 76, 63, 89, 44, 118, 29, 104, 92, 137, 10, 114, 70, 129, 67, 102, 86, 158, 112, 154, 139, 141, 117, 137, 14, 46, 29, 47, 17, 141, 28, 53, 20, 133, 84, 120, 33, 121, 66, 134, 74, 132, 29, 152, 49, 99, 45, 128, 55, 112, 91, 145, 43, 102, 93, 127, 60, 117, 38, 116, 10, 99, 21, 48, 29, 127, 48, 159, 43, 137, 56, 83, 8, 133, 37, 124, 15, 118, 69, 131, 34, 104, 4, 117, 6, 161, 104, 127, 47, 140, 114, 154, 73, 152, 72, 136, 49, 143, 34, 98, 6, 68, 52, 159, 82, 84, 40, 155, 68, 115, 6, 43, 8, 94, 32, 156, 28, 139, 42, 86, 48, 122, 58, 105, 95, 148, 57, 97, 42, 151, 16, 155, 38, 88, 72, 123, 4, 119, 14, 153, 80, 84, 10, 120, 25, 141, 26] TODO -[3, 35, 11, 40, 19, 39, 2, 28, 15, 28, 16, 17, 9, 25, 1, 23, 5, 19, 13, 13, 10, 35, 8, 30, 27, 29, 24, 37, 25, 30, 6, 26, 18, 23, 2, 30, 11, 28, 15, 31, 22, 42] TODO -[38, 154, 24, 193, 15, 179, 53, 145, 71, 143, 38, 188, 64, 205, 87, 179, 108, 163, 10, 71, 12, 191, 100, 174, 20, 53, 36, 47, 34, 112, 3, 40, 30, 190, 67, 153, 42, 84, 54, 176, 82, 201, 143, 144, 36, 142, 21, 96, 45, 168, 41, 195, 83, 127, 59, 90, 44, 45, 1, 178, 31, 196, 59, 87, 20, 90, 77, 102, 59, 202, 36, 167, 141, 196, 35, 116, 81, 157, 85, 207, 55, 184, 23, 163, 43, 187, 2, 188, 8, 84, 44, 196, 111, 162, 36, 91, 43, 62, 51, 114, 105, 175, 19, 97, 63, 162, 16, 134, 7, 176, 22, 146, 5, 101, 25, 148, 77, 204, 39, 201, 107, 165, 76, 89, 32, 146, 16, 146, 13, 146, 37, 134, 41, 128, 114, 118, 46, 193, 28, 146, 112, 150, 114, 195, 143, 199, 5, 183, 36, 171, 69, 161, 26, 118, 83, 208, 118, 199, 110, 130, 24, 101, 54, 175, 48, 140, 137, 202, 4, 141, 97, 179, 38, 175, 105, 116, 84, 179, 100, 130, 15, 187, 37, 196, 174, 200, 83, 165, 65, 207, 5, 201, 51, 134, 56, 189, 8, 171, 54, 82, 47, 193, 61, 62, 17, 189, 125, 157] TODO -[87, 133, 21, 112, 41, 93, 88, 126, 10, 89, 27, 43, 32, 89, 29, 79, 11, 69, 19, 130, 9, 120, 101, 101, 18, 130, 95, 132, 86, 103, 27, 128, 43, 119, 32, 98, 66, 110, 86, 130, 82, 109, 77, 96, 29, 130, 52, 94, 50, 88, 56, 80, 4, 118, 17, 49, 40, 91, 64, 75, 32, 82, 64, 136, 109, 128, 23, 127, 18, 128, 56, 78, 47, 51, 48, 126, 59, 122, 13, 127, 61, 66, 62, 124, 105, 108, 29, 85, 46, 106, 68, 71, 2, 63, 3, 65, 25, 121, 57, 81, 62, 88, 47, 102, 79, 94, 45, 128, 78, 109, 65, 112, 87, 125, 31, 51, 20, 128, 38, 135, 1, 92, 42, 43, 34, 49, 9, 29, 3, 118, 40, 119, 78, 119, 47, 119] TODO -[26, 76, 74, 77, 24, 30, 4, 69, 28, 36, 1, 30, 13, 37, 6, 77, 7, 70, 24, 61, 37, 46, 16, 41, 38, 45, 5, 44, 1, 60, 39, 46, 9, 47, 24, 28, 11, 52, 50, 65, 54, 74, 24, 71, 13, 74, 28, 72, 35, 60, 14, 61, 35, 44, 7, 57, 48, 72, 17, 64, 21, 29, 26, 43, 27, 52, 14, 71, 18, 46, 7, 56, 39, 76, 6, 68, 33] TODO -[3, 6, 1, 4, 2, 4] TODO -[49, 247, 10, 100, 12, 239, 40, 209, 100, 259, 148, 238, 79, 261, 102, 107, 5, 73, 52, 230, 59, 203, 94, 257, 126, 218, 121, 153, 57, 151, 129, 253, 29, 226, 70, 132, 129, 235, 104, 189, 132, 203, 137, 260, 151, 200, 167, 215, 1, 96, 73, 257, 181, 211, 137, 211, 65, 176, 106, 274, 106, 171, 140, 229, 33, 169, 63, 147, 93, 163, 99, 143, 28, 147, 16, 109, 49, 206, 64, 209, 100, 276, 155, 231, 80, 110, 99, 252, 133, 256, 75, 204, 41, 126, 113, 246, 64, 135, 131, 230, 7, 68, 61, 111, 18, 180, 28, 268, 2, 55, 25, 193, 139, 239, 141, 243, 80, 187, 141, 153, 68, 169, 113, 256, 170, 216, 106, 211, 139, 232, 135, 180, 39, 239, 82, 174, 114, 172, 129, 221, 84, 239, 159, 233, 63, 260, 18, 197, 105, 151, 57, 208, 96, 129, 110, 129, 105, 226, 15, 276, 157, 253, 36, 252, 53, 208, 107, 257, 74, 108, 78, 108, 52, 264, 160, 210, 165, 208, 166, 192, 43, 158, 120, 197, 159, 255, 125, 241, 162, 241, 182, 267, 141, 240, 222, 267, 79, 183, 169, 209, 164, 173, 101, 123, 45, 206, 119, 256, 133, 159, 126, 145, 44, 246, 90, 187, 81, 166, 39, 228, 84, 176, 1, 67, 52, 152, 3, 159, 142, 197, 46, 87, 20, 155, 34, 187, 35, 215, 92, 273, 113, 176, 44, 167, 10, 131, 43, 99, 76, 213, 76, 183, 180, 272, 109, 254, 19, 79, 57, 257, 193, 211, 31, 221, 13, 148, 6, 148, 30, 224, 211, 232, 72, 270, 236, 256] TODO -[19, 45, 24, 25, 6, 40, 33, 52, 39, 46, 45, 46, 8, 43, 17, 38, 1, 18, 5, 51, 40, 46, 23, 37, 6, 35, 31, 48, 36, 49, 10, 49, 20, 47, 20, 35, 23, 36, 30, 47, 31, 39, 2, 32, 3, 33, 17, 41, 25, 27, 1, 44, 9] TODO -[48, 110, 1, 82, 5, 60, 59, 61, 15, 86, 30, 70, 14, 103, 53, 70, 18, 67, 66, 109, 75, 105, 42, 78, 50, 61, 17, 66, 21, 32, 26, 55, 12, 64, 19, 84, 38, 103, 78, 100, 29, 78, 31, 111, 43, 72, 54, 70, 31, 50, 40, 73, 35, 66, 44, 101, 12, 93, 65, 82, 64, 99, 90, 105, 9, 99, 45, 72, 58, 101, 11, 101, 7, 28, 3, 76, 53, 99, 33, 78, 19, 73, 36, 67, 28, 104, 39, 76, 32, 53, 1, 93, 13, 67, 5, 98, 49, 78, 51, 70, 25, 98, 25, 88, 43, 107, 60, 92, 69, 77, 63] TODO -[1, 18, 4, 14, 8, 21, 10, 24, 16, 20, 1, 17, 2, 17, 11, 21, 13, 15, 1, 7, 3, 22, 19, 24] TODO -[31, 64, 35, 75, 26, 59, 5, 58, 19, 28, 6, 66, 9, 25, 23, 49, 29, 97, 5, 83, 67, 87, 3, 66, 26, 51, 30, 88, 25, 77, 2, 88, 34, 100, 33, 103, 33, 64, 41, 93, 30, 85, 52, 101, 28, 81, 33, 78, 51, 66, 60, 70, 8, 82, 30, 91, 51, 67, 8, 101, 34, 64, 49, 80, 31, 57, 51, 100, 9, 42, 22, 111, 30, 93, 9, 93, 24, 53, 19, 89, 9, 111, 7, 89, 61, 109, 67, 102, 77, 99, 5, 76, 6, 30, 18, 60, 30, 69, 16, 53, 45, 108, 57, 80, 34, 80, 20, 112, 42, 89, 26, 102] TODO -[16, 36, 11, 34, 13, 56, 13, 50, 35, 42, 7, 36, 12, 37, 27, 34, 14, 43, 17, 32, 2, 59, 28, 56, 35, 39, 15, 53, 8, 25, 1, 41, 22, 56, 18, 37, 2, 47, 15, 59, 27, 37, 30, 50, 35, 45, 28, 29, 25, 29, 28, 32, 23, 55, 12, 53, 7, 16, 9, 40] TODO -[3, 4, 1, 2] TODO -[1, 30, 22, 22, 13, 25, 6, 24, 19, 36, 25, 34, 31, 35, 20, 31, 14, 30, 11, 26, 10, 24, 7, 33, 13, 40, 2, 14, 12, 20, 8, 17, 2, 14, 1, 32, 15, 16, 9, 40] TODO -[5, 15, 5, 19, 7, 15, 12, 13, 1, 14, 2, 15, 1, 9, 4, 14, 11, 20, 7, 13] TODO -[17, 47, 19, 31, 6, 23, 18, 48, 8, 13, 8, 29, 7, 12, 7, 20, 12, 31, 13, 31, 5, 26, 7, 46, 18, 20, 3, 36, 10, 29, 22, 24, 17, 20, 1, 23, 18, 24, 15, 43, 5, 29, 9, 12, 7, 37, 5, 32] TODO -[6, 77, 16, 86, 57, 62, 17, 119, 5, 82, 55, 101, 10, 76, 22, 101, 46, 103, 69, 73, 47, 92, 25, 96, 72, 115, 23, 114, 58, 111, 16, 26, 4, 86, 20, 112, 40, 111, 35, 85, 53, 117, 25, 104, 9, 49, 35, 68, 36, 109, 47, 95, 15, 102, 20, 88, 60, 95, 52, 102, 14, 110, 32, 110, 13, 42, 4, 13, 13, 109, 56, 116, 69, 115, 30, 111, 54, 111, 62, 107, 48, 100, 25, 97, 16, 89, 54, 82, 7, 94, 93, 96, 9, 58, 36, 118, 45, 118, 52, 70, 46, 117, 75, 120, 89, 101, 2, 111, 88, 97, 13, 32, 28, 28, 7, 71, 17, 116, 17, 79, 72] TODO +[9, 31, 12, 23, 15, 15, 14, 1, 21, 15, 28, 1, 40, 7, 37, 30, 37, 23, 13, 12, 8, 36, 2, 11, 22, 38, 12, 25, 29, 4, 18, 9, 39, 28, 13, 19, 17, 22, 5, 31] TODO +[70, 135, 32, 120, 73, 30, 39, 165, 71, 43, 122, 163, 154, 73, 99, 28, 9, 146, 49, 77, 47, 163, 30, 107, 139, 67, 76, 164, 72, 60, 142, 162, 77, 147, 3, 52, 8, 64, 75, 100, 38, 150, 150, 112, 25, 9, 30, 93, 155, 37, 132, 49, 17, 69, 130, 9, 39, 143, 20, 39, 96, 152, 114, 70, 10, 35, 12, 81, 156, 3, 65, 126, 144, 55, 154, 114, 80, 140, 133, 157, 135, 66, 68, 58, 112, 117, 127, 15, 115, 52, 12, 69, 151, 151, 143, 58, 20, 30, 100, 57, 38, 75, 91, 97, 109, 129, 168, 156, 21, 17, 159, 101, 69, 1, 19, 108, 9, 124, 101, 94, 107, 40, 149, 9, 137, 53, 65, 134, 110, 139, 161, 165, 137, 52, 70, 155, 124, 60, 1, 142, 103, 153, 118, 24, 8, 72, 148, 119, 70, 2, 48, 137, 85, 71, 37, 144, 102, 126, 25, 67, 93, 54, 148, 157, 166, 26, 124, 45] TODO +[14, 23, 41, 31, 20, 7, 33, 32, 36, 27, 31, 12, 21, 36, 39, 20, 20, 7, 14, 8, 1, 36, 2, 11, 16, 19, 11, 33, 22, 42, 17, 32, 29, 19, 14, 7, 5, 15, 27, 1, 18, 27] TODO +[18, 3, 1, 32, 20, 8, 18, 11, 9, 17, 8, 18, 2, 31, 12, 17, 10, 10, 4, 10, 21, 14, 26, 7, 24, 12, 31, 30, 12, 20, 31, 13, 7] TODO +[64, 25, 5, 37, 13, 57, 30, 109, 44, 123, 132, 131, 62, 112, 45, 68, 59, 115, 128, 101, 62, 88, 135, 114, 30, 76, 43, 29, 126, 130, 15, 65, 102, 57, 64, 67, 48, 43, 18, 10, 131, 42, 66, 84, 27, 47, 42, 21, 99, 129, 103, 12, 109, 40, 44, 6, 85, 7, 56, 16, 111, 45, 80, 57, 84, 77, 43, 130, 134, 20, 90, 91, 62, 95, 80, 34, 53, 1, 124, 62, 91, 31, 21, 42, 89, 76, 8, 5, 111, 108, 64, 73, 87, 85, 49, 74, 54, 13, 35, 43, 5, 133, 106, 94, 35, 83, 39, 110, 49, 32, 13, 31, 34, 34, 50, 78, 100, 108, 48, 28, 82, 76, 109, 91, 96, 109, 14, 54, 49, 18, 3, 81, 132, 49, 10, 55] TODO +[6, 15, 20, 11, 4, 7, 2, 6, 18, 21, 3, 9, 14, 7, 15, 2, 21, 21, 9, 12, 5] TODO +[3, 1, 1] TODO +[13, 12, 1, 9, 3, 7, 14, 8, 13, 3, 10, 4, 3, 3] TODO +[356, 49, 78, 113, 95, 352, 201, 154, 186, 194, 81, 104, 287, 352, 403, 161, 203, 250, 84, 249, 283, 146, 33, 306, 188, 185, 319, 86, 347, 109, 222, 185, 166, 3, 243, 292, 206, 309, 62, 181, 159, 238, 205, 340, 387, 50, 58, 403, 295, 283, 392, 380, 68, 27, 242, 219, 173, 380, 375, 84, 218, 328, 104, 411, 164, 391, 156, 378, 146, 320, 98, 309, 222, 18, 285, 260, 304, 244, 47, 42, 119, 197, 386, 230, 388, 165, 28, 172, 265, 340, 27, 381, 334, 177, 183, 315, 20, 381, 315, 328, 21, 235, 230, 46, 80, 248, 184, 149, 189, 62, 378, 88, 329, 304, 155, 302, 279, 19, 350, 215, 82, 10, 110, 284, 157, 198, 21, 81, 247, 304, 340, 286, 277, 43, 214, 152, 231, 360, 399, 224, 362, 86, 301, 214, 10, 74, 254, 356, 241, 65, 93, 343, 38, 162, 264, 354, 269, 47, 380, 230, 25, 185, 146, 359, 247, 59, 134, 354, 101, 80, 306, 71, 340, 84, 128, 128, 83, 37, 125, 386, 349, 120, 228, 185, 375, 146, 357, 53, 149, 77, 133, 142, 96, 61, 172, 73, 335, 262, 245, 225, 94, 206, 374, 188, 378, 250, 216, 318, 326, 176, 191, 314, 43, 168, 57, 206, 231, 375, 398, 260, 287, 18, 100, 46, 8, 310, 65, 129, 95, 180, 394, 398, 265, 180, 20, 19, 334, 369, 376, 202, 335, 393, 195, 23, 146, 15, 193, 10, 15, 81, 240, 118, 93, 83, 34, 241, 34, 361, 367, 194, 12, 134, 109, 101, 347, 355, 53, 285, 133, 9, 273, 133, 236, 366, 278, 224, 265, 104, 348, 47, 138, 370, 193, 304, 190, 161, 22, 239, 21, 316, 390, 302, 194, 211, 269, 115, 152, 162, 393, 411, 48, 111, 405, 54, 245, 46, 236, 412, 251, 81, 137, 166, 83, 95, 339, 323, 396, 117, 100, 314, 182, 264, 163, 142, 380, 328, 394, 246, 355, 249, 31, 92, 394, 361, 32, 155, 169, 327, 68, 259, 152, 48, 184, 38, 264, 79, 90, 222, 132, 282, 253, 207, 233, 120, 388, 406, 389, 87, 119, 179, 338, 52, 52, 391, 61, 344, 382, 290, 369, 301, 359, 20, 92, 392, 227, 406, 18, 183, 302, 115, 270, 131, 327, 50, 373, 81, 30, 105, 229, 247, 354, 102, 377, 125, 10, 145, 181, 126, 115, 399, 43, 263, 277, 156, 128, 331, 221, 150, 266, 345, 368, 136, 17, 331, 328] TODO +[1] TODO +[3, 2, 6, 3, 4, 7, 4, 8] TODO +[9, 5, 4, 8, 10, 9, 4, 2, 3, 5] TODO +[5, 16, 55, 138, 147, 42, 33, 111, 150, 160, 204, 203, 249, 47, 262, 300, 247, 161, 217, 59, 225, 187, 17, 300, 8, 78, 239, 103, 269, 160, 107, 262, 55, 49, 274, 130, 233, 275, 96, 232, 76, 258, 292, 251, 176, 195, 218, 175, 282, 7, 29, 214, 194, 82, 253, 283, 221, 157, 277, 209, 232, 234, 163, 247, 86, 233, 181, 95, 123, 134, 63, 122, 167, 80, 214, 276, 278, 298, 131, 243, 116, 75, 173, 94, 112, 54, 78, 130, 46, 60, 275, 259, 55, 21, 27, 203, 40, 169, 88, 54, 151, 164, 54, 284, 142, 76, 146, 238, 130, 89, 128, 28, 87, 134, 61, 19, 153, 58, 28, 114, 194, 34, 239, 27, 15, 155, 23, 206, 267, 286, 42, 253, 283, 130, 159, 157, 121, 288, 16, 220, 228, 201, 140, 240, 185, 149, 122, 190, 128, 57, 179, 186, 7, 16, 193, 161, 3, 12, 4, 214, 16, 204, 73, 233, 109, 44, 255, 117, 235, 283, 75, 90, 171, 127, 254, 20, 205, 209, 232, 2, 107, 24, 26, 182, 232, 147, 33, 258, 87, 162, 67, 197, 10, 207, 222, 33, 39, 139, 113, 214, 289, 237, 107, 199, 52, 207, 244, 301, 267, 135, 15, 92, 71, 116, 167, 202, 5, 216, 4, 17, 83, 148, 128, 200, 272, 237, 217, 4, 222, 53, 131, 55, 88, 214, 139, 44, 138, 206, 230, 233, 17, 32, 258, 192, 54, 186, 146, 61, 78, 235, 96, 201, 19, 39, 137, 34, 85, 3, 105, 71, 279, 213, 30, 96, 262, 96, 176, 298, 270, 18, 184, 250, 64, 19, 271, 216, 244, 272, 300, 116, 228, 250, 233, 1, 128, 266, 233, 242, 258, 26, 63, 299, 127, 144, 250, 233, 68, 146, 30, 68, 43] TODO +[26, 7, 5, 11, 17, 17, 6, 5, 1, 16, 16, 1, 15, 5, 7, 10, 16, 6, 5, 9, 7, 17, 4, 8, 9, 2] TODO +[4, 38, 41, 56, 4, 56, 52, 17, 54, 25, 26, 67, 3, 43, 71, 29, 29, 47, 14, 52, 38, 17, 58, 20, 22, 53, 63, 1, 15, 30, 11, 58, 54, 14, 50, 64, 7, 64, 19, 29, 29, 57, 66, 27, 3, 65, 19, 53, 26, 25, 44, 37, 3, 18, 23, 58, 35, 66, 60, 52, 62, 15, 15, 11, 47, 42, 21, 33, 49, 36, 16] TODO +[394, 370, 337, 262, 68, 391, 188, 429, 294, 225, 424, 350, 20, 2, 59, 36, 376, 117, 295, 63, 274, 162, 130, 395, 74, 231, 18, 268, 72, 76, 293, 203, 383, 308, 292, 418, 393, 114, 129, 258, 178, 145, 108, 261, 281, 43, 178, 72, 411, 383, 198, 228, 135, 416, 133, 242, 325, 231, 270, 238, 175, 416, 329, 376, 360, 160, 420, 371, 189, 11, 410, 51, 317, 420, 372, 71, 380, 116, 387, 1, 246, 301, 400, 312, 52, 184, 425, 8, 55, 13, 427, 64, 55, 119, 237, 273, 85, 224, 349, 144, 259, 318, 404, 209, 224, 116, 217, 219, 313, 4, 20, 134, 71, 323, 116, 202, 60, 295, 419, 285, 130, 222, 360, 228, 365, 345, 45, 34, 332, 410, 64, 76, 343, 298, 357, 12, 350, 358, 315, 269, 71, 205, 343, 415, 280, 46, 222, 381, 116, 304, 127, 181, 185, 305, 45, 115, 320, 108, 127, 108, 139, 59, 111, 190, 67, 214, 257, 412, 263, 242, 203, 305, 304, 428, 226, 391, 323, 143, 88, 331, 66, 302, 87, 360, 35, 126, 328, 320, 332, 386, 46, 170, 224, 352, 307, 330, 409, 257, 81, 75, 154, 404, 56, 98, 176, 144, 31, 366, 317, 102, 221, 325, 229, 137, 349, 346, 10, 325, 155, 242, 405, 73, 162, 356, 373, 67, 235, 377, 158, 186, 103, 328, 339, 343, 149, 288, 320, 74, 322, 100, 61, 165, 416, 201, 156, 4, 105, 263, 164, 260, 379, 101, 87, 303, 285, 375, 377, 175, 244, 111, 329, 257, 266, 269, 381, 250, 166, 388, 161, 393, 80, 55, 330, 160, 384, 94, 234, 382, 79, 336, 94, 408, 44, 380, 139, 122, 235, 181, 367, 279, 262, 369, 185, 210, 64, 314, 285, 60, 162, 118, 40, 346, 359, 121, 310, 93, 159, 366, 286, 310, 307, 348, 141, 294, 307, 211, 353, 407, 144, 366, 184, 424, 224, 33, 285, 70, 253, 72, 73, 428, 144, 181, 247, 324, 207, 218, 299, 329, 13, 31, 130, 51, 5, 226, 110, 25, 211, 75, 406, 257, 147, 402, 139, 42, 213, 64, 284, 318, 249, 36, 347, 94, 46, 31, 334, 10, 415, 187, 170, 35, 109, 269, 82, 341, 81, 138, 87, 281, 384, 99, 238, 326, 293, 237, 427, 356, 371, 347, 23, 310, 298, 377, 40, 238, 277, 112, 75, 6, 227, 62, 376, 291, 418, 128, 104, 3, 106, 368, 72, 421, 325, 235, 418, 240, 223, 222, 321, 120, 120, 236, 417, 277, 102, 97, 407, 23, 306, 37, 364, 245, 224] TODO +[1, 2] TODO +[2, 8, 7, 4, 3, 8, 2, 1, 9] TODO +[138, 60, 104, 69, 4, 100, 129, 127, 36, 40, 100, 95, 115, 2, 48, 21, 117, 116, 158, 13, 79, 74, 57, 9, 30, 16, 4, 111, 3, 102, 114, 91, 99, 22, 109, 2, 30, 102, 149, 80, 48, 64, 50, 148, 41, 20, 22, 36, 94, 13, 71, 101, 45, 93, 58, 15, 109, 144, 58, 102, 50, 145, 137, 123, 44, 6, 79, 38, 65, 59, 67, 3, 67, 89, 13, 47, 125, 148, 157, 36, 115, 114, 43, 144, 61, 110, 40, 1, 38, 64, 114, 124, 72, 30, 34, 109, 133, 29, 36, 138, 36, 149, 149, 53, 11, 113, 47, 92, 114, 58, 135, 96, 26, 8, 40, 47, 105, 78, 153, 23, 57, 81, 49, 140, 126, 126, 40, 57, 98, 12, 105, 148, 23, 88, 54, 154, 112, 153, 75, 28, 111, 9, 27, 61, 66, 111, 39, 108, 152, 59, 37, 11, 122, 106, 122, 112, 31, 6] TODO +[124, 132, 34, 110, 109, 87, 134, 79, 75, 7, 136, 75, 35, 130, 51, 7, 95, 171, 14, 57, 155, 153, 106, 39, 17, 16, 37, 57, 168, 124, 124, 71, 185, 158, 15, 149, 130, 119, 23, 91, 27, 110, 165, 30, 28, 140, 77, 35, 68, 37, 99, 102, 17, 31, 90, 159, 165, 21, 138, 96, 38, 68, 1, 81, 22, 60, 176, 175, 159, 57, 120, 127, 6, 10, 56, 66, 69, 91, 134, 16, 145, 34, 150, 151, 56, 82, 140, 39, 96, 14, 163, 17, 142, 127, 134, 61, 52, 79, 65, 41, 65, 117, 76, 138, 15, 58, 37, 144, 80, 2, 115, 70, 62, 114, 80, 5, 79, 94, 153, 46, 68, 47, 21, 146, 123, 32, 147, 140, 166, 96, 78, 157, 185, 73, 172, 27, 110, 49, 34, 106, 147, 146, 6, 54, 120, 149, 28, 1, 143, 82, 5, 15, 108, 5, 134, 123, 49, 129, 102, 87, 62, 46, 125, 156, 160, 155, 47, 170, 114, 38, 180, 93, 35, 68, 145, 101, 94, 149, 151, 89, 156, 58, 47, 47, 174] TODO +[13, 8, 6, 22, 6, 16, 5, 21, 8, 7, 5, 2, 5, 15, 21, 6, 9, 1, 16, 24, 22, 2, 4, 13] TODO +[16, 15, 9, 12, 9, 13, 6, 15, 2, 3, 6, 8, 1, 16, 10, 13] TODO +[10, 11, 5, 3, 12, 2, 6, 6, 6, 9, 10, 10, 4] TODO +[26, 23, 8, 7, 6, 6, 21, 20, 33, 19, 15, 20, 6, 37, 21, 2, 2, 18, 37, 15, 15, 30, 10, 15, 17, 7, 37, 25, 30, 15, 24, 27, 5, 3, 4, 17, 10] TODO +[3, 4, 3, 1] TODO +[3, 2, 9, 4, 2, 8, 2, 5, 8] TODO +[74, 89, 209, 236, 30, 12, 217, 276, 142, 205, 126, 234, 228, 126, 142, 247, 102, 244, 205, 161, 22, 33, 72, 258, 80, 267, 194, 11, 42, 44, 254, 246, 127, 67, 232, 92, 44, 173, 229, 164, 226, 259, 48, 178, 58, 170, 107, 3, 198, 217, 217, 188, 94, 51, 191, 194, 237, 175, 155, 137, 165, 206, 235, 18, 162, 96, 184, 109, 226, 261, 39, 132, 97, 238, 252, 179, 88, 218, 198, 148, 138, 169, 94, 118, 225, 115, 119, 134, 119, 50, 166, 240, 67, 125, 273, 187, 131, 36, 68, 2, 273, 41, 40, 126, 102, 228, 82, 17, 52, 36, 124, 61, 179, 71, 13, 176, 71, 3, 267, 209, 2, 239, 227, 104, 49, 58, 225, 133, 30, 215, 7, 140, 46, 268, 134, 154, 35, 9, 77, 116, 180, 85, 195, 134, 224, 218, 17, 41, 244, 208, 57, 170, 207, 181, 10, 103, 225, 74, 28, 24, 231, 137, 109, 243, 63, 98, 5, 91, 268, 149, 72, 33, 258, 138, 23, 260, 31, 59, 119, 264, 198, 177, 2, 266, 71, 116, 213, 83, 182, 253, 165, 17, 231, 90, 220, 195, 4, 234, 174, 18, 205, 189, 170, 68, 144, 250, 162, 25, 251, 274, 233, 3, 77, 267, 125, 152, 158, 115, 89, 3, 144, 241, 150, 71, 190, 170, 148, 14, 152, 211, 56, 108, 151, 99, 184, 176, 56, 144, 250, 166, 123, 90, 31, 146, 46, 31, 253, 238, 87, 136, 250, 9, 94, 35, 75, 247, 212, 252, 263, 48, 193, 196, 192, 106, 124, 109, 52, 266, 172, 96, 209, 23, 213, 137, 270, 16] TODO +[8, 5, 4, 5, 9, 8, 2, 7, 6] TODO +[38, 28, 89, 81, 31, 94, 80, 92, 2, 31, 87, 43, 34, 84, 21, 56, 47, 80, 61, 41, 87, 40, 46, 35, 79, 81, 93, 37, 39, 10, 78, 47, 8, 32, 12, 37, 38, 14, 17, 34, 95, 48, 40, 73, 27, 56, 88, 44, 69, 8, 50, 79, 63, 81, 79, 39, 72, 51, 11, 68, 76, 36, 89, 19, 76, 8, 70, 54, 80, 75, 19, 85, 16, 30, 58, 15, 8, 83, 21, 57, 93, 3, 71, 19, 13, 85, 44, 67, 56, 48, 41, 89, 29, 53, 2] TODO +[20, 32, 32, 3, 23, 2, 13, 34, 7, 14, 18, 34, 15, 26, 24, 27, 34, 15, 10, 18, 7, 29, 20, 15, 24, 3, 29, 9, 14, 23, 23, 28, 17, 34, 23, 33, 11] TODO +[2, 3, 1, 4, 2, 3, 6] TODO +[223, 141, 189, 106, 159, 157, 139, 54, 173, 13, 113, 154, 69, 201, 60, 208, 155, 211, 10, 178, 210, 50, 80, 188, 77, 139, 184, 97, 176, 217, 37, 56, 182, 58, 164, 6, 137, 175, 38, 174, 129, 173, 227, 53, 171, 2, 109, 47, 111, 150, 33, 164, 83, 218, 9, 217, 106, 215, 229, 209, 93, 164, 215, 163, 160, 25, 114, 23, 17, 7, 194, 21, 224, 217, 169, 165, 12, 213, 174, 89, 143, 98, 56, 67, 201, 220, 90, 134, 39, 52, 167, 158, 229, 70, 145, 229, 150, 70, 43, 51, 194, 209, 135, 193, 88, 230, 62, 122, 65, 183, 9, 171, 17, 25, 174, 37, 32, 48, 188, 222, 229, 16, 26, 98, 91, 114, 61, 206, 41, 103, 205, 72, 102, 205, 115, 191, 113, 16, 89, 109, 59, 85, 181, 62, 160, 115, 11, 148, 163, 48, 20, 125, 8, 170, 184, 8, 138, 218, 31, 101, 125, 11, 106, 75, 124, 113, 105, 201, 191, 62, 8, 163, 35, 127, 43, 193, 64, 117, 112, 189, 218, 146, 21, 23, 89, 24, 32, 58, 51, 232, 120, 108, 72, 208, 116, 36, 4, 176, 213, 204, 206, 173, 210, 96, 138, 67, 161, 68, 51, 104, 126, 86, 177, 1, 153, 196, 11, 211, 71, 87, 218, 197, 145, 88, 184, 202, 102, 4, 70, 163, 28, 14] TODO +[14, 9, 2, 1, 7, 18, 9, 4, 14, 16, 6, 15, 8, 4, 13, 15, 9, 2] TODO +[4, 3, 5, 4, 1] TODO +[186, 6, 173, 10, 59, 123, 62, 17, 194, 123, 195, 231, 226, 154, 190, 22, 8, 92, 143, 44, 84, 196, 207, 68, 144, 152, 211, 199, 143, 3, 32, 19, 191, 155, 40, 155, 72, 143, 69, 23, 112, 60, 60, 120, 95, 233, 5, 166, 103, 102, 130, 15, 17, 71, 211, 124, 127, 105, 187, 100, 85, 76, 70, 85, 1, 15, 161, 112, 36, 15, 10, 118, 151, 15, 32, 121, 31, 114, 29, 37, 202, 163, 184, 13, 96, 197, 54, 56, 114, 23, 85, 24, 213, 205, 124, 219, 131, 28, 83, 93, 210, 190, 3, 117, 6, 9, 189, 149, 120, 150, 154, 55, 220, 217, 234, 96, 167, 69, 78, 139, 150, 27, 34, 54, 130, 104, 215, 14, 138, 26, 223, 88, 138, 41, 74, 103, 234, 141, 215, 220, 87, 25, 153, 86, 101, 171, 35, 66, 1, 158, 166, 79, 7, 189, 150, 85, 56, 74, 111, 195, 188, 183, 133, 34, 59, 106, 59, 158, 179, 183, 60, 42, 38, 225, 70, 22, 142, 7, 166, 127, 140, 8, 48, 109, 107, 105, 144, 26, 166, 99, 2, 67, 143, 198, 34, 11, 155, 20, 88, 142, 4, 143, 193, 236, 23, 184, 153, 7, 193, 98, 44, 200, 81, 73, 116, 34, 179, 122, 213, 100, 87, 223, 147, 121, 217, 198, 135, 110, 30, 128, 214, 91, 43, 192, 60, 4] TODO +[4, 4, 4, 2, 4, 1] TODO +[14, 9, 8, 10, 28, 22, 17, 25, 7, 37, 14, 3, 27, 8, 1, 18, 13, 37, 5, 6, 34, 23, 24, 10, 19, 36, 21, 35, 32, 35, 31, 31, 23, 18, 5, 28, 22, 23, 20] TODO +[28, 30, 29, 29, 32, 34, 13, 27, 9, 31, 19, 14, 21, 16, 10, 21, 14, 22, 17, 17, 6, 30, 4, 1, 33, 22, 5, 25, 11, 27, 3, 33, 13, 13, 32, 11] TODO +[20, 6, 18, 1, 26, 9, 5, 2, 11, 9, 20, 2, 25, 24, 10, 16, 13, 27, 8, 1, 18, 25, 20, 26, 17, 19, 27] TODO +[31, 29, 20, 28, 32, 54, 15, 22, 36, 24, 6, 29, 53, 41, 59, 20, 57, 58, 11, 8, 49, 58, 57, 47, 27, 8, 20, 9, 35, 5, 5, 57, 52, 37, 37, 23, 24, 11, 53, 40, 12, 14, 34, 59, 11, 27, 59, 12, 36, 46, 43, 59, 55, 4, 52, 41, 44, 29, 51, 62, 17, 21] TODO +[47, 39, 13, 43, 42, 17, 31, 17, 10, 49, 14, 40, 36, 3, 34, 35, 38, 42, 10, 7, 42, 32, 47, 23, 4, 48, 3, 12, 47, 28, 10, 37, 42, 46, 33, 22, 45, 46, 48, 49, 38, 17, 21, 5, 7, 14, 22, 40, 6] TODO +[14, 32, 6, 18, 28, 41, 6, 20, 43, 29, 14, 15, 21, 5, 21, 24, 29, 42, 15, 36, 20, 17, 27, 33, 14, 44, 11, 7, 26, 1, 13, 2, 42, 39, 26, 40, 4, 24, 2, 35, 18, 34, 44, 45, 36, 38] TODO +[22, 67, 59, 57, 5, 52, 41, 51, 37, 7, 8, 66, 12, 14, 30, 58, 4, 19, 40, 35, 3, 63, 3, 30, 25, 14, 2, 39, 48, 46, 21, 39, 6, 34, 13, 10, 11, 44, 64, 45, 7, 9, 68, 50, 62, 59, 40, 67, 22, 1, 58, 42, 68, 48, 50, 15, 53, 61, 33, 54, 9, 55, 19, 64, 68, 48, 63, 34] TODO +[44, 150, 22, 176, 65, 10, 11, 21, 139, 156, 158, 112, 51, 112, 147, 113, 19, 14, 124, 179, 140, 108, 21, 212, 154, 24, 48, 80, 115, 205, 200, 23, 51, 124, 211, 31, 12, 31, 208, 11, 7, 78, 38, 28, 193, 200, 59, 183, 49, 96, 166, 57, 95, 166, 51, 122, 175, 7, 66, 60, 173, 82, 207, 112, 125, 9, 203, 110, 181, 134, 159, 182, 56, 81, 99, 90, 2, 67, 18, 179, 169, 117, 39, 18, 151, 171, 181, 17, 142, 155, 205, 102, 197, 107, 88, 44, 161, 64, 111, 112, 199, 149, 125, 143, 88, 5, 164, 14, 176, 19, 198, 175, 41, 19, 31, 9, 90, 78, 199, 22, 152, 25, 41, 81, 191, 112, 166, 196, 142, 99, 67, 93, 115, 185, 169, 87, 39, 9, 157, 189, 204, 100, 200, 179, 170, 43, 47, 35, 84, 197, 28, 148, 186, 49, 60, 6, 171, 105, 101, 96, 105, 24, 186, 11, 169, 32, 176, 88, 160, 35, 168, 66, 62, 13, 38, 51, 35, 195, 161, 121, 28, 181, 12, 13, 139, 119, 82, 127, 45, 143, 144, 86, 176, 82, 102, 5, 45, 60, 52, 142, 126, 56, 52, 160, 70, 114, 192, 33, 78, 11, 123, 60] TODO +[77, 120, 62, 86, 70, 117, 113, 26, 9, 26, 86, 63, 89, 97, 121, 66, 11, 44, 91, 42, 10, 102, 88, 112, 87, 41, 57, 46, 108, 42, 51, 105, 56, 68, 51, 33, 109, 44, 79, 82, 111, 8, 90, 61, 70, 105, 60, 95, 30, 22, 35, 66, 101, 83, 109, 51, 118, 120, 48, 50, 86, 27, 45, 44, 10, 33, 3, 85, 47, 105, 14, 8, 4, 22, 32, 107, 88, 20, 110, 84, 97, 70, 86, 106, 44, 28, 109, 15, 103, 10, 106, 54, 56, 119, 23, 70, 15, 92, 118, 9, 120, 42, 92, 55, 6, 101, 87, 12, 95, 64, 37, 70, 9, 22, 99, 78, 121, 80, 44, 44, 101] TODO +[18, 68, 52, 47, 8, 81, 6, 53, 22, 75, 19, 28, 3, 32, 72, 69, 55, 20, 81, 48, 80, 2, 66, 10, 48, 13, 2, 12, 33, 72, 73, 56, 69, 50, 42, 41, 68, 80, 42, 38, 54, 10, 69, 26, 1, 67, 63, 69, 56, 14, 27, 62, 2, 20, 83, 54, 33, 42, 3, 78, 62, 31, 49, 75, 55, 68, 46, 2, 22, 1, 62, 41, 82, 52, 40, 37, 51, 65, 56, 27, 75, 55, 30, 55] TODO +[4, 6, 6, 1, 5, 4, 9, 1, 9, 7, 12, 3, 6, 3, 8] TODO +[21, 21, 18, 13, 22, 23, 14, 6, 27, 4, 17, 16, 10, 13, 11, 20, 25, 1, 19, 2, 27, 19, 8, 10, 24, 6, 27] TODO +[122, 86, 78, 17, 71, 31, 74, 104, 99, 68, 86, 105, 118, 118, 106, 17, 100, 16, 13, 117, 32, 58, 97, 118, 86, 25, 76, 22, 2, 32, 120, 16, 82, 45, 29, 17, 52, 56, 100, 46, 99, 124, 67, 82, 15, 90, 60, 103, 115, 120, 104, 116, 52, 109, 98, 105, 95, 11, 102, 109, 61, 79, 91, 102, 110, 19, 25, 47, 10, 3, 40, 30, 99, 66, 9, 39, 31, 35, 70, 95, 92, 77, 29, 63, 113, 92, 48, 120, 85, 39, 87, 26, 111, 79, 52, 88, 38, 23, 61, 76, 32, 100, 4, 115, 17, 121, 57, 52, 35, 78, 31, 122, 33, 64, 78, 62, 14, 59, 34, 74, 79, 48, 43, 39] TODO +[26, 20, 34, 37, 46, 57, 44, 78, 23, 34, 67, 12, 49, 5, 31, 46, 9, 49, 63, 2, 24, 12, 70, 17, 72, 21, 49, 52, 11, 70, 6, 4, 78, 30, 20, 30, 46, 20, 50, 24, 25, 21, 61, 18, 75, 27, 64, 74, 43, 39, 1, 68, 74, 16, 22, 51, 18, 19, 20, 58, 75, 55, 30, 51, 72, 32, 8, 17, 61, 16, 3, 4, 44, 72, 78, 14, 70, 63] TODO +[11, 15, 3, 5, 6, 9, 14, 16, 9, 5, 11, 13, 13, 7, 9, 5] TODO +[12, 96, 29, 23, 81, 84, 70, 52, 68, 77, 57, 87, 104, 110, 1, 10, 6, 108, 60, 34, 33, 83, 21, 100, 95, 81, 7, 2, 67, 84, 27, 68, 2, 40, 63, 99, 42, 80, 44, 4, 83, 117, 105, 68, 7, 77, 16, 36, 20, 21, 30, 20, 97, 97, 21, 55, 6, 56, 103, 71, 44, 63, 10, 104, 12, 69, 54, 112, 89, 56, 90, 43, 42, 29, 65, 9, 2, 100, 69, 48, 43, 31, 36, 21, 5, 84, 38, 115, 66, 8, 107, 107, 48, 3, 47, 52, 37, 45, 89, 57, 27, 33, 23, 87, 90, 114, 106, 11, 110, 52, 16, 76, 78, 55, 42, 58, 109] TODO +[79, 86, 48, 84, 48, 67, 37, 79, 62, 7, 93, 33, 4, 88, 49, 48, 77, 95, 36, 4, 53, 11, 37, 33, 71, 74, 95, 68, 1, 17, 21, 45, 28, 77, 12, 35, 41, 16, 31, 40, 11, 66, 48, 8, 40, 5, 69, 58, 21, 86, 28, 16, 23, 7, 44, 45, 1, 35, 7, 81, 68, 16, 67, 8, 26, 10, 81, 14, 22, 36, 40, 40, 27, 84, 68, 10, 24, 3, 16, 21, 68, 41, 36, 43, 13, 41, 80, 39, 19, 79, 23, 81, 36, 57, 87, 27] TODO +[57, 59, 47, 13, 57, 35, 54, 48, 36, 42, 23, 12, 42, 20, 10, 30, 47, 26, 12, 53, 54, 36, 40, 36, 51, 8, 59, 37, 20, 52, 38, 8, 37, 16, 36, 41, 45, 28, 32, 50, 49, 59, 7, 24, 5, 31, 13, 35, 5, 22, 14, 9, 21, 56, 30, 15, 30, 1, 23] TODO +[3, 2, 9, 13, 8, 9, 3, 11, 11, 4, 3, 1, 13, 7, 7] TODO +[2, 4, 3, 5, 3, 6, 1, 5, 6] TODO +[2, 3, 2] TODO +[93, 133, 163, 91, 77, 149, 103, 127, 123, 222, 107, 102, 96, 85, 222, 219, 192, 143, 136, 201, 198, 18, 144, 208, 142, 179, 150, 41, 44, 83, 99, 218, 105, 213, 220, 60, 94, 142, 177, 164, 13, 140, 89, 180, 159, 115, 90, 187, 194, 173, 100, 116, 148, 222, 197, 163, 163, 71, 53, 22, 224, 172, 39, 103, 34, 130, 31, 64, 21, 177, 205, 105, 41, 63, 137, 217, 175, 44, 76, 3, 93, 181, 16, 174, 3, 166, 91, 77, 163, 149, 139, 167, 58, 31, 211, 112, 60, 63, 191, 65, 150, 65, 166, 222, 42, 29, 214, 63, 207, 40, 106, 111, 140, 126, 120, 2, 218, 54, 65, 36, 4, 199, 203, 31, 23, 209, 8, 106, 114, 142, 133, 93, 200, 1, 152, 82, 100, 46, 98, 149, 152, 203, 28, 222, 201, 137, 86, 172, 96, 42, 165, 142, 124, 36, 6, 32, 186, 80, 70, 2, 144, 140, 114, 55, 94, 220, 128, 113, 210, 12, 91, 146, 2, 16, 114, 95, 147, 211, 35, 95, 204, 195, 145, 62, 31, 26, 19, 174, 112, 156, 126, 140, 14, 182, 107, 210, 180, 5, 110, 191, 20, 128, 85, 160, 48, 179, 210, 110, 184, 151, 123, 55, 61, 99, 9, 6, 201, 13, 61, 137, 27, 207, 162, 111] TODO +[18, 3, 9, 38, 32, 55, 35, 17, 2, 27, 47, 9, 39, 31, 23, 47, 21, 27, 9, 45, 1, 32, 35, 4, 36, 47, 21, 36, 23, 24, 27, 9, 1, 26, 19, 51, 21, 30, 20, 27, 1, 36, 6, 15, 42, 34, 53, 60, 41, 28, 51, 49, 39, 38, 26, 47, 39, 27, 26, 19] TODO +[3, 4, 2, 10, 2, 9, 1, 2, 12, 7, 1, 13, 5, 9, 3] TODO +[2, 37, 38, 29, 39, 7, 27, 8, 1, 60, 36, 37, 32, 37, 53, 35, 8, 19, 12, 12, 35, 29, 11, 13, 31, 22, 3, 13, 12, 12, 30, 56, 58, 54, 8, 18, 38, 29, 24, 34, 46, 24, 61, 7, 42, 56, 11, 9, 3, 56, 30, 12, 35, 1, 48, 52, 23, 11, 40, 26, 63, 22, 4] TODO +[37, 21, 13, 29, 18, 26, 24, 6, 27, 1, 8, 19, 28, 38, 8, 33, 27, 34, 30, 27, 18, 2, 25, 36, 30, 33, 14, 36, 4, 15, 22, 30, 13, 6, 29, 23, 31, 34, 14] TODO +[20, 24, 10, 9, 19, 13, 6, 17, 7, 16, 2, 25, 11, 8, 10, 8, 19, 17, 26, 18, 18, 9, 21, 11, 5, 1, 4] TODO +[1, 2, 6, 3, 4, 1] TODO +[122, 157, 195, 153, 185, 5, 167, 138, 196, 166, 148, 185, 75, 23, 58, 148, 169, 59, 57, 106, 37, 79, 84, 86, 161, 56, 133, 57, 11, 12, 41, 143, 2, 138, 69, 26, 51, 171, 21, 126, 172, 84, 189, 54, 168, 13, 40, 188, 95, 52, 93, 58, 35, 176, 38, 13, 109, 116, 86, 39, 129, 1, 12, 110, 74, 152, 193, 18, 179, 195, 62, 11, 23, 186, 49, 146, 38, 133, 154, 91, 178, 44, 91, 104, 187, 94, 23, 39, 125, 104, 84, 132, 28, 78, 173, 37, 87, 129, 140, 72, 144, 45, 48, 77, 165, 181, 124, 15, 2, 80, 162, 14, 22, 62, 97, 93, 112, 21, 21, 11, 140, 92, 163, 107, 137, 28, 156, 83, 29, 81, 6, 152, 195, 4, 136, 1, 124, 129, 100, 37, 93, 133, 81, 152, 146, 101, 69, 96, 67, 95, 110, 24, 77, 135, 183, 53, 187, 141, 16, 151, 11, 6, 5, 119, 39, 66, 177, 54, 16, 77, 153, 66, 123, 146, 30, 122, 87, 91, 190, 67, 152, 97, 35, 68, 100, 41, 72, 189, 139, 166, 4, 48, 151, 106, 117, 131, 101] TODO +[86, 67, 91, 16, 65, 72, 72, 110, 1, 43, 101, 104, 81, 101, 108, 53, 52, 106, 84, 15, 98, 64, 65, 105, 53, 69, 22, 38, 51, 111, 42, 28, 21, 106, 100, 22, 53, 114, 70, 42, 79, 102, 39, 61, 109, 43, 48, 25, 54, 20, 78, 44, 42, 66, 12, 48, 114, 32, 48, 99, 37, 6, 84, 67, 27, 9, 34, 60, 14, 109, 55, 77, 110, 42, 16, 95, 4, 30, 1, 2, 55, 28, 40, 55, 75, 72, 76, 20, 10, 66, 92, 19, 51, 29, 71, 60, 109, 74, 34, 56, 6, 37, 17, 109, 39, 39, 111, 54, 28, 5, 34, 61, 23, 11] TODO +[53, 57, 79, 77, 36, 59, 56, 76, 10, 57, 19, 17, 80, 86, 8, 85, 74, 3, 9, 5, 66, 61, 3, 48, 70, 89, 1, 16, 11, 76, 57, 63, 14, 7, 76, 81, 87, 69, 42, 4, 32, 63, 69, 45, 7, 3, 44, 6, 53, 59, 6, 83, 58, 14, 52, 39, 89, 4, 87, 86, 43, 76, 12, 14, 44, 26, 81, 3, 64, 22, 3, 44, 48, 72, 58, 47, 30, 8, 37, 68, 76, 28, 25, 2, 59, 43, 43, 8, 74, 87] TODO +[6, 6, 5, 5, 1, 2] TODO [1, 3, 1] TODO -[4, 9, 9, 14, 8, 9, 4, 16, 3, 14, 7, 21, 6, 20, 11, 20, 1, 16, 7, 12, 9] TODO -[5, 9, 1, 6, 2, 7, 6, 10, 8, 8] TODO -[112, 112, 58, 103, 53, 92, 55, 65, 56, 59, 44, 78, 8, 68, 25, 49, 49, 93, 89, 90, 22, 41, 4, 58, 39, 113, 59, 62, 16, 82, 19, 101, 26, 69, 11, 91, 40, 46, 21, 117, 45, 117, 18, 40, 13, 103, 38, 80, 4, 73, 62, 111, 66, 80, 10, 115, 100, 113, 35, 69, 46, 115, 84, 112, 54, 85, 21, 81, 49, 108, 70, 104, 49, 99, 36, 104, 82, 91, 1, 40, 25, 99, 38, 57, 32, 58, 13, 52, 31, 44, 34, 115, 28, 42, 27, 84, 18, 105, 73, 86, 47, 55, 17, 118, 26, 51, 31, 100, 21, 77, 65, 96, 1, 79, 31, 95, 4, 69] TODO -[14, 36, 22, 30, 14, 38, 28, 52, 17, 44, 10, 53, 22, 42, 4, 31, 3, 35, 15, 27, 1, 45, 7, 57, 45, 59, 17, 55, 52, 53, 9, 55, 24, 25, 20, 32, 23, 37, 27, 33, 1, 21, 10, 28, 13, 36, 18, 31, 30, 39, 36, 38, 7, 18, 5, 38, 10, 47, 15, 23, 18] TODO -[10, 11, 1, 7, 4, 9, 3, 8, 2, 6, 5] TODO -[6, 34, 10, 32, 20, 68, 47, 51, 1, 52, 14, 59, 47, 51, 22, 55, 22, 68, 13, 68, 47, 53, 53, 56, 26, 66, 40, 61, 4, 55, 26, 54, 8, 32, 13, 41, 28, 67, 8, 69, 42, 53, 18, 24, 21, 59, 30, 32, 19, 54, 5, 55, 39, 67, 46, 55, 33, 64, 20, 40, 7, 48, 23, 31, 14, 56, 29, 58, 1, 56] TODO -[1, 4, 2, 2, 1, 5] TODO -[47, 73, 38, 62, 1, 28, 8, 55, 50, 82, 2, 78, 40, 71, 24, 72, 11, 84, 14, 47, 23, 47, 38, 67, 26, 59, 36, 47, 40, 74, 43, 113, 1, 81, 22, 89, 57, 77, 27, 73, 45, 85, 4, 78, 68, 113, 77, 109, 14, 76, 39, 85, 27, 38, 11, 32, 5, 94, 9, 57, 53, 78, 62, 107, 31, 102, 7, 94, 5, 88, 25, 55, 8, 111, 86, 97, 37, 86, 22, 98, 39, 94, 21, 59, 50, 72, 11, 77, 29, 86, 15, 95, 32, 79, 46, 100, 42, 80, 55, 74, 16, 112, 47, 58, 26, 108, 72, 102, 20, 73, 44, 113, 17, 92] TODO -[11, 30, 7, 12, 12, 20, 14, 36, 10, 34, 23, 34, 7, 22, 2, 42, 9, 32, 20, 24, 9, 30, 10, 29, 3, 34, 23, 39, 13, 27, 26, 36, 9, 24, 22, 37, 9, 36, 22, 40, 35, 39] TODO -[10, 18, 4, 7, 7, 16, 2, 10, 8, 13, 9, 12, 8, 9, 8, 9, 7, 14] TODO -[48, 80, 41, 70, 64, 83, 5, 53, 29, 72, 53, 85, 57, 65, 14, 80, 22, 97, 24, 87, 33, 66, 46, 82, 30, 94, 37, 40, 9, 84, 5, 41, 21, 76, 21, 55, 17, 37, 34, 74, 59, 76, 30, 55, 47, 52, 49, 50, 23, 61, 43, 80, 77, 78, 13, 84, 11, 51, 25, 31, 24, 81, 8, 72, 33, 91, 31, 76, 39, 74, 65, 70, 14, 62, 6, 90, 10, 60, 58, 89, 1, 54, 27, 95, 30, 73, 27, 85, 37, 90, 7, 54, 43, 68, 48, 100, 63, 90, 77, 102, 73, 97, 71] TODO -[92, 309, 50, 292, 30, 254, 131, 226, 58, 205, 36, 280, 150, 259, 88, 241, 4, 299, 72, 251, 137, 320, 187, 313, 113, 335, 11, 232, 34, 157, 36, 241, 55, 290, 121, 337, 141, 267, 79, 352, 6, 361, 23, 296, 88, 355, 154, 176, 94, 206, 106, 199, 118, 358, 157, 341, 172, 188, 143, 361, 120, 297, 182, 343, 51, 329, 140, 208, 163, 245, 156, 233, 151, 272, 158, 196, 33, 56, 53, 309, 194, 325, 286, 300, 273, 350, 119, 168, 156, 321, 156, 258, 128, 303, 158, 246, 130, 352, 98, 320, 135, 223, 173, 307, 171, 281, 154, 344, 201, 211, 31, 155, 84, 270, 162, 271, 143, 156, 38, 364, 2, 264, 52, 353, 116, 225, 185, 223, 87, 188, 169, 175, 5, 276, 152, 335, 260, 362, 288, 360, 62, 199, 136, 334, 29, 328, 155, 229, 87, 200, 80, 352, 82, 316, 42, 214, 66, 239, 124, 251, 56, 337, 105, 330, 87, 275, 32, 286, 38, 366, 136, 365, 149, 230, 62, 185, 64, 365, 183, 196, 112, 189, 75, 140, 31, 118, 103, 191, 12, 276, 37, 155, 38, 336, 87, 258, 84, 354, 246, 288, 252, 270, 124, 144, 113, 196, 35, 109, 44, 341, 83, 272, 134, 314, 91, 234, 73, 220, 33, 316, 93, 310, 158, 245, 216, 338, 80, 329, 156, 239, 64, 285, 146, 330, 105, 239, 173, 286, 189, 285, 115, 144, 65, 202, 136, 344, 43, 319, 283, 347, 222, 299, 93, 314, 55, 295, 23, 216, 12, 249, 233, 277, 177, 284, 6, 88, 50, 325, 4, 247, 102, 138, 4, 256, 89, 238, 100, 112, 18, 207, 85, 159, 45, 244, 84, 188, 26, 304, 145, 309, 222, 365, 95, 329, 208, 251, 50, 76, 59, 327, 212, 348, 55, 235, 44, 129, 81, 311, 243, 347, 50, 337, 217, 314, 37, 246, 165, 231, 76, 311, 54, 285, 10, 237, 176, 271, 196, 289, 226, 287, 131, 247, 161, 341, 130, 257, 176, 239, 205, 256, 135, 215, 166, 344, 79, 204, 56, 265, 10, 245, 23, 203, 78, 319, 77, 221, 48, 328, 91, 265, 8, 135, 132, 278, 60, 331, 4] TODO -[108, 138, 31, 114, 14, 110, 70, 145, 102, 136, 46, 153, 38, 130, 4, 91, 42, 106, 24, 146, 82, 119, 79, 101, 23, 92, 37, 53, 20, 53, 37, 43, 2, 109, 69, 111, 39, 78, 46, 112, 63, 136, 11, 80, 69, 70, 35, 148, 81, 107, 85, 102, 27, 93, 87, 148, 111, 123, 25, 151, 24, 149, 67, 144, 13, 96, 18, 142, 13, 129, 34, 161, 9, 103, 56, 145, 60, 112, 80, 117, 80, 81, 54, 141, 1, 123, 70, 125, 11, 76, 7, 103, 23, 129, 60, 132, 36, 128, 64, 68, 19, 120, 61, 115, 48, 111, 24, 96, 68, 155, 88, 142, 30, 124, 39, 69, 60, 94, 18, 77, 35, 148, 113, 130, 74, 159, 25, 121, 38, 136, 62, 136, 48, 156, 65, 140, 69, 145, 97, 145, 5, 143, 20, 43, 41, 141, 82, 103, 90, 126, 7, 38, 12, 22, 1, 152, 9, 94, 13, 110, 64] TODO -[17, 17, 5, 17, 12, 16, 10, 11, 10, 17, 7, 16, 1, 14, 6, 7, 4, 17] TODO -[90, 164, 29, 123, 78, 149, 113, 158, 25, 112, 13, 91, 64, 99, 14, 118, 57, 81, 20, 109, 70, 147, 50, 80, 34, 144, 52, 143, 86, 89, 82, 119, 15, 110, 76, 112, 4, 131, 75, 177, 105, 178, 52, 89, 74, 165, 154, 173, 70, 155, 79, 116, 18, 36, 2, 43, 29, 136, 92, 176, 41, 165, 5, 131, 43, 164, 8, 129, 4, 172, 56, 92, 48, 153, 85, 140, 3, 128, 2, 174, 37, 99, 24, 55, 4, 164, 132, 139, 21, 105, 91, 179, 62, 128, 80, 99, 96, 160, 61, 161, 79, 151, 1, 60, 35, 164, 147, 154, 47, 61, 29, 115, 69, 115, 11, 88, 16, 136, 52, 171, 90, 143, 97, 172, 126, 171, 44, 134, 46, 99, 24, 117, 39, 181, 86, 116, 11, 77, 65, 72, 16, 65, 28, 149, 107, 111, 34, 182, 80, 137, 38, 139, 73, 166, 61, 110, 45, 186, 79, 152, 20, 94, 71, 175, 9, 164, 52, 150, 3, 63, 34, 132, 119, 124, 98, 168, 62, 165, 9, 174, 41, 144, 18, 134, 53, 177, 66] TODO -[2, 34, 4, 33, 18, 44, 8, 33, 12, 36, 16, 39, 28, 31, 22, 34, 7, 34, 17, 40, 6, 24, 15, 35, 5, 36, 4, 44, 7, 32, 3, 25, 1, 37, 1, 25, 7, 11, 8, 48, 23, 51, 19, 24, 7, 29, 9, 26, 17, 37, 15] TODO -[83, 148, 98, 145, 17, 125, 38, 141, 51, 157, 10, 132, 17, 170, 53, 120, 60, 148, 72, 156, 7, 36, 20, 54, 20, 165, 5, 158, 27, 55, 53, 110, 31, 92, 29, 153, 98, 115, 34, 137, 14, 48, 6, 58, 32, 168, 106, 156, 138, 173, 48, 71, 14, 107, 5, 175, 54, 82, 43, 126, 33, 140, 107, 115, 57, 150, 85, 136, 43, 136, 53, 113, 22, 57, 22, 63, 1, 51, 24, 171, 34, 161, 48, 143, 8, 131, 10, 140, 55, 94, 29, 122, 48, 163, 85, 103, 23, 127, 60, 100, 98, 173, 29, 110, 77, 111, 53, 164, 79, 90, 18, 41, 33, 134, 63, 118, 52, 111, 23, 84, 45, 119, 66, 109, 54, 163, 86, 129, 76, 89, 60, 135, 85, 102, 58, 119, 98, 101, 12, 40, 39, 171, 140, 167, 123, 124, 44, 137, 49, 173, 55, 150, 65, 172, 106, 170, 22, 134, 4, 83, 57, 108, 84, 104, 54, 141, 102, 114, 56, 144, 98, 159, 28, 106, 31, 33] TODO -[2, 3, 3] TODO -[32, 47, 34, 48, 26, 29, 13, 37, 3, 33, 21, 51, 1, 17, 2, 23, 5, 50, 18, 49, 6, 41, 2, 42, 19, 50, 18, 29, 5, 51, 20, 25, 9, 17, 12, 34, 12, 36, 10, 40, 27, 50, 39, 49, 35, 42, 6, 51, 18, 40, 8, 17] TODO -[19, 30, 8, 31, 19, 27, 12, 34, 14, 35, 15, 19, 9, 29, 19, 40, 31, 31, 8, 27, 10, 35, 16, 30, 25, 30, 3, 17, 9, 14, 13, 31, 7, 34, 21, 41, 26, 35, 19, 32, 7] TODO -[22, 31, 18, 33, 9, 19, 10, 16, 5, 16, 5, 31, 3, 10, 9, 29, 9, 23, 9, 31, 13, 31, 15, 20, 2, 15, 2, 26, 4, 17, 4, 22, 14] TODO -[1, 1] TODO -[5, 13, 6, 14, 7, 9, 7, 14, 1, 11, 2, 14, 7, 9, 3, 16] TODO -[2, 77, 29, 59, 40, 51, 43, 61, 6, 75, 42, 87, 44, 66, 48, 67, 7, 87, 13, 35, 34, 68, 6, 64, 18, 33, 17, 29, 25, 49, 28, 38, 37, 49, 11, 35, 16, 55, 32, 59, 47, 63, 27, 53, 32, 43, 43, 81, 4, 65, 24, 56, 28, 57, 12, 51, 46, 66, 38, 51, 7, 82, 32, 86, 37, 48, 10, 31, 11, 45, 23, 66, 45, 79, 20, 49, 21, 71, 5, 43, 32, 82, 9, 60, 10, 80, 51] TODO -[1, 5, 1, 4, 3] TODO -[30, 62, 5, 66, 36, 76, 12, 63, 36, 72, 11, 77, 10, 79, 28, 36, 30, 73, 43, 82, 1, 81, 2, 54, 44, 45, 14, 33, 13, 65, 41, 84, 29, 82, 57, 78, 3, 67, 46, 75, 19, 34, 11, 73, 25, 72, 4, 66, 53, 71, 29, 81, 10, 51, 20, 35, 34, 85, 17, 71, 14, 76, 32, 53, 40, 51, 35, 81, 23, 49, 7, 79, 9, 70, 47, 63, 22, 86, 28, 83, 5, 47, 13, 67, 18, 25, 4, 85, 6, 37] TODO -[105, 326, 121, 305, 23, 373, 76, 341, 208, 307, 76, 295, 85, 324, 30, 267, 18, 377, 158, 252, 200, 248, 39, 235, 59, 153, 41, 321, 81, 265, 97, 357, 76, 152, 48, 378, 277, 333, 246, 258, 74, 338, 53, 394, 77, 305, 26, 189, 8, 111, 98, 392, 153, 208, 14, 174, 55, 321, 289, 312, 111, 230, 153, 191, 48, 333, 88, 309, 246, 274, 31, 314, 179, 347, 80, 336, 126, 255, 18, 219, 30, 256, 161, 359, 239, 296, 244, 370, 265, 315, 127, 155, 93, 127, 94, 244, 28, 289, 48, 180, 165, 249, 5, 215, 163, 274, 93, 389, 191, 356, 191, 343, 196, 216, 155, 212, 19, 336, 100, 386, 7, 381, 311, 372, 3, 391, 62, 279, 98, 365, 131, 381, 192, 323, 38, 337, 179, 255, 230, 257, 245, 324, 117, 371, 92, 366, 81, 350, 87, 394, 244, 289, 229, 263, 90, 217, 146, 234, 161, 269, 132, 384, 140, 248, 40, 109, 18, 387, 229, 382, 26, 363, 15, 297, 172, 220, 25, 173, 91, 314, 46, 385, 6, 316, 36, 293, 114, 322, 288, 310, 54, 182, 154, 338, 6, 373, 129, 267, 26, 263, 162, 304, 130, 250, 81, 245, 73, 88, 79, 392, 117, 246, 110, 334, 101, 374, 184, 292, 48, 355, 85, 301, 7, 348, 94, 322, 90, 377, 118, 388, 51, 341, 186, 324, 61, 319, 12, 277, 174, 246, 194, 329, 21, 98, 44, 268, 226, 332, 205, 258, 63, 221, 156, 369, 97, 286, 186, 199, 41, 329, 58, 127, 123, 268, 213, 257, 33, 370, 87, 216, 80, 311, 11, 237, 123, 168, 116, 305, 1, 336, 5, 252, 46, 271, 72, 380, 170, 388, 201, 296, 97, 233, 90, 123, 63, 342, 190, 208, 64, 370, 32, 368, 75, 122, 42, 153, 103, 240, 147, 287, 116, 356, 6, 321, 75, 150, 69, 275, 122, 338, 24, 244, 71, 277, 46, 327, 99, 273, 102, 336, 85, 228, 80, 134, 11, 322, 63, 129, 3, 348, 87, 334, 103, 178, 112, 324, 30, 309, 54, 232, 153, 340, 82, 221, 215, 378, 269, 367, 233, 365, 239, 376, 202, 309, 259, 289, 229, 280, 248, 347, 107, 392, 248, 369, 26, 289, 286, 301, 46, 210, 13, 356, 27, 367, 59, 385, 130, 174, 41, 325, 172, 326, 120, 358] TODO -[4, 15, 4, 7, 4, 13, 9, 15, 6, 11, 4, 10, 2, 9, 7] TODO -[2, 7, 5, 8, 4, 4, 1, 3] TODO -[22, 86, 6, 57, 12, 68, 56, 61, 41, 116, 65, 112, 10, 23, 17, 56, 5, 31, 29, 99, 38, 111, 22, 64, 34, 85, 37, 114, 56, 74, 70, 98, 82, 86, 11, 119, 71, 123, 40, 105, 57, 95, 38, 120, 45, 119, 8, 122, 77, 117, 45, 94, 87, 111, 2, 48, 1, 120, 77, 111, 1, 54, 5, 88, 26, 80, 52, 111, 86, 89, 47, 104, 27, 100, 34, 92, 65, 105, 71, 89, 4, 48, 14, 113, 15, 108, 63, 110, 64, 75, 1, 100, 17, 77, 41, 110, 62, 72, 9, 58, 28, 72, 56, 103, 91, 114, 11, 66, 51, 81, 79, 98, 37, 85, 55, 74, 40, 118, 27, 32, 29, 67, 1] TODO -[25, 37, 24, 32, 5, 45, 25, 35, 33, 46, 39, 47, 10, 57, 5, 27, 26, 41, 28, 51, 38, 50, 5, 31, 29, 42, 10, 53, 27, 45, 3, 34, 31, 47, 27, 42, 1, 57, 16, 31, 16, 52, 11, 54, 49, 55, 39, 46, 17, 39, 4, 33, 18, 25, 14, 34, 14] TODO -[1, 2, 1, 5, 3] TODO -[153, 212, 27, 162, 62, 144, 83, 197, 14, 216, 112, 140, 106, 137, 79, 91, 72, 78, 74, 154, 5, 115, 6, 118, 64, 154, 128, 195, 1, 175, 115, 160, 56, 203, 191, 197, 44, 159, 49, 114, 68, 71, 53, 147, 123, 128, 41, 147, 123, 217, 100, 192, 44, 153, 84, 217, 18, 190, 81, 173, 55, 217, 85, 160, 18, 184, 112, 170, 107, 147, 77, 109, 72, 107, 12, 162, 16, 156, 72, 199, 79, 125, 52, 133, 22, 86, 57, 150, 93, 192, 116, 183, 23, 147, 55, 131, 3, 199, 131, 205, 141, 155, 71, 160, 37, 171, 108, 199, 14, 204, 83, 170, 44, 103, 93, 169, 92, 94, 63, 156, 56, 123, 20, 217, 23, 157, 132, 167, 135, 180, 106, 177, 56, 140, 70, 211, 85, 150, 73, 141, 88, 215, 94, 208, 19, 202, 39, 171, 96, 168, 43, 80, 64, 170, 77, 212, 114, 184, 165, 221, 118, 218, 123, 211, 39, 71, 48, 76, 70, 180, 65, 125, 2, 200, 3, 149, 14, 107, 2, 64, 38, 167, 51, 109, 44, 118, 92, 133, 13, 211, 18, 121, 52, 182, 143, 192, 152, 159, 8, 189, 33, 79, 42, 59, 49, 112, 18, 106, 60, 114, 75, 162, 98, 179, 93, 219, 154, 161, 97, 185, 3, 127] TODO -[5, 17, 14, 35, 20, 29, 14, 35, 15, 32, 19, 37, 26, 34, 8, 13, 8, 30, 1, 17, 2, 4, 4, 26, 1, 22, 2, 10, 1, 26, 19, 31, 4, 32, 8, 23, 12] TODO -[2, 26, 7, 18, 6, 18, 4, 20, 2, 12, 7, 28, 13, 35, 27, 32, 12, 28, 24, 31, 10, 20, 18, 20, 3, 34, 6, 24, 3, 28, 8, 11, 2, 31, 21] TODO -[7, 136, 6, 50, 21, 94, 59, 71, 63, 140, 70, 134, 41, 120, 59, 105, 33, 112, 18, 86, 50, 77, 58, 139, 47, 60, 46, 140, 27, 85, 55, 72, 61, 115, 75, 86, 56, 108, 38, 102, 39, 66, 16, 47, 18, 77, 46, 131, 4, 44, 39, 117, 11, 134, 81, 112, 108, 137, 39, 119, 17, 72, 31, 33, 30, 124, 35, 74, 6, 107, 7, 55, 31, 93, 9, 119, 15, 60, 26, 76, 52, 65, 14, 45, 12, 132, 124, 137, 49, 117, 84, 96, 15, 86, 43, 81, 54, 77, 15, 62, 17, 117, 22, 42, 37, 110, 66, 140, 18, 139, 16, 58, 57, 96, 19, 52, 7, 101, 13, 112, 3, 80, 6, 132, 27, 119, 44, 94, 89, 121, 15, 85, 13, 76, 42, 48, 11, 138, 16, 27] TODO -[41, 304, 135, 297, 226, 231, 128, 193, 113, 301, 64, 225, 61, 113, 4, 87, 37, 66, 10, 216, 102, 319, 69, 278, 166, 299, 174, 294, 116, 297, 66, 239, 51, 215, 106, 243, 223, 332, 255, 331, 71, 330, 126, 285, 233, 269, 67, 167, 76, 167, 87, 134, 124, 297, 3, 294, 21, 204, 56, 159, 26, 294, 135, 229, 28, 286, 108, 270, 4, 116, 4, 124, 20, 235, 89, 259, 154, 257, 70, 210, 147, 173, 11, 279, 182, 324, 70, 210, 119, 158, 145, 209, 182, 289, 109, 155, 31, 214, 62, 117, 117, 233, 209, 322, 87, 306, 98, 274, 9, 282, 169, 271, 7, 187, 59, 141, 88, 162, 84, 319, 173, 318, 77, 85, 19, 290, 18, 189, 130, 197, 10, 255, 16, 283, 63, 252, 189, 315, 66, 299, 158, 197, 29, 254, 77, 329, 106, 322, 70, 164, 123, 292, 181, 256, 182, 327, 85, 320, 43, 127, 61, 324, 37, 311, 245, 288, 99, 291, 147, 290, 163, 259, 58, 186, 109, 208, 119, 290, 157, 167, 154, 315, 146, 241, 161, 194, 164, 290, 164, 172, 131, 184, 2, 325, 217, 301, 153, 286, 83, 283, 90, 288, 15, 228, 70, 323, 44, 158, 24, 75, 73, 282, 82, 227, 3, 125, 69, 138, 85, 237, 20, 73, 8, 46, 17, 177, 39, 225, 32, 135, 62, 145, 123, 275, 97, 105, 63, 286, 103, 267, 168, 309, 104, 207, 165, 317, 26, 326, 121, 231, 100, 311, 183, 295, 270, 278, 183, 279, 10, 174, 49, 267, 24, 65, 8, 114, 40, 176, 72, 239, 184, 218, 18, 248, 63, 233, 33, 125, 31, 254, 72, 302, 79, 163, 19, 313, 143, 157, 69, 216, 37, 299, 187, 279, 173, 195, 97, 169, 118, 212, 76, 319, 248, 271, 1, 258, 88, 222, 92, 332, 109, 270, 112, 221, 40, 235, 139, 292, 181, 291, 182, 229, 22, 157, 59, 219, 51, 249, 84, 227, 168, 187, 161] TODO -[68, 363, 64, 291, 71, 345, 161, 360, 63, 233, 161, 209, 98, 231, 25, 283, 45, 194, 94, 231, 46, 106, 24, 372, 230, 327, 130, 133, 111, 390, 234, 366, 19, 320, 84, 284, 135, 337, 82, 230, 134, 158, 23, 352, 139, 364, 71, 231, 81, 269, 112, 305, 99, 261, 114, 168, 55, 220, 12, 371, 118, 168, 64, 347, 84, 296, 25, 123, 96, 285, 96, 170, 141, 262, 51, 191, 8, 335, 42, 230, 18, 335, 166, 321, 63, 356, 17, 317, 67, 380, 80, 262, 144, 267, 196, 228, 40, 194, 6, 345, 56, 338, 256, 261, 156, 170, 17, 331, 208, 344, 304, 326, 322, 380, 169, 286, 278, 296, 67, 341, 171, 237, 96, 369, 238, 253, 240, 371, 23, 257, 53, 390, 160, 174, 132, 180, 33, 121, 115, 387, 179, 306, 124, 393, 329, 330, 11, 377, 126, 340, 45, 246, 235, 366, 103, 366, 100, 204, 69, 149, 47, 324, 194, 320, 174, 303, 224, 271, 3, 185, 76, 120, 109, 248, 156, 238, 47, 103, 52, 356, 68, 136, 93, 119, 65, 293, 70, 327, 133, 181, 14, 162, 47, 392, 281, 391, 64, 365, 84, 267, 76, 197, 89, 371, 130, 247, 220, 347, 110, 331, 78, 246, 64, 154, 95, 108, 103, 289, 57, 366, 171, 290, 31, 314, 206, 277, 127, 201, 123, 262, 155, 389, 202, 319, 178, 276, 134, 258, 207, 249, 40, 216, 200, 334, 100, 263, 142, 249, 4, 388, 48, 205, 178, 321, 15, 171, 20, 124, 118, 284, 191, 371, 104, 271, 160, 303, 37, 204, 118, 276, 130, 360, 151, 214, 16, 248, 33, 52, 26, 242, 8, 194, 52, 218, 214, 243, 210, 230, 63, 83, 13, 333, 66, 274, 85, 244, 161, 275, 95, 133, 25, 388, 178, 216, 35, 302, 2, 182, 26, 213, 157, 379, 27, 331, 62, 229, 45, 321, 195, 205, 125, 382, 118, 214, 3, 323, 106, 281, 200, 351, 96, 284, 31, 112, 51, 331, 179, 194, 184, 350, 267, 282, 92, 248, 74, 199, 149, 314, 207, 261, 25, 213, 213, 277, 216, 251, 44, 327, 183, 292, 117, 175, 141, 164, 26, 94, 57, 181, 102, 249, 205, 228, 52, 333, 65, 183, 20, 307, 84, 357, 158, 268, 34, 160, 72, 326, 53, 108, 83, 315, 5, 330, 139] TODO -[95, 277, 241, 270, 211, 219, 179, 272, 39, 215, 194, 229, 44, 149, 93, 205, 70, 112, 11, 244, 133, 180, 82, 137, 18, 268, 14, 181, 78, 110, 92, 214, 68, 254, 181, 210, 167, 202, 21, 170, 108, 163, 44, 126, 62, 118, 16, 283, 32, 259, 98, 188, 137, 280, 68, 201, 126, 195, 120, 283, 181, 279, 43, 265, 132, 219, 50, 85, 72, 272, 118, 274, 22, 252, 228, 229, 66, 244, 6, 281, 110, 221, 184, 201, 58, 112, 99, 217, 145, 263, 54, 193, 130, 172, 123, 151, 86, 88, 3, 135, 61, 230, 122, 246, 51, 225, 63, 212, 76, 252, 181, 232, 142, 226, 35, 261, 69, 161, 130, 230, 63, 238, 95, 188, 83, 255, 179, 186, 118, 268, 162, 262, 96, 122, 49, 70, 10, 123, 100, 159, 44, 108, 40, 166, 74, 142, 87, 271, 55, 227, 92, 198, 129, 283, 135, 278, 101, 236, 86, 169, 86, 274, 58, 265, 95, 156, 76, 129, 24, 152, 62, 204, 75, 181, 19, 251, 175, 216, 31, 228, 61, 91, 21, 273, 89, 273, 179, 277, 42, 282, 36, 280, 35, 271, 133, 280, 184, 217, 91, 147, 64, 221, 152, 192, 157, 182, 40, 135, 4, 181, 29, 169, 58, 120, 108, 229, 28, 157, 45, 102, 9, 244, 89, 251, 16, 228, 58, 225, 65, 222, 12, 116, 104, 123, 15, 256, 56, 66, 26, 283, 246, 251, 1, 206, 179, 218, 38, 122, 15, 267, 42, 119, 40, 281, 69, 164, 133, 137, 68, 133, 1, 278, 69, 182, 9, 151, 50, 151, 72, 201, 120, 261, 78, 248, 149, 215, 21, 171, 66, 264, 139, 171, 4, 77] TODO -[24, 54, 40, 57, 37, 80, 30, 45, 14, 70, 31, 61, 35, 72, 13, 64, 49, 55, 39, 64, 44, 57, 26, 58, 53, 56, 29, 40, 12, 57, 23, 70, 25, 27, 7, 37, 34, 40, 39, 76, 24, 36, 11, 69, 53, 78, 37, 43, 10, 66, 39, 64, 1, 32, 21, 65, 7, 80, 37, 75, 48, 74, 61, 63, 46, 51, 21, 75, 26, 66, 14, 26, 1, 71, 45, 51, 47, 59, 42, 51] TODO -[8, 16, 1, 14, 10, 17, 8, 9, 9, 18, 13, 13, 1, 11, 11, 19, 16, 17, 5] TODO -[1, 4, 2, 4, 2] TODO -[0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15, 18, 17, 20, 19, 22, 21, 24, 23, 26, 25, 28, 27, 30, 29, 32, 31, 34, 33, 36, 35, 38, 37, 40, 39, 42, 41, 44, 43, 46, 45, 48, 47, 50, 49, 52, 51, 54, 53, 56, 55, 58, 57, 60, 59, 62, 61, 64, 63, 66, 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, 92, 91, 94, 93, 96, 95, 98, 97, 100, 99, 102, 101, 104, 103, 106, 105, 108, 107, 110, 109, 112, 111, 114, 113, 116, 115, 118, 117, 120, 119, 122, 121, 124, 123, 126, 125, 128, 127, 130, 129, 132, 131, 134, 133, 136, 135, 138, 137, 140, 139, 142, 141, 144, 143, 146, 145, 148, 147, 150, 149, 152, 151, 154, 153, 156, 155, 158, 157, 160, 159, 162, 161, 164, 163, 166, 165, 168, 167, 170, 169, 172, 171, 174, 173, 176, 175, 178, 177, 180, 179, 182, 181, 184, 183, 186, 185, 188, 187, 190, 189, 192, 191, 194, 193, 196, 195, 198, 197, 200, 199, 202, 201, 204, 203, 206, 205, 208, 207, 210, 209, 212, 211, 214, 213, 216, 215, 218, 217, 220, 219, 222, 221, 224, 223, 226, 225, 228, 227, 230, 229, 232, 231, 234, 233, 236, 235, 238, 237, 240, 239, 242, 241, 244, 243, 246, 245, 248, 247, 250, 249, 252, 251, 254, 253, 256, 255, 258, 257, 260, 259, 262, 261, 264, 263, 266, 265, 268, 267, 270, 269, 272, 271, 274, 273, 276, 275, 278, 277, 280, 279, 282, 281, 284, 283, 286, 285, 288, 287, 290, 289, 292, 291, 294, 293, 296, 295, 298, 297, 300, 299, 302, 301, 304, 303, 306, 305, 308, 307, 310, 309, 312, 311, 314, 313, 316, 315, 318, 317, 320, 319, 322, 321, 324, 323, 326, 325, 328, 327, 330, 329, 332, 331, 334, 333, 336, 335, 338, 337, 340, 339, 342, 341, 344, 343, 346, 345, 348, 347, 350, 349, 352, 351, 354, 353, 356, 355, 358, 357, 360, 359, 362, 361, 364, 363, 366, 365, 368, 367, 370, 369, 372, 371, 374, 373, 376, 375, 378, 377, 380, 379, 382, 381, 384, 383, 386, 385, 388, 387, 390, 389, 392, 391, 394, 393, 396, 395, 398, 397, 400, 399, 402, 401, 404, 403, 406, 405, 408, 407, 410, 409, 412, 411, 414, 413, 416, 415, 418, 417, 420, 419, 422, 421, 424, 423, 426, 425, 428, 427, 430, 429, 432, 431, 434, 433, 436, 435, 438, 437, 440, 439, 442, 441, 444, 443, 446, 445, 448, 447, 450, 449, 452, 451, 454, 453, 456, 455, 458, 457, 460, 459, 462, 461, 464, 463, 466, 465, 468, 467, 470, 469, 472, 471, 474, 473, 476, 475, 478, 477, 480, 479, 482, 481, 484, 483, 486, 485, 488, 487, 490, 489, 492, 491, 494, 493, 496, 495, 498, 497, 500, 499, 502, 501, 504, 503, 506, 505, 508, 507, 510, 509, 512, 511, 514, 513, 516, 515, 518, 517, 520, 519, 522, 521, 524, 523, 526, 525, 528, 527, 530, 529, 532, 531, 534, 533, 536, 535, 538, 537, 540, 539, 542, 541, 544, 543, 546, 545, 548, 547, 550, 549, 552, 551, 554, 553, 556, 555, 558, 557, 560, 559, 562, 561, 564, 563, 566, 565, 568, 567, 570, 569, 572, 571, 574, 573, 576, 575, 578, 577, 580, 579, 582, 581, 584, 583, 586, 585, 588, 587, 590, 589, 592, 591, 594, 593, 596, 595, 598, 597, 600, 599, 602, 601, 604, 603, 606, 605, 608, 607, 610, 609, 612, 611, 614, 613, 616, 615, 618, 617, 620, 619, 622, 621, 624, 623, 626, 625, 628, 627, 630, 629, 632, 631, 634, 633, 636, 635, 638, 637, 640, 639, 642, 641, 644, 643, 646, 645, 648, 647, 650, 649, 652, 651, 654, 653, 656, 655, 658, 657, 660, 659, 662, 661, 664, 663, 666, 665, 668, 667, 670, 669, 672, 671, 674, 673, 676, 675, 678, 677, 680, 679, 682, 681, 684, 683, 686, 685, 688, 687, 690, 689, 692, 691, 694, 693, 696, 695, 698, 697, 700, 699, 702, 701, 704, 703, 706, 705, 708, 707, 710, 709, 712, 711, 714, 713, 716, 715, 718, 717, 720, 719, 722, 721, 724, 723, 726, 725, 728, 727, 730, 729, 732, 731, 734, 733, 736, 735, 738, 737, 740, 739, 742, 741, 744, 743, 746, 745, 748, 747, 750, 749, 752, 751, 754, 753, 756, 755, 758, 757, 760, 759, 762, 761, 764, 763, 766, 765, 768, 767, 770, 769, 772, 771, 774, 773, 776, 775, 778, 777, 780, 779, 782, 781, 784, 783, 786, 785, 788, 787, 790, 789, 792, 791, 794, 793, 796, 795, 798, 797, 800, 799, 802, 801, 804, 803, 806, 805, 808, 807, 810, 809, 812, 811, 814, 813, 816, 815, 818, 817, 820, 819, 822, 821, 824, 823, 826, 825, 828, 827, 830, 829, 832, 831, 834, 833, 836, 835, 838, 837, 840, 839, 842, 841, 844, 843, 846, 845, 848, 847, 850, 849, 852, 851, 854, 853, 856, 855, 858, 857, 860, 859, 862, 861, 864, 863, 866, 865, 868, 867, 870, 869, 872, 871, 874, 873, 876, 875, 878, 877, 880, 879, 882, 881, 884, 883, 886, 885, 888, 887, 890, 889, 892, 891, 894, 893, 896, 895, 898, 897, 900, 899, 902, 901, 904, 903, 906, 905, 908, 907, 910, 909, 912, 911, 914, 913, 916, 915, 918, 917, 920, 919, 922, 921, 924, 923, 926, 925, 928, 927, 930, 929, 932, 931, 934, 933, 936, 935, 938, 937, 940, 939, 942, 941, 944, 943, 946, 945, 948, 947, 950, 949, 952, 951, 954, 953, 956, 955, 958, 957, 960, 959, 962, 961, 964, 963, 966, 965, 968, 967, 970, 969, 972, 971, 974, 973, 976, 975, 978, 977, 980, 979, 982, 981, 984, 983, 986, 985, 988, 987, 990, 989, 992, 991, 994, 993, 996, 995, 998, 997, 1000, 999, 1002, 1001, 1004, 1003, 1006, 1005, 1008, 1007, 1010, 1009, 1012, 1011, 1014, 1013, 1016, 1015, 1018, 1017, 1020, 1019, 1022, 1021, 1024, 1023, 1026, 1025, 1028, 1027, 1030, 1029, 1032, 1031, 1034, 1033, 1036, 1035, 1038, 1037, 1040, 1039, 1042, 1041, 1044, 1043, 1046, 1045, 1048, 1047, 1050, 1049, 1052, 1051, 1054, 1053, 1056, 1055, 1058, 1057, 1060, 1059, 1062, 1061, 1064, 1063, 1066, 1065, 1068, 1067, 1070, 1069, 1072, 1071, 1074, 1073, 1076, 1075, 1078, 1077, 1080, 1079, 1082, 1081, 1084, 1083, 1086, 1085, 1088, 1087, 1090, 1089, 1092, 1091, 1094, 1093, 1096, 1095, 1098, 1097, 1100, 1099, 1102, 1101, 1104, 1103, 1106, 1105, 1108, 1107, 1110, 1109, 1112, 1111, 1114, 1113, 1116, 1115, 1118, 1117, 1120, 1119, 1122, 1121, 1124, 1123, 1126, 1125, 1128, 1127, 1130, 1129, 1132, 1131, 1134, 1133, 1136, 1135, 1138, 1137, 1140, 1139, 1142, 1141, 1144, 1143, 1146, 1145, 1148, 1147, 1150, 1149, 1152, 1151, 1154, 1153, 1156, 1155, 1158, 1157, 1160, 1159, 1162, 1161, 1164, 1163, 1166, 1165, 1168, 1167, 1170, 1169, 1172, 1171, 1174, 1173, 1176, 1175, 1178, 1177, 1180, 1179, 1182, 1181, 1184, 1183, 1186, 1185, 1188, 1187, 1190, 1189, 1192, 1191, 1194, 1193, 1196, 1195, 1198, 1197, 1200, 1199, 1202, 1201, 1204, 1203, 1206, 1205, 1208, 1207, 1210, 1209, 1212, 1211, 1214, 1213, 1216, 1215, 1218, 1217, 1220, 1219, 1222, 1221, 1224, 1223, 1226, 1225, 1228, 1227, 1230, 1229, 1232, 1231, 1234, 1233, 1236, 1235, 1238, 1237, 1240, 1239, 1242, 1241, 1244, 1243, 1246, 1245, 1248, 1247, 1250, 1249, 1252, 1251, 1254, 1253, 1256, 1255, 1258, 1257, 1260, 1259, 1262, 1261, 1264, 1263, 1266, 1265, 1268, 1267, 1270, 1269, 1272, 1271, 1274, 1273, 1276, 1275, 1278, 1277, 1280, 1279, 1282, 1281, 1284, 1283, 1286, 1285, 1288, 1287, 1290, 1289, 1292, 1291, 1294, 1293, 1296, 1295, 1298, 1297, 1300, 1299, 1302, 1301, 1304, 1303, 1306, 1305, 1308, 1307, 1310, 1309, 1312, 1311, 1314, 1313, 1316, 1315, 1318, 1317, 1320, 1319, 1322, 1321, 1324, 1323, 1326, 1325, 1328, 1327, 1330, 1329, 1332, 1331, 1334, 1333, 1336, 1335, 1338, 1337, 1340, 1339, 1342, 1341, 1344, 1343, 1346, 1345, 1348, 1347, 1350, 1349, 1352, 1351, 1354, 1353, 1356, 1355, 1358, 1357, 1360, 1359, 1362, 1361, 1364, 1363, 1366, 1365, 1368, 1367, 1370, 1369, 1372, 1371, 1374, 1373, 1376, 1375, 1378, 1377, 1380, 1379, 1382, 1381, 1384, 1383, 1386, 1385, 1388, 1387, 1390, 1389, 1392, 1391, 1394, 1393, 1396, 1395, 1398, 1397, 1400, 1399, 1402, 1401, 1404, 1403, 1406, 1405, 1408, 1407, 1410, 1409, 1412, 1411, 1414, 1413, 1416, 1415, 1418, 1417, 1420, 1419, 1422, 1421, 1424, 1423, 1426, 1425, 1428, 1427, 1430, 1429, 1432, 1431, 1434, 1433, 1436, 1435, 1438, 1437, 1440, 1439, 1442, 1441, 1444, 1443, 1446, 1445, 1448, 1447, 1450, 1449, 1452, 1451, 1454, 1453, 1456, 1455, 1458, 1457, 1460, 1459, 1462, 1461, 1464, 1463, 1466, 1465, 1468, 1467, 1470, 1469, 1472, 1471, 1474, 1473, 1476, 1475, 1478, 1477, 1480, 1479, 1482, 1481, 1484, 1483, 1486, 1485, 1488, 1487, 1490, 1489, 1492, 1491, 1494, 1493, 1496, 1495, 1498, 1497, 1500, 1499, 1502, 1501, 1504, 1503, 1506, 1505, 1508, 1507, 1510, 1509, 1512, 1511, 1514, 1513, 1516, 1515, 1518, 1517, 1520, 1519, 1522, 1521, 1524, 1523, 1526, 1525, 1528, 1527, 1530, 1529, 1532, 1531, 1534, 1533, 1536, 1535, 1538, 1537, 1540, 1539, 1542, 1541, 1544, 1543, 1546, 1545, 1548, 1547, 1550, 1549, 1552, 1551, 1554, 1553, 1556, 1555, 1558, 1557, 1560, 1559, 1562, 1561, 1564, 1563, 1566, 1565, 1568, 1567, 1570, 1569, 1572, 1571, 1574, 1573, 1576, 1575, 1578, 1577, 1580, 1579, 1582, 1581, 1584, 1583, 1586, 1585, 1588, 1587, 1590, 1589, 1592, 1591, 1594, 1593, 1596, 1595, 1598, 1597, 1600, 1599, 1602, 1601, 1604, 1603, 1606, 1605, 1608, 1607, 1610, 1609, 1612, 1611, 1614, 1613, 1616, 1615, 1618, 1617, 1620, 1619, 1622, 1621, 1624, 1623, 1626, 1625, 1628, 1627, 1630, 1629, 1632, 1631, 1634, 1633, 1636, 1635, 1638, 1637, 1640, 1639, 1642, 1641, 1644, 1643, 1646, 1645, 1648, 1647, 1650, 1649, 1652, 1651, 1654, 1653, 1656, 1655, 1658, 1657, 1660, 1659, 1662, 1661, 1664, 1663, 1666, 1665, 1668, 1667, 1670, 1669, 1672, 1671, 1674, 1673, 1676, 1675, 1678, 1677, 1680, 1679, 1682, 1681, 1684, 1683, 1686, 1685, 1688, 1687, 1690, 1689, 1692, 1691, 1694, 1693, 1696, 1695, 1698, 1697, 1700, 1699, 1702, 1701, 1704, 1703, 1706, 1705, 1708, 1707, 1710, 1709, 1712, 1711, 1714, 1713, 1716, 1715, 1718, 1717, 1720, 1719, 1722, 1721, 1724, 1723, 1726, 1725, 1728, 1727, 1730, 1729, 1732, 1731, 1734, 1733, 1736, 1735, 1738, 1737, 1740, 1739, 1742, 1741, 1744, 1743, 1746, 1745, 1748, 1747, 1750, 1749, 1752, 1751, 1754, 1753, 1756, 1755, 1758, 1757, 1760, 1759, 1762, 1761, 1764, 1763, 1766, 1765, 1768, 1767, 1770, 1769, 1772, 1771, 1774, 1773, 1776, 1775, 1778, 1777, 1780, 1779, 1782, 1781, 1784, 1783, 1786, 1785, 1788, 1787, 1790, 1789, 1792, 1791, 1794, 1793, 1796, 1795, 1798, 1797, 1800, 1799, 1802, 1801, 1804, 1803, 1806, 1805, 1808, 1807, 1810, 1809, 1812, 1811, 1814, 1813, 1816, 1815, 1818, 1817, 1820, 1819, 1822, 1821, 1824, 1823, 1826, 1825, 1828, 1827, 1830, 1829, 1832, 1831, 1834, 1833, 1836, 1835, 1838, 1837, 1840, 1839, 1842, 1841, 1844, 1843, 1846, 1845, 1848, 1847, 1850, 1849, 1852, 1851, 1854, 1853, 1856, 1855, 1858, 1857, 1860, 1859, 1862, 1861, 1864, 1863, 1866, 1865, 1868, 1867, 1870, 1869, 1872, 1871, 1874, 1873, 1876, 1875, 1878, 1877, 1880, 1879, 1882, 1881, 1884, 1883, 1886, 1885, 1888, 1887, 1890, 1889, 1892, 1891, 1894, 1893, 1896, 1895, 1898, 1897, 1900, 1899, 1902, 1901, 1904, 1903, 1906, 1905, 1908, 1907, 1910, 1909, 1912, 1911, 1914, 1913, 1916, 1915, 1918, 1917, 1920, 1919, 1922, 1921, 1924, 1923, 1926, 1925, 1928, 1927, 1930, 1929, 1932, 1931, 1934, 1933, 1936, 1935, 1938, 1937, 1940, 1939, 1942, 1941, 1944, 1943, 1946, 1945, 1948, 1947, 1950, 1949, 1952, 1951, 1954, 1953, 1956, 1955, 1958, 1957, 1960, 1959, 1962, 1961, 1964, 1963, 1966, 1965, 1968, 1967, 1970, 1969, 1972, 1971, 1974, 1973, 1976, 1975, 1978, 1977, 1980, 1979, 1982, 1981, 1984, 1983, 1986, 1985, 1988, 1987, 1990, 1989, 1992, 1991, 1994, 1993, 1996, 1995, 1998, 1997, 2000, 1999, 2002, 2001, 2004, 2003, 2006, 2005, 2008, 2007, 2010, 2009, 2012, 2011, 2014, 2013, 2016, 2015, 2018, 2017, 2020, 2019, 2022, 2021, 2024, 2023, 2026, 2025, 2028, 2027, 2030, 2029, 2032, 2031, 2034, 2033, 2036, 2035, 2038, 2037, 2040, 2039, 2042, 2041, 2044, 2043, 2046, 2045, 2048, 2047, 2050, 2049, 2052, 2051, 2054, 2053, 2056, 2055, 2058, 2057, 2060, 2059, 2062, 2061, 2064, 2063, 2066, 2065, 2068, 2067, 2070, 2069, 2072, 2071, 2074, 2073, 2076, 2075, 2078, 2077, 2080, 2079, 2082, 2081, 2084, 2083, 2086, 2085, 2088, 2087, 2090, 2089, 2092, 2091, 2094, 2093, 2096, 2095, 2098, 2097, 2100, 2099, 2102, 2101, 2104, 2103, 2106, 2105, 2108, 2107, 2110, 2109, 2112, 2111, 2114, 2113, 2116, 2115, 2118, 2117, 2120, 2119, 2122, 2121, 2124, 2123, 2126, 2125, 2128, 2127, 2130, 2129, 2132, 2131, 2134, 2133, 2136, 2135, 2138, 2137, 2140, 2139, 2142, 2141, 2144, 2143, 2146, 2145, 2148, 2147, 2150, 2149, 2152, 2151, 2154, 2153, 2156, 2155, 2158, 2157, 2160, 2159, 2162, 2161, 2164, 2163, 2166, 2165, 2168, 2167, 2170, 2169, 2172, 2171, 2174, 2173, 2176, 2175, 2178, 2177, 2180, 2179, 2182, 2181, 2184, 2183, 2186, 2185, 2188, 2187, 2190, 2189, 2192, 2191, 2194, 2193, 2196, 2195, 2198, 2197, 2200, 2199, 2202, 2201, 2204, 2203, 2206, 2205, 2208, 2207, 2210, 2209, 2212, 2211, 2214, 2213, 2216, 2215, 2218, 2217, 2220, 2219, 2222, 2221, 2224, 2223, 2226, 2225, 2228, 2227, 2230, 2229, 2232, 2231, 2234, 2233, 2236, 2235, 2238, 2237, 2240, 2239, 2242, 2241, 2244, 2243, 2246, 2245, 2248, 2247, 2250, 2249, 2252, 2251, 2254, 2253, 2256, 2255, 2258, 2257, 2260, 2259, 2262, 2261, 2264, 2263, 2266, 2265, 2268, 2267, 2270, 2269, 2272, 2271, 2274, 2273, 2276, 2275, 2278, 2277, 2280, 2279, 2282, 2281, 2284, 2283, 2286, 2285, 2288, 2287, 2290, 2289, 2292, 2291, 2294, 2293, 2296, 2295, 2298, 2297, 2300, 2299, 2302, 2301, 2304, 2303, 2306, 2305, 2308, 2307, 2310, 2309, 2312, 2311, 2314, 2313, 2316, 2315, 2318, 2317, 2320, 2319, 2322, 2321, 2324, 2323, 2326, 2325, 2328, 2327, 2330, 2329, 2332, 2331, 2334, 2333, 2336, 2335, 2338, 2337, 2340, 2339, 2342, 2341, 2344, 2343, 2346, 2345, 2348, 2347, 2350, 2349, 2352, 2351, 2354, 2353, 2356, 2355, 2358, 2357, 2360, 2359, 2362, 2361, 2364, 2363, 2366, 2365, 2368, 2367, 2370, 2369, 2372, 2371, 2374, 2373, 2376, 2375, 2378, 2377, 2380, 2379, 2382, 2381, 2384, 2383, 2386, 2385, 2388, 2387, 2390, 2389, 2392, 2391, 2394, 2393, 2396, 2395, 2398, 2397, 2400, 2399, 2402, 2401, 2404, 2403, 2406, 2405, 2408, 2407, 2410, 2409, 2412, 2411, 2414, 2413, 2416, 2415, 2418, 2417, 2420, 2419, 2422, 2421, 2424, 2423, 2426, 2425, 2428, 2427, 2430, 2429, 2432, 2431, 2434, 2433, 2436, 2435, 2438, 2437, 2440, 2439, 2442, 2441, 2444, 2443, 2446, 2445, 2448, 2447, 2450, 2449, 2452, 2451, 2454, 2453, 2456, 2455, 2458, 2457, 2460, 2459, 2462, 2461, 2464, 2463, 2466, 2465, 2468, 2467, 2470, 2469, 2472, 2471, 2474, 2473, 2476, 2475, 2478, 2477, 2480, 2479, 2482, 2481, 2484, 2483, 2486, 2485, 2488, 2487, 2490, 2489, 2492, 2491, 2494, 2493, 2496, 2495, 2498, 2497, 2500, 2499, 2502, 2501, 2504, 2503, 2506, 2505, 2508, 2507, 2510, 2509, 2512, 2511, 2514, 2513, 2516, 2515, 2518, 2517, 2520, 2519, 2522, 2521, 2524, 2523, 2526, 2525, 2528, 2527, 2530, 2529, 2532, 2531, 2534, 2533, 2536, 2535, 2538, 2537, 2540, 2539, 2542, 2541, 2544, 2543, 2546, 2545, 2548, 2547, 2550, 2549, 2552, 2551, 2554, 2553, 2556, 2555, 2558, 2557, 2560, 2559, 2562, 2561, 2564, 2563, 2566, 2565, 2568, 2567, 2570, 2569, 2572, 2571, 2574, 2573, 2576, 2575, 2578, 2577, 2580, 2579, 2582, 2581, 2584, 2583, 2586, 2585, 2588, 2587, 2590, 2589, 2592, 2591, 2594, 2593, 2596, 2595, 2598, 2597, 2600, 2599, 2602, 2601, 2604, 2603, 2606, 2605, 2608, 2607, 2610, 2609, 2612, 2611, 2614, 2613, 2616, 2615, 2618, 2617, 2620, 2619, 2622, 2621, 2624, 2623, 2626, 2625, 2628, 2627, 2630, 2629, 2632, 2631, 2634, 2633, 2636, 2635, 2638, 2637, 2640, 2639, 2642, 2641, 2644, 2643, 2646, 2645, 2648, 2647, 2650, 2649, 2652, 2651, 2654, 2653, 2656, 2655, 2658, 2657, 2660, 2659, 2662, 2661, 2664, 2663, 2666, 2665, 2668, 2667, 2670, 2669, 2672, 2671, 2674, 2673, 2676, 2675, 2678, 2677, 2680, 2679, 2682, 2681, 2684, 2683, 2686, 2685, 2688, 2687, 2690, 2689, 2692, 2691, 2694, 2693, 2696, 2695, 2698, 2697, 2700, 2699, 2702, 2701, 2704, 2703, 2706, 2705, 2708, 2707, 2710, 2709, 2712, 2711, 2714, 2713, 2716, 2715, 2718, 2717, 2720, 2719, 2722, 2721, 2724, 2723, 2726, 2725, 2728, 2727, 2730, 2729, 2732, 2731, 2734, 2733, 2736, 2735, 2738, 2737, 2740, 2739, 2742, 2741, 2744, 2743, 2746, 2745, 2748, 2747, 2750, 2749, 2752, 2751, 2754, 2753, 2756, 2755, 2758, 2757, 2760, 2759, 2762, 2761, 2764, 2763, 2766, 2765, 2768, 2767, 2770, 2769, 2772, 2771, 2774, 2773, 2776, 2775, 2778, 2777, 2780, 2779, 2782, 2781, 2784, 2783, 2786, 2785, 2788, 2787, 2790, 2789, 2792, 2791, 2794, 2793, 2796, 2795, 2798, 2797, 2800, 2799, 2802, 2801, 2804, 2803, 2806, 2805, 2808, 2807, 2810, 2809, 2812, 2811, 2814, 2813, 2816, 2815, 2818, 2817, 2820, 2819, 2822, 2821, 2824, 2823, 2826, 2825, 2828, 2827, 2830, 2829, 2832, 2831, 2834, 2833, 2836, 2835, 2838, 2837, 2840, 2839, 2842, 2841, 2844, 2843, 2846, 2845, 2848, 2847, 2850, 2849, 2852, 2851, 2854, 2853, 2856, 2855, 2858, 2857, 2860, 2859, 2862, 2861, 2864, 2863, 2866, 2865, 2868, 2867, 2870, 2869, 2872, 2871, 2874, 2873, 2876, 2875, 2878, 2877, 2880, 2879, 2882, 2881, 2884, 2883, 2886, 2885, 2888, 2887, 2890, 2889, 2892, 2891, 2894, 2893, 2896, 2895, 2898, 2897, 2900, 2899, 2902, 2901, 2904, 2903, 2906, 2905, 2908, 2907, 2910, 2909, 2912, 2911, 2914, 2913, 2916, 2915, 2918, 2917, 2920, 2919, 2922, 2921, 2924, 2923, 2926, 2925, 2928, 2927, 2930, 2929, 2932, 2931, 2934, 2933, 2936, 2935, 2938, 2937, 2940, 2939, 2942, 2941, 2944, 2943, 2946, 2945, 2948, 2947, 2950, 2949, 2952, 2951, 2954, 2953, 2956, 2955, 2958, 2957, 2960, 2959, 2962, 2961, 2964, 2963, 2966, 2965, 2968, 2967, 2970, 2969, 2972, 2971, 2974, 2973, 2976, 2975, 2978, 2977, 2980, 2979, 2982, 2981, 2984, 2983, 2986, 2985, 2988, 2987, 2990, 2989, 2992, 2991, 2994, 2993, 2996, 2995, 2998, 2997, 3000, 2999, 3002, 3001, 3004, 3003, 3006, 3005, 3008, 3007, 3010, 3009, 3012, 3011, 3014, 3013, 3016, 3015, 3018, 3017, 3020, 3019, 3022, 3021, 3024, 3023, 3026, 3025, 3028, 3027, 3030, 3029, 3032, 3031, 3034, 3033, 3036, 3035, 3038, 3037, 3040, 3039, 3042, 3041, 3044, 3043, 3046, 3045, 3048, 3047, 3050, 3049, 3052, 3051, 3054, 3053, 3056, 3055, 3058, 3057, 3060, 3059, 3062, 3061, 3064, 3063, 3066, 3065, 3068, 3067, 3070, 3069, 3072, 3071, 3074, 3073, 3076, 3075, 3078, 3077, 3080, 3079, 3082, 3081, 3084, 3083, 3086, 3085, 3088, 3087, 3090, 3089, 3092, 3091, 3094, 3093, 3096, 3095, 3098, 3097, 3100, 3099, 3102, 3101, 3104, 3103, 3106, 3105, 3108, 3107, 3110, 3109, 3112, 3111, 3114, 3113, 3116, 3115, 3118, 3117, 3120, 3119, 3122, 3121, 3124, 3123, 3126, 3125, 3128, 3127, 3130, 3129, 3132, 3131, 3134, 3133, 3136, 3135, 3138, 3137, 3140, 3139, 3142, 3141, 3144, 3143, 3146, 3145, 3148, 3147, 3150, 3149, 3152, 3151, 3154, 3153, 3156, 3155, 3158, 3157, 3160, 3159, 3162, 3161, 3164, 3163, 3166, 3165, 3168, 3167, 3170, 3169, 3172, 3171, 3174, 3173, 3176, 3175, 3178, 3177, 3180, 3179, 3182, 3181, 3184, 3183, 3186, 3185, 3188, 3187, 3190, 3189, 3192, 3191, 3194, 3193, 3196, 3195, 3198, 3197, 3200, 3199, 3202, 3201, 3204, 3203, 3206, 3205, 3208, 3207, 3210, 3209, 3212, 3211, 3214, 3213, 3216, 3215, 3218, 3217, 3220, 3219, 3222, 3221, 3224, 3223, 3226, 3225, 3228, 3227, 3230, 3229, 3232, 3231, 3234, 3233, 3236, 3235, 3238, 3237, 3240, 3239, 3242, 3241, 3244, 3243, 3246, 3245, 3248, 3247, 3250, 3249, 3252, 3251, 3254, 3253, 3256, 3255, 3258, 3257, 3260, 3259, 3262, 3261, 3264, 3263, 3266, 3265, 3268, 3267, 3270, 3269, 3272, 3271, 3274, 3273, 3276, 3275, 3278, 3277, 3280, 3279, 3282, 3281, 3284, 3283, 3286, 3285, 3288, 3287, 3290, 3289, 3292, 3291, 3294, 3293, 3296, 3295, 3298, 3297, 3300, 3299, 3302, 3301, 3304, 3303, 3306, 3305, 3308, 3307, 3310, 3309, 3312, 3311, 3314, 3313, 3316, 3315, 3318, 3317, 3320, 3319, 3322, 3321, 3324, 3323, 3326, 3325, 3328, 3327, 3330, 3329, 3332, 3331, 3334, 3333, 3336, 3335, 3338, 3337, 3340, 3339, 3342, 3341, 3344, 3343, 3346, 3345, 3348, 3347, 3350, 3349, 3352, 3351, 3354, 3353, 3356, 3355, 3358, 3357, 3360, 3359, 3362, 3361, 3364, 3363, 3366, 3365, 3368, 3367, 3370, 3369, 3372, 3371, 3374, 3373, 3376, 3375, 3378, 3377, 3380, 3379, 3382, 3381, 3384, 3383, 3386, 3385, 3388, 3387, 3390, 3389, 3392, 3391, 3394, 3393, 3396, 3395, 3398, 3397, 3400, 3399, 3402, 3401, 3404, 3403, 3406, 3405, 3408, 3407, 3410, 3409, 3412, 3411, 3414, 3413, 3416, 3415, 3418, 3417, 3420, 3419, 3422, 3421, 3424, 3423, 3426, 3425, 3428, 3427, 3430, 3429, 3432, 3431, 3434, 3433, 3436, 3435, 3438, 3437, 3440, 3439, 3442, 3441, 3444, 3443, 3446, 3445, 3448, 3447, 3450, 3449, 3452, 3451, 3454, 3453, 3456, 3455, 3458, 3457, 3460, 3459, 3462, 3461, 3464, 3463, 3466, 3465, 3468, 3467, 3470, 3469, 3472, 3471, 3474, 3473, 3476, 3475, 3478, 3477, 3480, 3479, 3482, 3481, 3484, 3483, 3486, 3485, 3488, 3487, 3490, 3489, 3492, 3491, 3494, 3493, 3496, 3495, 3498, 3497, 3500, 3499, 3502, 3501, 3504, 3503, 3506, 3505, 3508, 3507, 3510, 3509, 3512, 3511, 3514, 3513, 3516, 3515, 3518, 3517, 3520, 3519, 3522, 3521, 3524, 3523, 3526, 3525, 3528, 3527, 3530, 3529, 3532, 3531, 3534, 3533, 3536, 3535, 3538, 3537, 3540, 3539, 3542, 3541, 3544, 3543, 3546, 3545, 3548, 3547, 3550, 3549, 3552, 3551, 3554, 3553, 3556, 3555, 3558, 3557, 3560, 3559, 3562, 3561, 3564, 3563, 3566, 3565, 3568, 3567, 3570, 3569, 3572, 3571, 3574, 3573, 3576, 3575, 3578, 3577, 3580, 3579, 3582, 3581, 3584, 3583, 3586, 3585, 3588, 3587, 3590, 3589, 3592, 3591, 3594, 3593, 3596, 3595, 3598, 3597, 3600, 3599, 3602, 3601, 3604, 3603, 3606, 3605, 3608, 3607, 3610, 3609, 3612, 3611, 3614, 3613, 3616, 3615, 3618, 3617, 3620, 3619, 3622, 3621, 3624, 3623, 3626, 3625, 3628, 3627, 3630, 3629, 3632, 3631, 3634, 3633, 3636, 3635, 3638, 3637, 3640, 3639, 3642, 3641, 3644, 3643, 3646, 3645, 3648, 3647, 3650, 3649, 3652, 3651, 3654, 3653, 3656, 3655, 3658, 3657, 3660, 3659, 3662, 3661, 3664, 3663, 3666, 3665, 3668, 3667, 3670, 3669, 3672, 3671, 3674, 3673, 3676, 3675, 3678, 3677, 3680, 3679, 3682, 3681, 3684, 3683, 3686, 3685, 3688, 3687, 3690, 3689, 3692, 3691, 3694, 3693, 3696, 3695, 3698, 3697, 3700, 3699, 3702, 3701, 3704, 3703, 3706, 3705, 3708, 3707, 3710, 3709, 3712, 3711, 3714, 3713, 3716, 3715, 3718, 3717, 3720, 3719, 3722, 3721, 3724, 3723, 3726, 3725, 3728, 3727, 3730, 3729, 3732, 3731, 3734, 3733, 3736, 3735, 3738, 3737, 3740, 3739, 3742, 3741, 3744, 3743, 3746, 3745, 3748, 3747, 3750, 3749, 3752, 3751, 3754, 3753, 3756, 3755, 3758, 3757, 3760, 3759, 3762, 3761, 3764, 3763, 3766, 3765, 3768, 3767, 3770, 3769, 3772, 3771, 3774, 3773, 3776, 3775, 3778, 3777, 3780, 3779, 3782, 3781, 3784, 3783, 3786, 3785, 3788, 3787, 3790, 3789, 3792, 3791, 3794, 3793, 3796, 3795, 3798, 3797, 3800, 3799, 3802, 3801, 3804, 3803, 3806, 3805, 3808, 3807, 3810, 3809, 3812, 3811, 3814, 3813, 3816, 3815, 3818, 3817, 3820, 3819, 3822, 3821, 3824, 3823, 3826, 3825, 3828, 3827, 3830, 3829, 3832, 3831, 3834, 3833, 3836, 3835, 3838, 3837, 3840, 3839, 3842, 3841, 3844, 3843, 3846, 3845, 3848, 3847, 3850, 3849, 3852, 3851, 3854, 3853, 3856, 3855, 3858, 3857, 3860, 3859, 3862, 3861, 3864, 3863, 3866, 3865, 3868, 3867, 3870, 3869, 3872, 3871, 3874, 3873, 3876, 3875, 3878, 3877, 3880, 3879, 3882, 3881, 3884, 3883, 3886, 3885, 3888, 3887, 3890, 3889, 3892, 3891, 3894, 3893, 3896, 3895, 3898, 3897, 3900, 3899, 3902, 3901, 3904, 3903, 3906, 3905, 3908, 3907, 3910, 3909, 3912, 3911, 3914, 3913, 3916, 3915, 3918, 3917, 3920, 3919, 3922, 3921, 3924, 3923, 3926, 3925, 3928, 3927, 3930, 3929, 3932, 3931, 3934, 3933, 3936, 3935, 3938, 3937, 3940, 3939, 3942, 3941, 3944, 3943, 3946, 3945, 3948, 3947, 3950, 3949, 3952, 3951, 3954, 3953, 3956, 3955, 3958, 3957, 3960, 3959, 3962, 3961, 3964, 3963, 3966, 3965, 3968, 3967, 3970, 3969, 3972, 3971, 3974, 3973, 3976, 3975, 3978, 3977, 3980, 3979, 3982, 3981, 3984, 3983, 3986, 3985, 3988, 3987, 3990, 3989, 3992, 3991, 3994, 3993, 3996, 3995, 3998, 3997, 4000, 3999, 4002, 4001, 4004, 4003, 4006, 4005, 4008, 4007, 4010, 4009, 4012, 4011, 4014, 4013, 4016, 4015, 4018, 4017, 4020, 4019, 4022, 4021, 4024, 4023, 4026, 4025, 4028, 4027, 4030, 4029, 4032, 4031, 4034, 4033, 4036, 4035, 4038, 4037, 4040, 4039, 4042, 4041, 4044, 4043, 4046, 4045, 4048, 4047, 4050, 4049, 4052, 4051, 4054, 4053, 4056, 4055, 4058, 4057, 4060, 4059, 4062, 4061, 4064, 4063, 4066, 4065, 4068, 4067, 4070, 4069, 4072, 4071, 4074, 4073, 4076, 4075, 4078, 4077, 4080, 4079, 4082, 4081, 4084, 4083, 4086, 4085, 4088, 4087, 4090, 4089, 4092, 4091, 4094, 4093, 4096, 4095, 4098, 4097, 4100, 4099, 4102, 4101, 4104, 4103, 4106, 4105, 4108, 4107, 4110, 4109, 4112, 4111, 4114, 4113, 4116, 4115, 4118, 4117, 4120, 4119, 4122, 4121, 4124, 4123, 4126, 4125, 4128, 4127, 4130, 4129, 4132, 4131, 4134, 4133, 4136, 4135, 4138, 4137, 4140, 4139, 4142, 4141, 4144, 4143, 4146, 4145, 4148, 4147, 4150, 4149, 4152, 4151, 4154, 4153, 4156, 4155, 4158, 4157, 4160, 4159, 4162, 4161, 4164, 4163, 4166, 4165, 4168, 4167, 4170, 4169, 4172, 4171, 4174, 4173, 4176, 4175, 4178, 4177, 4180, 4179, 4182, 4181, 4184, 4183, 4186, 4185, 4188, 4187, 4190, 4189, 4192, 4191, 4194, 4193, 4196, 4195, 4198, 4197, 4200, 4199, 4202, 4201, 4204, 4203, 4206, 4205, 4208, 4207, 4210, 4209, 4212, 4211, 4214, 4213, 4216, 4215, 4218, 4217, 4220, 4219, 4222, 4221, 4224, 4223, 4226, 4225, 4228, 4227, 4230, 4229, 4232, 4231, 4234, 4233, 4236, 4235, 4238, 4237, 4240, 4239, 4242, 4241, 4244, 4243, 4246, 4245, 4248, 4247, 4250, 4249, 4252, 4251, 4254, 4253, 4256, 4255, 4258, 4257, 4260, 4259, 4262, 4261, 4264, 4263, 4266, 4265, 4268, 4267, 4270, 4269, 4272, 4271, 4274, 4273, 4276, 4275, 4278, 4277, 4280, 4279, 4282, 4281, 4284, 4283, 4286, 4285, 4288, 4287, 4290, 4289, 4292, 4291, 4294, 4293, 4296, 4295, 4298, 4297, 4300, 4299, 4302, 4301, 4304, 4303, 4306, 4305, 4308, 4307, 4310, 4309, 4312, 4311, 4314, 4313, 4316, 4315, 4318, 4317, 4320, 4319, 4322, 4321, 4324, 4323, 4326, 4325, 4328, 4327, 4330, 4329, 4332, 4331, 4334, 4333, 4336, 4335, 4338, 4337, 4340, 4339, 4342, 4341, 4344, 4343, 4346, 4345, 4348, 4347, 4350, 4349, 4352, 4351, 4354, 4353, 4356, 4355, 4358, 4357, 4360, 4359, 4362, 4361, 4364, 4363, 4366, 4365, 4368, 4367, 4370, 4369, 4372, 4371, 4374, 4373, 4376, 4375, 4378, 4377, 4380, 4379, 4382, 4381, 4384, 4383, 4386, 4385, 4388, 4387, 4390, 4389, 4392, 4391, 4394, 4393, 4396, 4395, 4398, 4397, 4400, 4399, 4402, 4401, 4404, 4403, 4406, 4405, 4408, 4407, 4410, 4409, 4412, 4411, 4414, 4413, 4416, 4415, 4418, 4417, 4420, 4419, 4422, 4421, 4424, 4423, 4426, 4425, 4428, 4427, 4430, 4429, 4432, 4431, 4434, 4433, 4436, 4435, 4438, 4437, 4440, 4439, 4442, 4441, 4444, 4443, 4446, 4445, 4448, 4447, 4450, 4449, 4452, 4451, 4454, 4453, 4456, 4455, 4458, 4457, 4460, 4459, 4462, 4461, 4464, 4463, 4466, 4465, 4468, 4467, 4470, 4469, 4472, 4471, 4474, 4473, 4476, 4475, 4478, 4477, 4480, 4479, 4482, 4481, 4484, 4483, 4486, 4485, 4488, 4487, 4490, 4489, 4492, 4491, 4494, 4493, 4496, 4495, 4498, 4497, 4500, 4499, 4502, 4501, 4504, 4503, 4506, 4505, 4508, 4507, 4510, 4509, 4512, 4511, 4514, 4513, 4516, 4515, 4518, 4517, 4520, 4519, 4522, 4521, 4524, 4523, 4526, 4525, 4528, 4527, 4530, 4529, 4532, 4531, 4534, 4533, 4536, 4535, 4538, 4537, 4540, 4539, 4542, 4541, 4544, 4543, 4546, 4545, 4548, 4547, 4550, 4549, 4552, 4551, 4554, 4553, 4556, 4555, 4558, 4557, 4560, 4559, 4562, 4561, 4564, 4563, 4566, 4565, 4568, 4567, 4570, 4569, 4572, 4571, 4574, 4573, 4576, 4575, 4578, 4577, 4580, 4579, 4582, 4581, 4584, 4583, 4586, 4585, 4588, 4587, 4590, 4589, 4592, 4591, 4594, 4593, 4596, 4595, 4598, 4597, 4600, 4599, 4602, 4601, 4604, 4603, 4606, 4605, 4608, 4607, 4610, 4609, 4612, 4611, 4614, 4613, 4616, 4615, 4618, 4617, 4620, 4619, 4622, 4621, 4624, 4623, 4626, 4625, 4628, 4627, 4630, 4629, 4632, 4631, 4634, 4633, 4636, 4635, 4638, 4637, 4640, 4639, 4642, 4641, 4644, 4643, 4646, 4645, 4648, 4647, 4650, 4649, 4652, 4651, 4654, 4653, 4656, 4655, 4658, 4657, 4660, 4659, 4662, 4661, 4664, 4663, 4666, 4665, 4668, 4667, 4670, 4669, 4672, 4671, 4674, 4673, 4676, 4675, 4678, 4677, 4680, 4679, 4682, 4681, 4684, 4683, 4686, 4685, 4688, 4687, 4690, 4689, 4692, 4691, 4694, 4693, 4696, 4695, 4698, 4697, 4700, 4699, 4702, 4701, 4704, 4703, 4706, 4705, 4708, 4707, 4710, 4709, 4712, 4711, 4714, 4713, 4716, 4715, 4718, 4717, 4720, 4719, 4722, 4721, 4724, 4723, 4726, 4725, 4728, 4727, 4730, 4729, 4732, 4731, 4734, 4733, 4736, 4735, 4738, 4737, 4740, 4739, 4742, 4741, 4744, 4743, 4746, 4745, 4748, 4747, 4750, 4749, 4752, 4751, 4754, 4753, 4756, 4755, 4758, 4757, 4760, 4759, 4762, 4761, 4764, 4763, 4766, 4765, 4768, 4767, 4770, 4769, 4772, 4771, 4774, 4773, 4776, 4775, 4778, 4777, 4780, 4779, 4782, 4781, 4784, 4783, 4786, 4785, 4788, 4787, 4790, 4789, 4792, 4791, 4794, 4793, 4796, 4795, 4798, 4797, 4800, 4799, 4802, 4801, 4804, 4803, 4806, 4805, 4808, 4807, 4810, 4809, 4812, 4811, 4814, 4813, 4816, 4815, 4818, 4817, 4820, 4819, 4822, 4821, 4824, 4823, 4826, 4825, 4828, 4827, 4830, 4829, 4832, 4831, 4834, 4833, 4836, 4835, 4838, 4837, 4840, 4839, 4842, 4841, 4844, 4843, 4846, 4845, 4848, 4847, 4850, 4849, 4852, 4851, 4854, 4853, 4856, 4855, 4858, 4857, 4860, 4859, 4862, 4861, 4864, 4863, 4866, 4865, 4868, 4867, 4870, 4869, 4872, 4871, 4874, 4873, 4876, 4875, 4878, 4877, 4880, 4879, 4882, 4881, 4884, 4883, 4886, 4885, 4888, 4887, 4890, 4889, 4892, 4891, 4894, 4893, 4896, 4895, 4898, 4897, 4900, 4899, 4902, 4901, 4904, 4903, 4906, 4905, 4908, 4907, 4910, 4909, 4912, 4911, 4914, 4913, 4916, 4915, 4918, 4917, 4920, 4919, 4922, 4921, 4924, 4923, 4926, 4925, 4928, 4927, 4930, 4929, 4932, 4931, 4934, 4933, 4936, 4935, 4938, 4937, 4940, 4939, 4942, 4941, 4944, 4943, 4946, 4945, 4948, 4947, 4950, 4949, 4952, 4951, 4954, 4953, 4956, 4955, 4958, 4957, 4960, 4959, 4962, 4961, 4964, 4963, 4966, 4965, 4968, 4967, 4970, 4969, 4972, 4971, 4974, 4973, 4976, 4975, 4978, 4977, 4980, 4979, 4982, 4981, 4984, 4983, 4986, 4985, 4988, 4987, 4990, 4989, 4992, 4991, 4994, 4993, 4996, 4995, 4998, 4997, 5000, 4999, 5002, 5001, 5004, 5003, 5006, 5005, 5008, 5007, 5010, 5009, 5012, 5011, 5014, 5013, 5016, 5015, 5018, 5017, 5020, 5019, 5022, 5021, 5024, 5023, 5026, 5025, 5028, 5027, 5030, 5029, 5032, 5031, 5034, 5033, 5036, 5035, 5038, 5037, 5040, 5039, 5042, 5041, 5044, 5043, 5046, 5045, 5048, 5047, 5050, 5049, 5052, 5051, 5054, 5053, 5056, 5055, 5058, 5057, 5060, 5059, 5062, 5061, 5064, 5063, 5066, 5065, 5068, 5067, 5070, 5069, 5072, 5071, 5074, 5073, 5076, 5075, 5078, 5077, 5080, 5079, 5082, 5081, 5084, 5083, 5086, 5085, 5088, 5087, 5090, 5089, 5092, 5091, 5094, 5093, 5096, 5095, 5098, 5097, 5100, 5099, 5102, 5101, 5104, 5103, 5106, 5105, 5108, 5107, 5110, 5109, 5112, 5111, 5114, 5113, 5116, 5115, 5118, 5117, 5120, 5119, 5122, 5121, 5124, 5123, 5126, 5125, 5128, 5127, 5130, 5129, 5132, 5131, 5134, 5133, 5136, 5135, 5138, 5137, 5140, 5139, 5142, 5141, 5144, 5143, 5146, 5145, 5148, 5147, 5150, 5149, 5152, 5151, 5154, 5153, 5156, 5155, 5158, 5157, 5160, 5159, 5162, 5161, 5164, 5163, 5166, 5165, 5168, 5167, 5170, 5169, 5172, 5171, 5174, 5173, 5176, 5175, 5178, 5177, 5180, 5179, 5182, 5181, 5184, 5183, 5186, 5185, 5188, 5187, 5190, 5189, 5192, 5191, 5194, 5193, 5196, 5195, 5198, 5197, 5200, 5199, 5202, 5201, 5204, 5203, 5206, 5205, 5208, 5207, 5210, 5209, 5212, 5211, 5214, 5213, 5216, 5215, 5218, 5217, 5220, 5219, 5222, 5221, 5224, 5223, 5226, 5225, 5228, 5227, 5230, 5229, 5232, 5231, 5234, 5233, 5236, 5235, 5238, 5237, 5240, 5239, 5242, 5241, 5244, 5243, 5246, 5245, 5248, 5247, 5250, 5249, 5252, 5251, 5254, 5253, 5256, 5255, 5258, 5257, 5260, 5259, 5262, 5261, 5264, 5263, 5266, 5265, 5268, 5267, 5270, 5269, 5272, 5271, 5274, 5273, 5276, 5275, 5278, 5277, 5280, 5279, 5282, 5281, 5284, 5283, 5286, 5285, 5288, 5287, 5290, 5289, 5292, 5291, 5294, 5293, 5296, 5295, 5298, 5297, 5300, 5299, 5302, 5301, 5304, 5303, 5306, 5305, 5308, 5307, 5310, 5309, 5312, 5311, 5314, 5313, 5316, 5315, 5318, 5317, 5320, 5319, 5322, 5321, 5324, 5323, 5326, 5325, 5328, 5327, 5330, 5329, 5332, 5331, 5334, 5333, 5336, 5335, 5338, 5337, 5340, 5339, 5342, 5341, 5344, 5343, 5346, 5345, 5348, 5347, 5350, 5349, 5352, 5351, 5354, 5353, 5356, 5355, 5358, 5357, 5360, 5359, 5362, 5361, 5364, 5363, 5366, 5365, 5368, 5367, 5370, 5369, 5372, 5371, 5374, 5373, 5376, 5375, 5378, 5377, 5380, 5379, 5382, 5381, 5384, 5383, 5386, 5385, 5388, 5387, 5390, 5389, 5392, 5391, 5394, 5393, 5396, 5395, 5398, 5397, 5400, 5399, 5402, 5401, 5404, 5403, 5406, 5405, 5408, 5407, 5410, 5409, 5412, 5411, 5414, 5413, 5416, 5415, 5418, 5417, 5420, 5419, 5422, 5421, 5424, 5423, 5426, 5425, 5428, 5427, 5430, 5429, 5432, 5431, 5434, 5433, 5436, 5435, 5438, 5437, 5440, 5439, 5442, 5441, 5444, 5443, 5446, 5445, 5448, 5447, 5450, 5449, 5452, 5451, 5454, 5453, 5456, 5455, 5458, 5457, 5460, 5459, 5462, 5461, 5464, 5463, 5466, 5465, 5468, 5467, 5470, 5469, 5472, 5471, 5474, 5473, 5476, 5475, 5478, 5477, 5480, 5479, 5482, 5481, 5484, 5483, 5486, 5485, 5488, 5487, 5490, 5489, 5492, 5491, 5494, 5493, 5496, 5495, 5498, 5497, 5500, 5499, 5502, 5501, 5504, 5503, 5506, 5505, 5508, 5507, 5510, 5509, 5512, 5511, 5514, 5513, 5516, 5515, 5518, 5517, 5520, 5519, 5522, 5521, 5524, 5523, 5526, 5525, 5528, 5527, 5530, 5529, 5532, 5531, 5534, 5533, 5536, 5535, 5538, 5537, 5540, 5539, 5542, 5541, 5544, 5543, 5546, 5545, 5548, 5547, 5550, 5549, 5552, 5551, 5554, 5553, 5556, 5555, 5558, 5557, 5560, 5559, 5562, 5561, 5564, 5563, 5566, 5565, 5568, 5567, 5570, 5569, 5572, 5571, 5574, 5573, 5576, 5575, 5578, 5577, 5580, 5579, 5582, 5581, 5584, 5583, 5586, 5585, 5588, 5587, 5590, 5589, 5592, 5591, 5594, 5593, 5596, 5595, 5598, 5597, 5600, 5599, 5602, 5601, 5604, 5603, 5606, 5605, 5608, 5607, 5610, 5609, 5612, 5611, 5614, 5613, 5616, 5615, 5618, 5617, 5620, 5619, 5622, 5621, 5624, 5623, 5626, 5625, 5628, 5627, 5630, 5629, 5632, 5631, 5634, 5633, 5636, 5635, 5638, 5637, 5640, 5639, 5642, 5641, 5644, 5643, 5646, 5645, 5648, 5647, 5650, 5649, 5652, 5651, 5654, 5653, 5656, 5655, 5658, 5657, 5660, 5659, 5662, 5661, 5664, 5663, 5666, 5665, 5668, 5667, 5670, 5669, 5672, 5671, 5674, 5673, 5676, 5675, 5678, 5677, 5680, 5679, 5682, 5681, 5684, 5683, 5686, 5685, 5688, 5687, 5690, 5689, 5692, 5691, 5694, 5693, 5696, 5695, 5698, 5697, 5700, 5699, 5702, 5701, 5704, 5703, 5706, 5705, 5708, 5707, 5710, 5709, 5712, 5711, 5714, 5713, 5716, 5715, 5718, 5717, 5720, 5719, 5722, 5721, 5724, 5723, 5726, 5725, 5728, 5727, 5730, 5729, 5732, 5731, 5734, 5733, 5736, 5735, 5738, 5737, 5740, 5739, 5742, 5741, 5744, 5743, 5746, 5745, 5748, 5747, 5750, 5749, 5752, 5751, 5754, 5753, 5756, 5755, 5758, 5757, 5760, 5759, 5762, 5761, 5764, 5763, 5766, 5765, 5768, 5767, 5770, 5769, 5772, 5771, 5774, 5773, 5776, 5775, 5778, 5777, 5780, 5779, 5782, 5781, 5784, 5783, 5786, 5785, 5788, 5787, 5790, 5789, 5792, 5791, 5794, 5793, 5796, 5795, 5798, 5797, 5800, 5799, 5802, 5801, 5804, 5803, 5806, 5805, 5808, 5807, 5810, 5809, 5812, 5811, 5814, 5813, 5816, 5815, 5818, 5817, 5820, 5819, 5822, 5821, 5824, 5823, 5826, 5825, 5828, 5827, 5830, 5829, 5832, 5831, 5834, 5833, 5836, 5835, 5838, 5837, 5840, 5839, 5842, 5841, 5844, 5843, 5846, 5845, 5848, 5847, 5850, 5849, 5852, 5851, 5854, 5853, 5856, 5855, 5858, 5857, 5860, 5859, 5862, 5861, 5864, 5863, 5866, 5865, 5868, 5867, 5870, 5869, 5872, 5871, 5874, 5873, 5876, 5875, 5878, 5877, 5880, 5879, 5882, 5881, 5884, 5883, 5886, 5885, 5888, 5887, 5890, 5889, 5892, 5891, 5894, 5893, 5896, 5895, 5898, 5897, 5900, 5899, 5902, 5901, 5904, 5903, 5906, 5905, 5908, 5907, 5910, 5909, 5912, 5911, 5914, 5913, 5916, 5915, 5918, 5917, 5920, 5919, 5922, 5921, 5924, 5923, 5926, 5925, 5928, 5927, 5930, 5929, 5932, 5931, 5934, 5933, 5936, 5935, 5938, 5937, 5940, 5939, 5942, 5941, 5944, 5943, 5946, 5945, 5948, 5947, 5950, 5949, 5952, 5951, 5954, 5953, 5956, 5955, 5958, 5957, 5960, 5959, 5962, 5961, 5964, 5963, 5966, 5965, 5968, 5967, 5970, 5969, 5972, 5971, 5974, 5973, 5976, 5975, 5978, 5977, 5980, 5979, 5982, 5981, 5984, 5983, 5986, 5985, 5988, 5987, 5990, 5989, 5992, 5991, 5994, 5993, 5996, 5995, 5998, 5997, 6000, 5999, 6002, 6001, 6004, 6003, 6006, 6005, 6008, 6007, 6010, 6009, 6012, 6011, 6014, 6013, 6016, 6015, 6018, 6017, 6020, 6019, 6022, 6021, 6024, 6023, 6026, 6025, 6028, 6027, 6030, 6029, 6032, 6031, 6034, 6033, 6036, 6035, 6038, 6037, 6040, 6039, 6042, 6041, 6044, 6043, 6046, 6045, 6048, 6047, 6050, 6049, 6052, 6051, 6054, 6053, 6056, 6055, 6058, 6057, 6060, 6059, 6062, 6061, 6064, 6063, 6066, 6065, 6068, 6067, 6070, 6069, 6072, 6071, 6074, 6073, 6076, 6075, 6078, 6077, 6080, 6079, 6082, 6081, 6084, 6083, 6086, 6085, 6088, 6087, 6090, 6089, 6092, 6091, 6094, 6093, 6096, 6095, 6098, 6097, 6100, 6099, 6102, 6101, 6104, 6103, 6106, 6105, 6108, 6107, 6110, 6109, 6112, 6111, 6114, 6113, 6116, 6115, 6118, 6117, 6120, 6119, 6122, 6121, 6124, 6123, 6126, 6125, 6128, 6127, 6130, 6129, 6132, 6131, 6134, 6133, 6136, 6135, 6138, 6137, 6140, 6139, 6142, 6141, 6144, 6143, 6146, 6145, 6148, 6147, 6150, 6149, 6152, 6151, 6154, 6153, 6156, 6155, 6158, 6157, 6160, 6159, 6162, 6161, 6164, 6163, 6166, 6165, 6168, 6167, 6170, 6169, 6172, 6171, 6174, 6173, 6176, 6175, 6178, 6177, 6180, 6179, 6182, 6181, 6184, 6183, 6186, 6185, 6188, 6187, 6190, 6189, 6192, 6191, 6194, 6193, 6196, 6195, 6198, 6197, 6200, 6199, 6202, 6201, 6204, 6203, 6206, 6205, 6208, 6207, 6210, 6209, 6212, 6211, 6214, 6213, 6216, 6215, 6218, 6217, 6220, 6219, 6222, 6221, 6224, 6223, 6226, 6225, 6228, 6227, 6230, 6229, 6232, 6231, 6234, 6233, 6236, 6235, 6238, 6237, 6240, 6239, 6242, 6241, 6244, 6243, 6246, 6245, 6248, 6247, 6250, 6249, 6252, 6251, 6254, 6253, 6256, 6255, 6258, 6257, 6260, 6259, 6262, 6261, 6264, 6263, 6266, 6265, 6268, 6267, 6270, 6269, 6272, 6271, 6274, 6273, 6276, 6275, 6278, 6277, 6280, 6279, 6282, 6281, 6284, 6283, 6286, 6285, 6288, 6287, 6290, 6289, 6292, 6291, 6294, 6293, 6296, 6295, 6298, 6297, 6300, 6299, 6302, 6301, 6304, 6303, 6306, 6305, 6308, 6307, 6310, 6309, 6312, 6311, 6314, 6313, 6316, 6315, 6318, 6317, 6320, 6319, 6322, 6321, 6324, 6323, 6326, 6325, 6328, 6327, 6330, 6329, 6332, 6331, 6334, 6333, 6336, 6335, 6338, 6337, 6340, 6339, 6342, 6341, 6344, 6343, 6346, 6345, 6348, 6347, 6350, 6349, 6352, 6351, 6354, 6353, 6356, 6355, 6358, 6357, 6360, 6359, 6362, 6361, 6364, 6363, 6366, 6365, 6368, 6367, 6370, 6369, 6372, 6371, 6374, 6373, 6376, 6375, 6378, 6377, 6380, 6379, 6382, 6381, 6384, 6383, 6386, 6385, 6388, 6387, 6390, 6389, 6392, 6391, 6394, 6393, 6396, 6395, 6398, 6397, 6400, 6399, 6402, 6401, 6404, 6403, 6406, 6405, 6408, 6407, 6410, 6409, 6412, 6411, 6414, 6413, 6416, 6415, 6418, 6417, 6420, 6419, 6422, 6421, 6424, 6423, 6426, 6425, 6428, 6427, 6430, 6429, 6432, 6431, 6434, 6433, 6436, 6435, 6438, 6437, 6440, 6439, 6442, 6441, 6444, 6443, 6446, 6445, 6448, 6447, 6450, 6449, 6452, 6451, 6454, 6453, 6456, 6455, 6458, 6457, 6460, 6459, 6462, 6461, 6464, 6463, 6466, 6465, 6468, 6467, 6470, 6469, 6472, 6471, 6474, 6473, 6476, 6475, 6478, 6477, 6480, 6479, 6482, 6481, 6484, 6483, 6486, 6485, 6488, 6487, 6490, 6489, 6492, 6491, 6494, 6493, 6496, 6495, 6498, 6497, 6500, 6499, 6502, 6501, 6504, 6503, 6506, 6505, 6508, 6507, 6510, 6509, 6512, 6511, 6514, 6513, 6516, 6515, 6518, 6517, 6520, 6519, 6522, 6521, 6524, 6523, 6526, 6525, 6528, 6527, 6530, 6529, 6532, 6531, 6534, 6533, 6536, 6535, 6538, 6537, 6540, 6539, 6542, 6541, 6544, 6543, 6546, 6545, 6548, 6547, 6550, 6549, 6552, 6551, 6554, 6553, 6556, 6555, 6558, 6557, 6560, 6559, 6562, 6561, 6564, 6563, 6566, 6565, 6568, 6567, 6570, 6569, 6572, 6571, 6574, 6573, 6576, 6575, 6578, 6577, 6580, 6579, 6582, 6581, 6584, 6583, 6586, 6585, 6588, 6587, 6590, 6589, 6592, 6591, 6594, 6593, 6596, 6595, 6598, 6597, 6600, 6599, 6602, 6601, 6604, 6603, 6606, 6605, 6608, 6607, 6610, 6609, 6612, 6611, 6614, 6613, 6616, 6615, 6618, 6617, 6620, 6619, 6622, 6621, 6624, 6623, 6626, 6625, 6628, 6627, 6630, 6629, 6632, 6631, 6634, 6633, 6636, 6635, 6638, 6637, 6640, 6639, 6642, 6641, 6644, 6643, 6646, 6645, 6648, 6647, 6650, 6649, 6652, 6651, 6654, 6653, 6656, 6655, 6658, 6657, 6660, 6659, 6662, 6661, 6664, 6663, 6666, 6665, 6668, 6667, 6670, 6669, 6672, 6671, 6674, 6673, 6676, 6675, 6678, 6677, 6680, 6679, 6682, 6681, 6684, 6683, 6686, 6685, 6688, 6687, 6690, 6689, 6692, 6691, 6694, 6693, 6696, 6695, 6698, 6697, 6700, 6699, 6702, 6701, 6704, 6703, 6706, 6705, 6708, 6707, 6710, 6709, 6712, 6711, 6714, 6713, 6716, 6715, 6718, 6717, 6720, 6719, 6722, 6721, 6724, 6723, 6726, 6725, 6728, 6727, 6730, 6729, 6732, 6731, 6734, 6733, 6736, 6735, 6738, 6737, 6740, 6739, 6742, 6741, 6744, 6743, 6746, 6745, 6748, 6747, 6750, 6749, 6752, 6751, 6754, 6753, 6756, 6755, 6758, 6757, 6760, 6759, 6762, 6761, 6764, 6763, 6766, 6765, 6768, 6767, 6770, 6769, 6772, 6771, 6774, 6773, 6776, 6775, 6778, 6777, 6780, 6779, 6782, 6781, 6784, 6783, 6786, 6785, 6788, 6787, 6790, 6789, 6792, 6791, 6794, 6793, 6796, 6795, 6798, 6797, 6800, 6799, 6802, 6801, 6804, 6803, 6806, 6805, 6808, 6807, 6810, 6809, 6812, 6811, 6814, 6813, 6816, 6815, 6818, 6817, 6820, 6819, 6822, 6821, 6824, 6823, 6826, 6825, 6828, 6827, 6830, 6829, 6832, 6831, 6834, 6833, 6836, 6835, 6838, 6837, 6840, 6839, 6842, 6841, 6844, 6843, 6846, 6845, 6848, 6847, 6850, 6849, 6852, 6851, 6854, 6853, 6856, 6855, 6858, 6857, 6860, 6859, 6862, 6861, 6864, 6863, 6866, 6865, 6868, 6867, 6870, 6869, 6872, 6871, 6874, 6873, 6876, 6875, 6878, 6877, 6880, 6879, 6882, 6881, 6884, 6883, 6886, 6885, 6888, 6887, 6890, 6889, 6892, 6891, 6894, 6893, 6896, 6895, 6898, 6897, 6900, 6899, 6902, 6901, 6904, 6903, 6906, 6905, 6908, 6907, 6910, 6909, 6912, 6911, 6914, 6913, 6916, 6915, 6918, 6917, 6920, 6919, 6922, 6921, 6924, 6923, 6926, 6925, 6928, 6927, 6930, 6929, 6932, 6931, 6934, 6933, 6936, 6935, 6938, 6937, 6940, 6939, 6942, 6941, 6944, 6943, 6946, 6945, 6948, 6947, 6950, 6949, 6952, 6951, 6954, 6953, 6956, 6955, 6958, 6957, 6960, 6959, 6962, 6961, 6964, 6963, 6966, 6965, 6968, 6967, 6970, 6969, 6972, 6971, 6974, 6973, 6976, 6975, 6978, 6977, 6980, 6979, 6982, 6981, 6984, 6983, 6986, 6985, 6988, 6987, 6990, 6989, 6992, 6991, 6994, 6993, 6996, 6995, 6998, 6997, 7000, 6999, 7002, 7001, 7004, 7003, 7006, 7005, 7008, 7007, 7010, 7009, 7012, 7011, 7014, 7013, 7016, 7015, 7018, 7017, 7020, 7019, 7022, 7021, 7024, 7023, 7026, 7025, 7028, 7027, 7030, 7029, 7032, 7031, 7034, 7033, 7036, 7035, 7038, 7037, 7040, 7039, 7042, 7041, 7044, 7043, 7046, 7045, 7048, 7047, 7050, 7049, 7052, 7051, 7054, 7053, 7056, 7055, 7058, 7057, 7060, 7059, 7062, 7061, 7064, 7063, 7066, 7065, 7068, 7067, 7070, 7069, 7072, 7071, 7074, 7073, 7076, 7075, 7078, 7077, 7080, 7079, 7082, 7081, 7084, 7083, 7086, 7085, 7088, 7087, 7090, 7089, 7092, 7091, 7094, 7093, 7096, 7095, 7098, 7097, 7100, 7099, 7102, 7101, 7104, 7103, 7106, 7105, 7108, 7107, 7110, 7109, 7112, 7111, 7114, 7113, 7116, 7115, 7118, 7117, 7120, 7119, 7122, 7121, 7124, 7123, 7126, 7125, 7128, 7127, 7130, 7129, 7132, 7131, 7134, 7133, 7136, 7135, 7138, 7137, 7140, 7139, 7142, 7141, 7144, 7143, 7146, 7145, 7148, 7147, 7150, 7149, 7152, 7151, 7154, 7153, 7156, 7155, 7158, 7157, 7160, 7159, 7162, 7161, 7164, 7163, 7166, 7165, 7168, 7167, 7170, 7169, 7172, 7171, 7174, 7173, 7176, 7175, 7178, 7177, 7180, 7179, 7182, 7181, 7184, 7183, 7186, 7185, 7188, 7187, 7190, 7189, 7192, 7191, 7194, 7193, 7196, 7195, 7198, 7197, 7200, 7199, 7202, 7201, 7204, 7203, 7206, 7205, 7208, 7207, 7210, 7209, 7212, 7211, 7214, 7213, 7216, 7215, 7218, 7217, 7220, 7219, 7222, 7221, 7224, 7223, 7226, 7225, 7228, 7227, 7230, 7229, 7232, 7231, 7234, 7233, 7236, 7235, 7238, 7237, 7240, 7239, 7242, 7241, 7244, 7243, 7246, 7245, 7248, 7247, 7250, 7249, 7252, 7251, 7254, 7253, 7256, 7255, 7258, 7257, 7260, 7259, 7262, 7261, 7264, 7263, 7266, 7265, 7268, 7267, 7270, 7269, 7272, 7271, 7274, 7273, 7276, 7275, 7278, 7277, 7280, 7279, 7282, 7281, 7284, 7283, 7286, 7285, 7288, 7287, 7290, 7289, 7292, 7291, 7294, 7293, 7296, 7295, 7298, 7297, 7300, 7299, 7302, 7301, 7304, 7303, 7306, 7305, 7308, 7307, 7310, 7309, 7312, 7311, 7314, 7313, 7316, 7315, 7318, 7317, 7320, 7319, 7322, 7321, 7324, 7323, 7326, 7325, 7328, 7327, 7330, 7329, 7332, 7331, 7334, 7333, 7336, 7335, 7338, 7337, 7340, 7339, 7342, 7341, 7344, 7343, 7346, 7345, 7348, 7347, 7350, 7349, 7352, 7351, 7354, 7353, 7356, 7355, 7358, 7357, 7360, 7359, 7362, 7361, 7364, 7363, 7366, 7365, 7368, 7367, 7370, 7369, 7372, 7371, 7374, 7373, 7376, 7375, 7378, 7377, 7380, 7379, 7382, 7381, 7384, 7383, 7386, 7385, 7388, 7387, 7390, 7389, 7392, 7391, 7394, 7393, 7396, 7395, 7398, 7397, 7400, 7399, 7402, 7401, 7404, 7403, 7406, 7405, 7408, 7407, 7410, 7409, 7412, 7411, 7414, 7413, 7416, 7415, 7418, 7417, 7420, 7419, 7422, 7421, 7424, 7423, 7426, 7425, 7428, 7427, 7430, 7429, 7432, 7431, 7434, 7433, 7436, 7435, 7438, 7437, 7440, 7439, 7442, 7441, 7444, 7443, 7446, 7445, 7448, 7447, 7450, 7449, 7452, 7451, 7454, 7453, 7456, 7455, 7458, 7457, 7460, 7459, 7462, 7461, 7464, 7463, 7466, 7465, 7468, 7467, 7470, 7469, 7472, 7471, 7474, 7473, 7476, 7475, 7478, 7477, 7480, 7479, 7482, 7481, 7484, 7483, 7486, 7485, 7488, 7487, 7490, 7489, 7492, 7491, 7494, 7493, 7496, 7495, 7498, 7497, 7500, 7499, 7502, 7501, 7504, 7503, 7506, 7505, 7508, 7507, 7510, 7509, 7512, 7511, 7514, 7513, 7516, 7515, 7518, 7517, 7520, 7519, 7522, 7521, 7524, 7523, 7526, 7525, 7528, 7527, 7530, 7529, 7532, 7531, 7534, 7533, 7536, 7535, 7538, 7537, 7540, 7539, 7542, 7541, 7544, 7543, 7546, 7545, 7548, 7547, 7550, 7549, 7552, 7551, 7554, 7553, 7556, 7555, 7558, 7557, 7560, 7559, 7562, 7561, 7564, 7563, 7566, 7565, 7568, 7567, 7570, 7569, 7572, 7571, 7574, 7573, 7576, 7575, 7578, 7577, 7580, 7579, 7582, 7581, 7584, 7583, 7586, 7585, 7588, 7587, 7590, 7589, 7592, 7591, 7594, 7593, 7596, 7595, 7598, 7597, 7600, 7599, 7602, 7601, 7604, 7603, 7606, 7605, 7608, 7607, 7610, 7609, 7612, 7611, 7614, 7613, 7616, 7615, 7618, 7617, 7620, 7619, 7622, 7621, 7624, 7623, 7626, 7625, 7628, 7627, 7630, 7629, 7632, 7631, 7634, 7633, 7636, 7635, 7638, 7637, 7640, 7639, 7642, 7641, 7644, 7643, 7646, 7645, 7648, 7647, 7650, 7649, 7652, 7651, 7654, 7653, 7656, 7655, 7658, 7657, 7660, 7659, 7662, 7661, 7664, 7663, 7666, 7665, 7668, 7667, 7670, 7669, 7672, 7671, 7674, 7673, 7676, 7675, 7678, 7677, 7680, 7679, 7682, 7681, 7684, 7683, 7686, 7685, 7688, 7687, 7690, 7689, 7692, 7691, 7694, 7693, 7696, 7695, 7698, 7697, 7700, 7699, 7702, 7701, 7704, 7703, 7706, 7705, 7708, 7707, 7710, 7709, 7712, 7711, 7714, 7713, 7716, 7715, 7718, 7717, 7720, 7719, 7722, 7721, 7724, 7723, 7726, 7725, 7728, 7727, 7730, 7729, 7732, 7731, 7734, 7733, 7736, 7735, 7738, 7737, 7740, 7739, 7742, 7741, 7744, 7743, 7746, 7745, 7748, 7747, 7750, 7749, 7752, 7751, 7754, 7753, 7756, 7755, 7758, 7757, 7760, 7759, 7762, 7761, 7764, 7763, 7766, 7765, 7768, 7767, 7770, 7769, 7772, 7771, 7774, 7773, 7776, 7775, 7778, 7777, 7780, 7779, 7782, 7781, 7784, 7783, 7786, 7785, 7788, 7787, 7790, 7789, 7792, 7791, 7794, 7793, 7796, 7795, 7798, 7797, 7800, 7799, 7802, 7801, 7804, 7803, 7806, 7805, 7808, 7807, 7810, 7809, 7812, 7811, 7814, 7813, 7816, 7815, 7818, 7817, 7820, 7819, 7822, 7821, 7824, 7823, 7826, 7825, 7828, 7827, 7830, 7829, 7832, 7831, 7834, 7833, 7836, 7835, 7838, 7837, 7840, 7839, 7842, 7841, 7844, 7843, 7846, 7845, 7848, 7847, 7850, 7849, 7852, 7851, 7854, 7853, 7856, 7855, 7858, 7857, 7860, 7859, 7862, 7861, 7864, 7863, 7866, 7865, 7868, 7867, 7870, 7869, 7872, 7871, 7874, 7873, 7876, 7875, 7878, 7877, 7880, 7879, 7882, 7881, 7884, 7883, 7886, 7885, 7888, 7887, 7890, 7889, 7892, 7891, 7894, 7893, 7896, 7895, 7898, 7897, 7900, 7899, 7902, 7901, 7904, 7903, 7906, 7905, 7908, 7907, 7910, 7909, 7912, 7911, 7914, 7913, 7916, 7915, 7918, 7917, 7920, 7919, 7922, 7921, 7924, 7923, 7926, 7925, 7928, 7927, 7930, 7929, 7932, 7931, 7934, 7933, 7936, 7935, 7938, 7937, 7940, 7939, 7942, 7941, 7944, 7943, 7946, 7945, 7948, 7947, 7950, 7949, 7952, 7951, 7954, 7953, 7956, 7955, 7958, 7957, 7960, 7959, 7962, 7961, 7964, 7963, 7966, 7965, 7968, 7967, 7970, 7969, 7972, 7971, 7974, 7973, 7976, 7975, 7978, 7977, 7980, 7979, 7982, 7981, 7984, 7983, 7986, 7985, 7988, 7987, 7990, 7989, 7992, 7991, 7994, 7993, 7996, 7995, 7998, 7997, 8000, 7999, 8002, 8001, 8004, 8003, 8006, 8005, 8008, 8007, 8010, 8009, 8012, 8011, 8014, 8013, 8016, 8015, 8018, 8017, 8020, 8019, 8022, 8021, 8024, 8023, 8026, 8025, 8028, 8027, 8030, 8029, 8032, 8031, 8034, 8033, 8036, 8035, 8038, 8037, 8040, 8039, 8042, 8041, 8044, 8043, 8046, 8045, 8048, 8047, 8050, 8049, 8052, 8051, 8054, 8053, 8056, 8055, 8058, 8057, 8060, 8059, 8062, 8061, 8064, 8063, 8066, 8065, 8068, 8067, 8070, 8069, 8072, 8071, 8074, 8073, 8076, 8075, 8078, 8077, 8080, 8079, 8082, 8081, 8084, 8083, 8086, 8085, 8088, 8087, 8090, 8089, 8092, 8091, 8094, 8093, 8096, 8095, 8098, 8097, 8100, 8099, 8102, 8101, 8104, 8103, 8106, 8105, 8108, 8107, 8110, 8109, 8112, 8111, 8114, 8113, 8116, 8115, 8118, 8117, 8120, 8119, 8122, 8121, 8124, 8123, 8126, 8125, 8128, 8127, 8130, 8129, 8132, 8131, 8134, 8133, 8136, 8135, 8138, 8137, 8140, 8139, 8142, 8141, 8144, 8143, 8146, 8145, 8148, 8147, 8150, 8149, 8152, 8151, 8154, 8153, 8156, 8155, 8158, 8157, 8160, 8159, 8162, 8161, 8164, 8163, 8166, 8165, 8168, 8167, 8170, 8169, 8172, 8171, 8174, 8173, 8176, 8175, 8178, 8177, 8180, 8179, 8182, 8181, 8184, 8183, 8186, 8185, 8188, 8187, 8190, 8189, 8192, 8191, 8194, 8193, 8196, 8195, 8198, 8197, 8200, 8199, 8202, 8201, 8204, 8203, 8206, 8205, 8208, 8207, 8210, 8209, 8212, 8211, 8214, 8213, 8216, 8215, 8218, 8217, 8220, 8219, 8222, 8221, 8224, 8223, 8226, 8225, 8228, 8227, 8230, 8229, 8232, 8231, 8234, 8233, 8236, 8235, 8238, 8237, 8240, 8239, 8242, 8241, 8244, 8243, 8246, 8245, 8248, 8247, 8250, 8249, 8252, 8251, 8254, 8253, 8256, 8255, 8258, 8257, 8260, 8259, 8262, 8261, 8264, 8263, 8266, 8265, 8268, 8267, 8270, 8269, 8272, 8271, 8274, 8273, 8276, 8275, 8278, 8277, 8280, 8279, 8282, 8281, 8284, 8283, 8286, 8285, 8288, 8287, 8290, 8289, 8292, 8291, 8294, 8293, 8296, 8295, 8298, 8297, 8300, 8299, 8302, 8301, 8304, 8303, 8306, 8305, 8308, 8307, 8310, 8309, 8312, 8311, 8314, 8313, 8316, 8315, 8318, 8317, 8320, 8319, 8322, 8321, 8324, 8323, 8326, 8325, 8328, 8327, 8330, 8329, 8332, 8331, 8334, 8333, 8336, 8335, 8338, 8337, 8340, 8339, 8342, 8341, 8344, 8343, 8346, 8345, 8348, 8347, 8350, 8349, 8352, 8351, 8354, 8353, 8356, 8355, 8358, 8357, 8360, 8359, 8362, 8361, 8364, 8363, 8366, 8365, 8368, 8367, 8370, 8369, 8372, 8371, 8374, 8373, 8376, 8375, 8378, 8377, 8380, 8379, 8382, 8381, 8384, 8383, 8386, 8385, 8388, 8387, 8390, 8389, 8392, 8391, 8394, 8393, 8396, 8395, 8398, 8397, 8400, 8399, 8402, 8401, 8404, 8403, 8406, 8405, 8408, 8407, 8410, 8409, 8412, 8411, 8414, 8413, 8416, 8415, 8418, 8417, 8420, 8419, 8422, 8421, 8424, 8423, 8426, 8425, 8428, 8427, 8430, 8429, 8432, 8431, 8434, 8433, 8436, 8435, 8438, 8437, 8440, 8439, 8442, 8441, 8444, 8443, 8446, 8445, 8448, 8447, 8450, 8449, 8452, 8451, 8454, 8453, 8456, 8455, 8458, 8457, 8460, 8459, 8462, 8461, 8464, 8463, 8466, 8465, 8468, 8467, 8470, 8469, 8472, 8471, 8474, 8473, 8476, 8475, 8478, 8477, 8480, 8479, 8482, 8481, 8484, 8483, 8486, 8485, 8488, 8487, 8490, 8489, 8492, 8491, 8494, 8493, 8496, 8495, 8498, 8497, 8500, 8499, 8502, 8501, 8504, 8503, 8506, 8505, 8508, 8507, 8510, 8509, 8512, 8511, 8514, 8513, 8516, 8515, 8518, 8517, 8520, 8519, 8522, 8521, 8524, 8523, 8526, 8525, 8528, 8527, 8530, 8529, 8532, 8531, 8534, 8533, 8536, 8535, 8538, 8537, 8540, 8539, 8542, 8541, 8544, 8543, 8546, 8545, 8548, 8547, 8550, 8549, 8552, 8551, 8554, 8553, 8556, 8555, 8558, 8557, 8560, 8559, 8562, 8561, 8564, 8563, 8566, 8565, 8568, 8567, 8570, 8569, 8572, 8571, 8574, 8573, 8576, 8575, 8578, 8577, 8580, 8579, 8582, 8581, 8584, 8583, 8586, 8585, 8588, 8587, 8590, 8589, 8592, 8591, 8594, 8593, 8596, 8595, 8598, 8597, 8600, 8599, 8602, 8601, 8604, 8603, 8606, 8605, 8608, 8607, 8610, 8609, 8612, 8611, 8614, 8613, 8616, 8615, 8618, 8617, 8620, 8619, 8622, 8621, 8624, 8623, 8626, 8625, 8628, 8627, 8630, 8629, 8632, 8631, 8634, 8633, 8636, 8635, 8638, 8637, 8640, 8639, 8642, 8641, 8644, 8643, 8646, 8645, 8648, 8647, 8650, 8649, 8652, 8651, 8654, 8653, 8656, 8655, 8658, 8657, 8660, 8659, 8662, 8661, 8664, 8663, 8666, 8665, 8668, 8667, 8670, 8669, 8672, 8671, 8674, 8673, 8676, 8675, 8678, 8677, 8680, 8679, 8682, 8681, 8684, 8683, 8686, 8685, 8688, 8687, 8690, 8689, 8692, 8691, 8694, 8693, 8696, 8695, 8698, 8697, 8700, 8699, 8702, 8701, 8704, 8703, 8706, 8705, 8708, 8707, 8710, 8709, 8712, 8711, 8714, 8713, 8716, 8715, 8718, 8717, 8720, 8719, 8722, 8721, 8724, 8723, 8726, 8725, 8728, 8727, 8730, 8729, 8732, 8731, 8734, 8733, 8736, 8735, 8738, 8737, 8740, 8739, 8742, 8741, 8744, 8743, 8746, 8745, 8748, 8747, 8750, 8749, 8752, 8751, 8754, 8753, 8756, 8755, 8758, 8757, 8760, 8759, 8762, 8761, 8764, 8763, 8766, 8765, 8768, 8767, 8770, 8769, 8772, 8771, 8774, 8773, 8776, 8775, 8778, 8777, 8780, 8779, 8782, 8781, 8784, 8783, 8786, 8785, 8788, 8787, 8790, 8789, 8792, 8791, 8794, 8793, 8796, 8795, 8798, 8797, 8800, 8799, 8802, 8801, 8804, 8803, 8806, 8805, 8808, 8807, 8810, 8809, 8812, 8811, 8814, 8813, 8816, 8815, 8818, 8817, 8820, 8819, 8822, 8821, 8824, 8823, 8826, 8825, 8828, 8827, 8830, 8829, 8832, 8831, 8834, 8833, 8836, 8835, 8838, 8837, 8840, 8839, 8842, 8841, 8844, 8843, 8846, 8845, 8848, 8847, 8850, 8849, 8852, 8851, 8854, 8853, 8856, 8855, 8858, 8857, 8860, 8859, 8862, 8861, 8864, 8863, 8866, 8865, 8868, 8867, 8870, 8869, 8872, 8871, 8874, 8873, 8876, 8875, 8878, 8877, 8880, 8879, 8882, 8881, 8884, 8883, 8886, 8885, 8888, 8887, 8890, 8889, 8892, 8891, 8894, 8893, 8896, 8895, 8898, 8897, 8900, 8899, 8902, 8901, 8904, 8903, 8906, 8905, 8908, 8907, 8910, 8909, 8912, 8911, 8914, 8913, 8916, 8915, 8918, 8917, 8920, 8919, 8922, 8921, 8924, 8923, 8926, 8925, 8928, 8927, 8930, 8929, 8932, 8931, 8934, 8933, 8936, 8935, 8938, 8937, 8940, 8939, 8942, 8941, 8944, 8943, 8946, 8945, 8948, 8947, 8950, 8949, 8952, 8951, 8954, 8953, 8956, 8955, 8958, 8957, 8960, 8959, 8962, 8961, 8964, 8963, 8966, 8965, 8968, 8967, 8970, 8969, 8972, 8971, 8974, 8973, 8976, 8975, 8978, 8977, 8980, 8979, 8982, 8981, 8984, 8983, 8986, 8985, 8988, 8987, 8990, 8989, 8992, 8991, 8994, 8993, 8996, 8995, 8998, 8997, 9000, 8999, 9002, 9001, 9004, 9003, 9006, 9005, 9008, 9007, 9010, 9009, 9012, 9011, 9014, 9013, 9016, 9015, 9018, 9017, 9020, 9019, 9022, 9021, 9024, 9023, 9026, 9025, 9028, 9027, 9030, 9029, 9032, 9031, 9034, 9033, 9036, 9035, 9038, 9037, 9040, 9039, 9042, 9041, 9044, 9043, 9046, 9045, 9048, 9047, 9050, 9049, 9052, 9051, 9054, 9053, 9056, 9055, 9058, 9057, 9060, 9059, 9062, 9061, 9064, 9063, 9066, 9065, 9068, 9067, 9070, 9069, 9072, 9071, 9074, 9073, 9076, 9075, 9078, 9077, 9080, 9079, 9082, 9081, 9084, 9083, 9086, 9085, 9088, 9087, 9090, 9089, 9092, 9091, 9094, 9093, 9096, 9095, 9098, 9097, 9100, 9099, 9102, 9101, 9104, 9103, 9106, 9105, 9108, 9107, 9110, 9109, 9112, 9111, 9114, 9113, 9116, 9115, 9118, 9117, 9120, 9119, 9122, 9121, 9124, 9123, 9126, 9125, 9128, 9127, 9130, 9129, 9132, 9131, 9134, 9133, 9136, 9135, 9138, 9137, 9140, 9139, 9142, 9141, 9144, 9143, 9146, 9145, 9148, 9147, 9150, 9149, 9152, 9151, 9154, 9153, 9156, 9155, 9158, 9157, 9160, 9159, 9162, 9161, 9164, 9163, 9166, 9165, 9168, 9167, 9170, 9169, 9172, 9171, 9174, 9173, 9176, 9175, 9178, 9177, 9180, 9179, 9182, 9181, 9184, 9183, 9186, 9185, 9188, 9187, 9190, 9189, 9192, 9191, 9194, 9193, 9196, 9195, 9198, 9197, 9200, 9199, 9202, 9201, 9204, 9203, 9206, 9205, 9208, 9207, 9210, 9209, 9212, 9211, 9214, 9213, 9216, 9215, 9218, 9217, 9220, 9219, 9222, 9221, 9224, 9223, 9226, 9225, 9228, 9227, 9230, 9229, 9232, 9231, 9234, 9233, 9236, 9235, 9238, 9237, 9240, 9239, 9242, 9241, 9244, 9243, 9246, 9245, 9248, 9247, 9250, 9249, 9252, 9251, 9254, 9253, 9256, 9255, 9258, 9257, 9260, 9259, 9262, 9261, 9264, 9263, 9266, 9265, 9268, 9267, 9270, 9269, 9272, 9271, 9274, 9273, 9276, 9275, 9278, 9277, 9280, 9279, 9282, 9281, 9284, 9283, 9286, 9285, 9288, 9287, 9290, 9289, 9292, 9291, 9294, 9293, 9296, 9295, 9298, 9297, 9300, 9299, 9302, 9301, 9304, 9303, 9306, 9305, 9308, 9307, 9310, 9309, 9312, 9311, 9314, 9313, 9316, 9315, 9318, 9317, 9320, 9319, 9322, 9321, 9324, 9323, 9326, 9325, 9328, 9327, 9330, 9329, 9332, 9331, 9334, 9333, 9336, 9335, 9338, 9337, 9340, 9339, 9342, 9341, 9344, 9343, 9346, 9345, 9348, 9347, 9350, 9349, 9352, 9351, 9354, 9353, 9356, 9355, 9358, 9357, 9360, 9359, 9362, 9361, 9364, 9363, 9366, 9365, 9368, 9367, 9370, 9369, 9372, 9371, 9374, 9373, 9376, 9375, 9378, 9377, 9380, 9379, 9382, 9381, 9384, 9383, 9386, 9385, 9388, 9387, 9390, 9389, 9392, 9391, 9394, 9393, 9396, 9395, 9398, 9397, 9400, 9399, 9402, 9401, 9404, 9403, 9406, 9405, 9408, 9407, 9410, 9409, 9412, 9411, 9414, 9413, 9416, 9415, 9418, 9417, 9420, 9419, 9422, 9421, 9424, 9423, 9426, 9425, 9428, 9427, 9430, 9429, 9432, 9431, 9434, 9433, 9436, 9435, 9438, 9437, 9440, 9439, 9442, 9441, 9444, 9443, 9446, 9445, 9448, 9447, 9450, 9449, 9452, 9451, 9454, 9453, 9456, 9455, 9458, 9457, 9460, 9459, 9462, 9461, 9464, 9463, 9466, 9465, 9468, 9467, 9470, 9469, 9472, 9471, 9474, 9473, 9476, 9475, 9478, 9477, 9480, 9479, 9482, 9481, 9484, 9483, 9486, 9485, 9488, 9487, 9490, 9489, 9492, 9491, 9494, 9493, 9496, 9495, 9498, 9497, 9500, 9499, 9502, 9501, 9504, 9503, 9506, 9505, 9508, 9507, 9510, 9509, 9512, 9511, 9514, 9513, 9516, 9515, 9518, 9517, 9520, 9519, 9522, 9521, 9524, 9523, 9526, 9525, 9528, 9527, 9530, 9529, 9532, 9531, 9534, 9533, 9536, 9535, 9538, 9537, 9540, 9539, 9542, 9541, 9544, 9543, 9546, 9545, 9548, 9547, 9550, 9549, 9552, 9551, 9554, 9553, 9556, 9555, 9558, 9557, 9560, 9559, 9562, 9561, 9564, 9563, 9566, 9565, 9568, 9567, 9570, 9569, 9572, 9571, 9574, 9573, 9576, 9575, 9578, 9577, 9580, 9579, 9582, 9581, 9584, 9583, 9586, 9585, 9588, 9587, 9590, 9589, 9592, 9591, 9594, 9593, 9596, 9595, 9598, 9597, 9600, 9599, 9602, 9601, 9604, 9603, 9606, 9605, 9608, 9607, 9610, 9609, 9612, 9611, 9614, 9613, 9616, 9615, 9618, 9617, 9620, 9619, 9622, 9621, 9624, 9623, 9626, 9625, 9628, 9627, 9630, 9629, 9632, 9631, 9634, 9633, 9636, 9635, 9638, 9637, 9640, 9639, 9642, 9641, 9644, 9643, 9646, 9645, 9648, 9647, 9650, 9649, 9652, 9651, 9654, 9653, 9656, 9655, 9658, 9657, 9660, 9659, 9662, 9661, 9664, 9663, 9666, 9665, 9668, 9667, 9670, 9669, 9672, 9671, 9674, 9673, 9676, 9675, 9678, 9677, 9680, 9679, 9682, 9681, 9684, 9683, 9686, 9685, 9688, 9687, 9690, 9689, 9692, 9691, 9694, 9693, 9696, 9695, 9698, 9697, 9700, 9699, 9702, 9701, 9704, 9703, 9706, 9705, 9708, 9707, 9710, 9709, 9712, 9711, 9714, 9713, 9716, 9715, 9718, 9717, 9720, 9719, 9722, 9721, 9724, 9723, 9726, 9725, 9728, 9727, 9730, 9729, 9732, 9731, 9734, 9733, 9736, 9735, 9738, 9737, 9740, 9739, 9742, 9741, 9744, 9743, 9746, 9745, 9748, 9747, 9750, 9749, 9752, 9751, 9754, 9753, 9756, 9755, 9758, 9757, 9760, 9759, 9762, 9761, 9764, 9763, 9766, 9765, 9768, 9767, 9770, 9769, 9772, 9771, 9774, 9773, 9776, 9775, 9778, 9777, 9780, 9779, 9782, 9781, 9784, 9783, 9786, 9785, 9788, 9787, 9790, 9789, 9792, 9791, 9794, 9793, 9796, 9795, 9798, 9797, 9800, 9799, 9802, 9801, 9804, 9803, 9806, 9805, 9808, 9807, 9810, 9809, 9812, 9811, 9814, 9813, 9816, 9815, 9818, 9817, 9820, 9819, 9822, 9821, 9824, 9823, 9826, 9825, 9828, 9827, 9830, 9829, 9832, 9831, 9834, 9833, 9836, 9835, 9838, 9837, 9840, 9839, 9842, 9841, 9844, 9843, 9846, 9845, 9848, 9847, 9850, 9849, 9852, 9851, 9854, 9853, 9856, 9855, 9858, 9857, 9860, 9859, 9862, 9861, 9864, 9863, 9866, 9865, 9868, 9867, 9870, 9869, 9872, 9871, 9874, 9873, 9876, 9875, 9878, 9877, 9880, 9879, 9882, 9881, 9884, 9883, 9886, 9885, 9888, 9887, 9890, 9889, 9892, 9891, 9894, 9893, 9896, 9895, 9898, 9897, 9900, 9899, 9902, 9901, 9904, 9903, 9906, 9905, 9908, 9907, 9910, 9909, 9912, 9911, 9914, 9913, 9916, 9915, 9918, 9917, 9920, 9919, 9922, 9921, 9924, 9923, 9926, 9925, 9928, 9927, 9930, 9929, 9932, 9931, 9934, 9933, 9936, 9935, 9938, 9937, 9940, 9939, 9942, 9941, 9944, 9943, 9946, 9945, 9948, 9947, 9950, 9949, 9952, 9951, 9954, 9953, 9956, 9955, 9958, 9957, 9960, 9959, 9962, 9961, 9964, 9963, 9966, 9965, 9968, 9967, 9970, 9969, 9972, 9971, 9974, 9973, 9976, 9975, 9978, 9977, 9980, 9979, 9982, 9981, 9984, 9983, 9986, 9985, 9988, 9987, 9990, 9989, 9992, 9991, 9994, 9993, 9996, 9995, 9998, 9997, 9999] TODO -[7, 10, 2, 6, 1, 5, 3, 8, 1, 10, 2, 7, 3, 9, 2, 7, 2, 9, 6, 8, 1, 7, 1, 5, 1, 3, 1, 8, 3, 9, 1, 4, 3, 6, 2, 9, 5, 6, 5, 7, 7, 8, 1, 3, 1, 9, 1, 9, 6, 9, 5, 7, 1, 8, 1, 4, 4, 5, 4, 4, 1, 8, 5, 10, 3, 7, 7, 8, 8, 10, 2, 6, 1, 3, 2, 7, 6, 9, 6, 8, 5, 9, 2, 10, 2, 6, 3, 7, 2, 4, 1, 8, 5, 8, 4, 10, 2, 6, 2, 6, 3, 5, 2, 8, 2, 9, 3, 9, 3, 8, 1, 10, 5, 8, 3, 6, 1, 5, 5, 5, 1, 9, 1, 7, 1, 6, 5, 10, 7, 10, 5, 8, 7, 8, 5, 7, 6, 7, 3, 5, 4, 10, 2, 8, 2, 5, 2, 4, 2, 4, 1, 10, 4, 5, 4, 6, 5, 7, 5, 8, 5, 7, 6, 10, 1, 7, 5, 9, 6, 8, 2, 7, 6, 6, 3, 9, 3, 6, 2, 4, 2, 10, 4, 8, 4, 5, 3, 4, 2, 8, 1, 3, 1, 10, 2, 7, 4, 7, 3, 10, 2, 7, 2, 10, 3, 7, 5, 7, 5, 10, 6, 10, 1, 10, 6, 9, 4, 7, 1, 10, 3, 8, 5, 6, 3, 7, 2, 7, 6, 10, 9, 10, 5, 9, 3, 9, 6, 7, 6, 7, 5, 7, 2, 5, 2, 6, 2, 10, 4, 10, 3, 6, 2, 6, 2, 9, 2, 10, 5, 6, 2, 5, 3, 3, 1, 10, 6, 10, 4, 7, 3, 6, 4, 8, 6, 10, 5, 6, 1, 3, 1, 4, 3, 10, 3, 6, 4, 6, 2, 5, 4, 5, 2, 10, 1, 9, 2, 9, 4, 6, 1, 6, 6, 6, 3, 5, 3, 4, 3, 10, 8, 9, 8, 9, 2, 9, 1, 8, 2, 7, 7, 9, 9, 10, 6, 10, 6, 7, 4, 8, 5, 9, 5, 10, 6, 8, 3, 6, 3, 9, 6, 8, 2, 7, 3, 5, 4, 4, 1, 4, 3, 7, 3, 9, 3, 9, 2, 4, 1, 9, 2, 4, 3, 6, 3, 9, 3, 10, 3, 4, 2, 8, 4, 10, 3, 7, 3, 6, 2, 10, 3, 6, 3, 9, 1, 6, 4, 6, 3, 9, 6, 10, 6, 9, 4, 5, 2, 5, 3, 9, 7, 7, 5, 6, 3, 9, 5, 8, 1, 10, 3, 10, 3, 9, 5, 7, 5, 9, 5, 10, 5, 10, 6, 7, 3, 6, 1, 6, 2, 5, 1, 5, 3, 8, 5, 9, 6, 10, 2, 7, 3, 5, 4, 7, 4, 5, 2, 4, 3, 6, 2, 8, 7, 8, 4, 7, 4, 10, 7, 10, 2, 6, 1, 8, 6, 9, 7, 9, 9, 10, 5, 9, 3, 7, 5, 5, 3, 5, 3, 4, 3, 8, 3, 7, 6, 10, 6, 7, 3, 9, 2, 6, 1, 3, 2, 6, 3, 10, 1, 5, 1, 5, 2, 3, 2, 10, 4, 7, 7, 10, 3, 10, 1, 3, 2, 4, 1, 2, 2, 10, 8, 10, 6, 9, 5, 7, 6, 8, 2, 7, 7, 8, 1, 7, 3, 8, 5, 6, 1, 3, 3, 4, 4, 10, 9, 9, 6, 10, 4, 7, 2, 4, 1, 8, 2, 10, 6, 7, 6, 6, 2, 7, 2, 3, 2, 7, 3, 8, 1, 10, 5, 9, 4, 5, 2, 9, 1, 5, 2, 7, 4, 9, 1, 5, 3, 7, 3, 6, 3, 6, 1, 8, 5, 8, 6, 8, 1, 7, 3, 9, 8, 10, 6, 8, 6, 8, 7, 9, 6, 8, 1, 8, 6, 6, 5, 7, 3, 9, 6, 6, 1, 7, 3, 6, 4, 9, 2, 10, 2, 10, 8, 10, 3, 10, 3, 8, 6, 10, 9, 9, 1, 5, 1, 9, 3, 9, 2, 9, 2, 10, 2, 8, 2, 10, 2, 4, 3, 10, 4, 9, 4, 9, 5, 7, 2, 3, 3, 10, 6, 10, 1, 6, 1, 3, 2, 10, 1, 6, 2, 7, 3, 3, 1, 10, 7, 10, 1, 4, 2, 9, 2, 9, 5, 7, 4, 10, 7, 7, 4, 6, 1, 6, 6, 10, 8, 10, 2, 2, 1, 8, 2, 7, 6, 6, 2, 8, 5, 8, 7, 7, 3, 7, 3, 4, 1, 6, 1, 9, 2, 8, 6, 6, 1, 5, 5, 9, 3, 9, 2, 6, 4, 8, 4, 6, 4, 8, 1, 10, 5, 8, 4, 10, 5, 9, 7, 10, 7, 10, 2, 10, 6, 9, 4, 6, 1, 8, 2, 4, 4, 8, 4, 4, 3, 8, 2, 9, 1, 5, 2, 10, 1, 6, 4, 5, 2, 9, 2, 8, 6, 10, 4, 9, 5, 9, 1, 3, 1, 3, 2, 5, 3, 9, 8, 9, 4, 8, 6, 8, 6, 7, 3, 10, 3, 9, 8, 9, 6, 8, 3, 3, 1, 8, 1, 8, 1, 10, 3, 10, 7, 10, 4, 9, 7, 8, 3, 7, 1, 5, 3, 5, 4, 5, 3, 5, 4, 9, 1, 3, 1, 10, 4, 7, 1, 7, 1, 10, 2, 6, 2, 7, 3, 10, 3, 8, 4, 8, 1, 8, 1, 6, 3, 10, 6, 8, 7, 10, 5, 9, 4, 6, 5, 7, 4, 10, 2, 6, 2, 5, 1, 7, 2, 10, 6, 7, 3, 7, 5, 8, 1, 6, 3, 9, 9, 9, 4, 10, 3, 10, 5, 9, 8, 9, 1, 8, 1, 10, 2, 8, 3, 6, 4, 9, 4, 10, 3, 10, 4, 7, 5, 10, 2, 8, 5, 10, 2, 6, 4, 6, 3, 10, 9, 10, 2, 10, 2, 5, 1, 10, 8, 10, 1, 7, 2, 6, 2, 8, 2, 9, 5, 7, 5, 10, 2, 8, 7, 10, 2, 9, 1, 9, 5, 8, 3, 5, 1, 6, 2, 8, 3, 9, 2, 4, 3, 8, 5, 10, 2, 8, 4, 4, 1, 4, 1, 10, 2, 9, 2, 8, 3, 10, 1, 5, 1, 9, 4, 7, 4, 8, 2, 4, 1, 9, 1, 7, 4, 10, 3, 9, 3, 10, 2, 8, 4, 7, 2, 5, 3, 9, 4, 6, 2, 5, 2, 4, 2, 10, 8, 10, 5, 9, 1, 3, 1, 4, 4, 4, 1, 8, 3, 7, 1, 4, 4, 7, 1, 10, 8, 9, 3, 9, 6, 8, 5, 7, 3, 9, 4, 7, 3, 7, 1, 5, 1, 6, 4, 10, 4, 4, 2, 8, 6, 10, 7, 9, 1, 6, 2, 9, 5, 10, 2, 6, 5, 8, 6, 8, 4, 10, 6, 6, 3, 5, 2, 8, 3, 9, 1, 4, 1, 6, 4, 9, 6, 9, 1, 8, 6, 6, 5, 9, 6, 7, 3, 9, 5, 8, 2, 7, 3, 6, 3, 10, 5, 7, 2, 10, 1, 8, 8, 8, 3, 7, 1, 5, 3, 6, 3, 10, 4, 9, 6, 7, 4, 7, 3, 9, 2, 10, 5, 10, 6, 7, 1, 7, 1, 5, 2, 9, 3, 5, 3, 5, 4, 7, 1, 8, 4, 7, 3, 8, 2, 5, 1, 10, 2, 6, 2, 4, 3, 6, 4, 5, 2, 3, 1, 10, 2, 9, 5, 9, 6, 8, 1, 8, 3, 4, 3, 6, 6, 10, 3, 9, 2, 10, 1, 5, 1, 5, 2, 10, 4, 10, 8, 10, 7, 9, 4, 7, 2, 6, 1, 8, 1, 10, 2, 7, 4, 5, 2, 7, 1, 10, 6, 8, 2, 7, 6, 7, 4, 4, 3, 4, 3, 4, 1, 4, 4, 9, 7, 9, 7, 8, 3, 7, 2, 7, 5, 6, 2, 6, 3, 10, 1, 10, 2, 7, 6, 10, 1, 8, 2, 7, 3, 7, 4, 9, 3, 7, 3, 6, 4, 7, 5, 5, 4, 7, 1, 8, 5, 7, 4, 5, 1, 9, 3, 7, 4, 10, 8, 10, 3, 9, 6, 8, 2, 3, 1, 2, 1, 10, 5, 9, 3, 6, 2, 9, 6, 10, 7, 10, 7, 8, 4, 8, 6, 10, 6, 8, 5, 10, 6, 8, 1, 4, 1, 10, 3, 8, 8, 10, 2, 6, 5, 6, 1, 8, 5, 10, 3, 3, 2, 6, 4, 8, 5, 7, 7, 8, 2, 6, 3, 9, 3, 9, 2, 9, 4, 7, 2, 6, 2, 6, 5, 10, 8, 9, 2, 3, 1, 2, 1, 7, 4, 6, 5, 9, 6, 9, 7, 10, 6, 7, 5, 8, 2, 7, 5, 9, 5, 7, 3, 8, 4, 8, 3, 8, 3, 4, 4, 10, 3, 7, 1, 6, 1, 8, 5, 8, 6, 8, 5, 8, 7, 10, 3, 6, 2, 3, 1, 9, 2, 9, 1, 10, 2, 9, 1, 5, 1, 10, 1, 9, 7, 9, 3, 7, 1, 5, 5, 5, 1, 5, 2, 9, 2, 6, 2, 9, 2, 8, 2, 9, 4, 9, 5, 10, 4, 7, 7, 10, 10, 10, 1, 9, 3, 8, 5, 5, 2, 9, 4, 7, 1, 10, 3, 5, 4, 10, 4, 10, 1, 7, 2, 9, 6, 10, 4, 10, 8, 9, 4, 9, 4, 10, 3, 6, 4, 10, 6, 8, 1, 8, 1, 6, 1, 10, 2, 9, 1, 8, 6, 7, 4, 10, 9, 10, 2, 2, 2, 8, 4, 6, 6, 9, 8, 9, 1, 7, 4, 9, 3, 4, 2, 10, 4, 8, 3, 7, 4, 8, 1, 8, 4, 9, 1, 8, 3, 6, 5, 6, 2, 9, 3, 10, 1, 6, 2, 8, 4, 5, 1, 5, 1, 10, 3, 8, 1, 6, 6, 9, 4, 7, 1, 9, 2, 8, 1, 2, 1, 9, 5, 7, 2, 7, 3, 9, 4, 8, 1, 7, 7, 9, 6, 6, 2, 10, 7, 8, 7, 9, 6, 10, 5, 9, 6, 9, 3, 9, 1, 6, 1, 6, 3, 4, 3, 6, 1, 8, 3, 9, 4, 9, 5, 10, 2, 8, 2, 8, 1, 8, 2, 4, 2, 9, 5, 10, 7, 10, 3, 9, 3, 8, 5, 6, 2, 10, 3, 6, 2, 3, 1, 7, 2, 8, 4, 4, 2, 10, 2, 9, 8, 10, 6, 9, 2, 7, 1, 6, 1, 6, 4, 9, 7, 10, 5, 8, 2, 9, 3, 5, 5, 5, 2, 8, 5, 6, 6, 7, 3, 10, 4, 8, 1, 10, 1, 9, 4, 8, 5, 6, 4, 6, 4, 10, 1, 10, 6, 7, 2, 10, 3, 10, 1, 7, 1, 6, 5, 7, 5, 10, 2, 6, 5, 7, 6, 9, 3, 7, 7, 9, 4, 4, 3, 5, 3, 9, 2, 2, 2, 7, 2, 6, 5, 8, 2, 4, 2, 7, 6, 6, 5, 10, 5, 5, 1, 10, 5, 6, 4, 6, 2, 10, 3, 7, 4, 10, 7, 9, 1, 7, 4, 10, 1, 9, 6, 9, 6, 9, 6, 9, 4, 8, 6, 9, 4, 5, 3, 7, 5, 9, 2, 8, 4, 9, 2, 6, 3, 9, 5, 8, 3, 7, 1, 4, 1, 7, 5, 8, 4, 6, 4, 10, 1, 4, 3, 10, 3, 7, 5, 10, 5, 7, 6, 6, 3, 5, 1, 2, 1, 7, 6, 10, 6, 7, 6, 9, 6, 6, 1, 9, 3, 5, 1, 3, 2, 6, 2, 7, 1, 9, 7, 8, 8, 8, 1, 10, 1, 2, 1, 7, 2, 3, 3, 7, 2, 6, 6, 10, 1, 8, 5, 10, 5, 9, 3, 5, 3, 8, 1, 8, 1, 4, 1, 4, 2, 6, 2, 10, 3, 9, 4, 8, 4, 8, 8, 10, 7, 9, 2, 9, 4, 7, 2, 7, 1, 8, 2, 4, 2, 6, 3, 3, 1, 7, 3, 4, 1, 10, 1, 10, 2, 2, 1, 8, 3, 10, 5, 10, 8, 9, 5, 6, 4, 9, 6, 9, 1, 10, 1, 9, 2, 8, 2, 9, 7, 7, 1, 10, 1, 9, 2, 6, 3, 9, 5, 10, 4, 9, 2, 6, 4, 7, 3, 4, 1, 9, 1, 6, 1, 8, 1, 8, 2, 6, 3, 10, 2, 4, 4, 10, 1, 10, 1, 9, 2, 5, 3, 7, 6, 9, 1, 9, 5, 8, 1, 3, 3, 9, 1, 7, 1, 6, 4, 10, 6, 7, 3, 9, 4, 8, 2, 7, 4, 8, 4, 9, 3, 6, 6, 8, 5, 10, 2, 9, 4, 9, 6, 8, 1, 10, 3, 10, 2, 8, 1, 10, 1, 3, 1, 8, 2, 8, 6, 10, 5, 7, 2, 10, 4, 10, 3, 6, 2, 10, 2, 10, 1, 7, 4, 10, 5, 10, 4, 6, 3, 8, 7, 9, 3, 7, 1, 7, 2, 9, 5, 8, 4, 9, 5, 10, 1, 9, 2, 10, 1, 4, 1, 8, 2, 9, 6, 7, 6, 10, 1, 7, 5, 9, 1, 2, 2, 10, 5, 10, 2, 7, 4, 6, 1, 7, 3, 6, 2, 7, 3, 7, 3, 6, 2, 7, 5, 9, 6, 9, 3, 10, 3, 10, 7, 8, 3, 6, 5, 10, 6, 10, 1, 7, 4, 7, 4, 5, 2, 7, 3, 5, 2, 9, 1, 7, 5, 8, 1, 6, 2, 10, 8, 9, 6, 9, 2, 10, 7, 8, 1, 8, 3, 3, 3, 10, 3, 7, 6, 8, 7, 9, 7, 10, 1, 4, 1, 9, 6, 8, 1, 7, 1, 10, 6, 7, 1, 8, 3, 7, 2, 6, 4, 7, 6, 9, 5, 9, 2, 6, 5, 10, 7, 9, 1, 8, 4, 9, 4, 10, 9, 10, 3, 5, 4, 10, 1, 5, 4, 8, 7, 8, 1, 8, 2, 4, 3, 10, 4, 8, 2, 7, 1, 10, 3, 7, 4, 9, 4, 10, 3, 6, 1, 6, 4, 10, 7, 10, 7, 9, 2, 10, 7, 8, 1, 7, 3, 10, 3, 10, 3, 9, 3, 4, 3, 9, 1, 9, 4, 9, 5, 10, 4, 9, 7, 7, 1, 10, 2, 7, 1, 7, 1, 3, 1, 2, 1, 10, 2, 4, 1, 6, 4, 4, 2, 4, 1, 5, 2, 9, 6, 8, 4, 7, 4, 10, 2, 9, 2, 7, 2, 4, 2, 3, 2, 5, 4, 6, 2, 9, 1, 4, 4, 7, 2, 7, 2, 8, 6, 6, 2, 9, 3, 10, 3, 6, 3, 3, 2, 8, 4, 8, 4, 9, 1, 6, 3, 9, 2, 4, 3, 10, 2, 9, 2, 6, 6, 9, 8, 9, 5, 9, 7, 8, 2, 7, 4, 5, 4, 8, 7, 10, 7, 9, 3, 7, 1, 6, 1, 7, 1, 4, 3, 9, 6, 7, 1, 10, 4, 8, 2, 7, 5, 7, 4, 6, 3, 9, 1, 8, 4, 6, 5, 9, 6, 7, 4, 6, 5, 9, 6, 10, 1, 8, 6, 7, 2, 10, 4, 8, 4, 8, 2, 9, 3, 7, 4, 7, 2, 6, 1, 4, 3, 6, 5, 10, 2, 4, 2, 6, 3, 6, 4, 5, 1, 10, 2, 7, 4, 8, 2, 9, 1, 9, 3, 6, 6, 9, 8, 9, 3, 7, 2, 8, 2, 10, 6, 9, 2, 8, 1, 5, 3, 7, 1, 2, 1, 10, 2, 5, 3, 4, 4, 9, 2, 4, 2, 10, 2, 4, 1, 8, 4, 8, 6, 7, 1, 9, 4, 6, 2, 8, 3, 10, 6, 9, 2, 9, 8, 8, 2, 10, 3, 6, 4, 6, 5, 6, 4, 6, 4, 7, 3, 7, 2, 8, 3, 10, 3, 4, 1, 9, 1, 7, 2, 10, 4, 5, 1, 10, 7, 8, 8, 8, 1, 10, 6, 8, 2, 6, 5, 5, 2, 3, 2, 6, 4, 7, 3, 4, 4, 9, 5, 9, 1, 9, 6, 10, 6, 9, 8, 9, 1, 6, 2, 8, 5, 6, 2, 6, 1, 3, 1, 8, 6, 7, 2, 6, 4, 9, 1, 5, 4, 8, 1, 5, 1, 5, 3, 9, 6, 10, 3, 9, 3, 8, 6, 8, 6, 8, 5, 8, 6, 7, 1, 9, 1, 4, 2, 8, 7, 8, 4, 7, 4, 9, 2, 7, 6, 10, 2, 7, 1, 8, 2, 8, 2, 3, 2, 8, 7, 7, 3, 3, 3, 7, 4, 9, 5, 5, 5, 10, 7, 9, 6, 8, 2, 8, 5, 9, 5, 6, 1, 4, 3, 8, 3, 4, 1, 8, 5, 6, 5, 9, 1, 5, 5, 10, 5, 10, 10, 10, 4, 7, 2, 3, 2, 7, 1, 4, 4, 6, 4, 8, 4, 5, 1, 2, 1, 9, 2, 7, 3, 8, 6, 9, 1, 8, 1, 5, 2, 7, 3, 6, 2, 5, 4, 10, 5, 10, 7, 9, 1, 10, 4, 9, 6, 10, 1, 9, 5, 9, 5, 7, 1, 5, 1, 10, 1, 5, 3, 3, 2, 6, 2, 10, 5, 6, 5, 7, 4, 7, 5, 10, 2, 10, 5, 5, 3, 10, 8, 8, 3, 8, 1, 9, 6, 10, 9, 10, 7, 9, 4, 9, 5, 7, 6, 10, 2, 9, 5, 9, 3, 7, 3, 8, 3, 10, 4, 6, 4, 10, 9, 10, 7, 8, 7, 9, 2, 9, 3, 10, 1, 9, 2, 9, 1, 8, 1, 6, 4, 5, 4, 4, 4, 6, 1, 10, 2, 2, 1, 8, 7, 10, 7, 7, 3, 6, 3, 10, 4, 10, 8, 8, 3, 10, 5, 7, 3, 9, 3, 7, 5, 7, 2, 6, 3, 5, 3, 5, 3, 8, 4, 9, 5, 6, 3, 4, 1, 9, 2, 7, 3, 4, 1, 3, 3, 8, 3, 10, 4, 9, 7, 9, 1, 8, 3, 5, 2, 10, 2, 10, 3, 9, 2, 8, 8, 10, 4, 8, 1, 3, 2, 6, 1, 5, 1, 6, 1, 10, 1, 5, 1, 10, 3, 7, 4, 10, 7, 7, 7, 10, 6, 9, 1, 9, 6, 8, 3, 6, 2, 10, 4, 5, 1, 9, 2, 6, 1, 5, 1, 7, 1, 4, 2, 10, 1, 2, 1, 10, 2, 9, 3, 7, 3, 6, 4, 7, 5, 10, 5, 9, 4, 10, 5, 8, 2, 8, 3, 4, 4, 10, 3, 6, 5, 8, 5, 7, 1, 9, 3, 8, 1, 10, 2, 9, 1, 7, 3, 10, 4, 5, 3, 9, 4, 5, 1, 4, 2, 7, 1, 4, 1, 3, 1, 10, 4, 9, 7, 8, 1, 9, 6, 9, 2, 7, 1, 7, 5, 7, 3, 5, 5, 10, 4, 7, 1, 7, 6, 10, 5, 7, 2, 4, 2, 9, 2, 8, 2, 8, 3, 6, 4, 5, 1, 4, 4, 8, 8, 9, 8, 9, 3, 7, 1, 9, 6, 8, 6, 6, 1, 10, 9, 10, 6, 10, 3, 6, 2, 10, 3, 9, 5, 9, 4, 9, 1, 9, 1, 8, 2, 6, 5, 9, 7, 9, 7, 8, 1, 9, 8, 8, 2, 9, 5, 9, 5, 8, 5, 6, 6, 7, 1, 7, 5, 9, 6, 8, 1, 8, 2, 5, 3, 5, 1, 4, 3, 9, 7, 8, 4, 7, 3, 7, 5, 10, 5, 7, 7, 7, 1, 7, 1, 7, 2, 5, 1, 10, 2, 9, 1, 4, 2, 9, 1, 9, 3, 4, 4, 7, 1, 6, 1, 7, 2, 6, 6, 10, 4, 10, 2, 7, 2, 8, 2, 5, 5, 7, 2, 9, 2, 10, 4, 9, 6, 8, 3, 9, 7, 10, 1, 8, 3, 4, 2, 7, 4, 10, 4, 10, 2, 5, 1, 4, 2, 10, 8, 10, 8, 9, 3, 6, 4, 9, 6, 7, 6, 7, 3, 8, 7, 10, 1, 4, 4, 6, 4, 8, 3, 10, 3, 9, 2, 5, 3, 9, 8, 9, 8, 10, 1, 10, 7, 10, 6, 8, 2, 8, 2, 7, 1, 8, 3, 10, 6, 8, 7, 9, 4, 8, 2, 6, 3, 4, 4, 5, 1, 10, 4, 6, 4, 4, 1, 10, 2, 5, 1, 10, 1, 6, 2, 4, 2, 3, 1, 6, 2, 8, 6, 7, 5, 10, 6, 10, 6, 9, 6, 8, 1, 8, 1, 7, 5, 8, 5, 5, 4, 9, 5, 9, 6, 10, 2, 7, 1, 7, 5, 6, 1, 7, 3, 9, 5, 7, 3, 5, 5, 5, 1, 10, 4, 7, 4, 6, 4, 5, 1, 6, 4, 9, 2, 7, 5, 5, 1, 7, 4, 5, 3, 7, 3, 7, 5, 7, 3, 9, 6, 10, 7, 7, 4, 10, 5, 9, 4, 9, 6, 8, 4, 9, 8, 10, 3, 10, 4, 8, 2, 5, 2, 9, 2, 5, 2, 5, 2, 8, 3, 10, 5, 6, 5, 6, 6, 7, 6, 10, 6, 10, 6, 7, 1, 7, 5, 7, 6, 10, 7, 9, 5, 9, 1, 8, 4, 7, 2, 8, 5, 10, 7, 10, 8, 9, 4, 10, 2, 9, 4, 10, 3, 8, 4, 7, 1, 10, 2, 10, 5, 7, 2, 6, 3, 8, 6, 7, 1, 5, 1, 9, 2, 7, 5, 5, 1, 9, 3, 5, 2, 3, 1, 9, 2, 5, 2, 10, 8, 9, 3, 10, 1, 6, 3, 7, 4, 6, 1, 9, 1, 6, 2, 9, 3, 10, 8, 8, 2, 6, 5, 6, 3, 6, 1, 5, 2, 4, 2, 5, 1, 4, 3, 6, 1, 2, 1, 8, 5, 8, 5, 7, 1, 5, 1, 9, 1, 8, 2, 8, 4, 5, 4, 8, 4, 4, 2, 7, 1, 7, 2, 7, 3, 8, 8, 8, 2, 7, 4, 10, 4, 7, 7, 9, 3, 9, 4, 8, 3, 8, 3, 5, 5, 7, 4, 8, 4, 6, 4, 7, 2, 8, 1, 6, 3, 5, 4, 9, 8, 10, 1, 10, 4, 8, 6, 10, 2, 8, 5, 9, 4, 6, 3, 4, 2, 5, 3, 9, 5, 8, 1, 5, 5, 10, 8, 10, 3, 8, 5, 7, 4, 10, 9, 10, 3, 7, 6, 8, 7, 10, 4, 9, 6, 10, 3, 9, 3, 7, 1, 9, 3, 10, 4, 10, 3, 6, 5, 9, 1, 7, 4, 10, 6, 8, 5, 7, 2, 10, 1, 7, 5, 10, 1, 7, 3, 8, 6, 7, 6, 7, 5, 7, 6, 10, 1, 7, 4, 8, 3, 10, 3, 4, 1, 5, 1, 10, 1, 5, 3, 6, 3, 7, 4, 4, 3, 3, 3, 10, 7, 9, 4, 6, 5, 8, 6, 10, 5, 7, 4, 6, 2, 7, 2, 4, 2, 6, 3, 8, 2, 10, 1, 5, 3, 5, 2, 7, 2, 8, 2, 9, 4, 7, 2, 7, 5, 10, 1, 8, 2, 5, 1, 4, 3, 3, 2, 9, 6, 9, 8, 8, 1, 6, 1, 10, 7, 8, 4, 9, 2, 9, 1, 7, 2, 9, 5, 9, 8, 10, 7, 8, 2, 3, 1, 7, 2, 10, 3, 10, 4, 7, 5, 5, 3, 6, 4, 8, 1, 7, 1, 7, 6, 6, 5, 10, 4, 9, 2, 8, 3, 7, 3, 5, 1, 4, 3, 4, 4, 6, 5, 10, 1, 5, 3, 10, 5, 6, 6, 7, 4, 9, 6, 8, 3, 9, 6, 7, 4, 8, 6, 10, 6, 7, 1, 10, 8, 9, 1, 9, 2, 8, 3, 5, 4, 7, 5, 9, 2, 9, 6, 8, 3, 7, 2, 7, 2, 6, 1, 8, 3, 5, 4, 10, 4, 8, 6, 7, 5, 6, 1, 5, 4, 10, 2, 8, 3, 5, 2, 9, 1, 4, 3, 10, 5, 7, 3, 10, 6, 9, 6, 7, 7, 9, 3, 10, 3, 5, 4, 6, 4, 7, 3, 3, 2, 6, 2, 6, 3, 4, 4, 7, 5, 6, 2, 9, 3, 10, 5, 5, 1, 6, 3, 5, 1, 8, 4, 10, 3, 10, 5, 5, 1, 8, 1, 4, 1, 6, 1, 7, 2, 8, 2, 8, 2, 4, 3, 6, 2, 7, 4, 5, 4, 9, 3, 10, 6, 7, 1, 9, 3, 6, 1, 9, 3, 5, 4, 8, 4, 8, 6, 9, 5, 7, 2, 5, 2, 9, 5, 8, 6, 8, 7, 8, 4, 9, 3, 9, 2, 5, 3, 8, 6, 7, 2, 3, 2, 8, 3, 9, 6, 7, 1, 8, 4, 4, 4, 7, 2, 8, 5, 9, 3, 6, 4, 10, 1, 8, 1, 7, 3, 9, 2, 3, 3, 8, 3, 10, 4, 10, 3, 6, 1, 10, 4, 10, 6, 8, 2, 3, 3, 7, 3, 5, 4, 5, 4, 9, 5, 5, 2, 7, 1, 5, 5, 10, 7, 8, 2, 9, 3, 10, 5, 9, 2, 10, 4, 7, 1, 2, 1, 5, 1, 4, 2, 10, 4, 8, 1, 9, 5, 7, 4, 9, 2, 7, 6, 10, 2, 6, 2, 10, 5, 9, 1, 5, 2, 3, 2, 9, 3, 8, 6, 8, 1, 8, 5, 10, 1, 4, 1, 7, 5, 9, 5, 6, 2, 8, 5, 8, 2, 7, 6, 8, 3, 10, 7, 8, 1, 9, 1, 10, 3, 7, 2, 7, 1, 8, 2, 7, 2, 3, 1, 6, 3, 6, 2, 10, 3, 9, 2, 7, 2, 8, 1, 7, 1, 5, 2, 9, 1, 6, 5, 10, 8, 10, 4, 9, 2, 9, 5, 8, 6, 9, 5, 8, 2, 7, 5, 8, 7, 8, 7, 8, 6, 8, 2, 4, 4, 9, 4, 5, 3, 10, 8, 10, 4, 5, 4, 10, 7, 9, 8, 8, 6, 10, 5, 5, 2, 5, 1, 10, 2, 9, 3, 10, 4, 9, 2, 8, 2, 10, 4, 6, 4, 10, 6, 9, 5, 8, 6, 7, 2, 9, 3, 7, 4, 9, 1, 3, 2, 10, 7, 8, 4, 8, 6, 6, 2, 10, 5, 6, 2, 5, 5, 8, 1, 7, 7, 10, 1, 9, 8, 9, 1, 9, 2, 8, 3, 5, 4, 9, 9, 10, 4, 6, 3, 7, 2, 7, 2, 9, 1, 8, 5, 8, 4, 6, 6, 10, 3, 6, 2, 5, 2, 7, 5, 5, 1, 8, 3, 5, 4, 9, 7, 10, 1, 9, 1, 10, 4, 7, 5, 6, 2, 3, 3, 9, 2, 6, 4, 9, 1, 9, 2, 6, 3, 10, 7, 9, 2, 8, 1, 10, 6, 9, 6, 7, 4, 7, 1, 5, 3, 10, 2, 8, 7, 7, 1, 3, 3, 9, 2, 7, 6, 6, 1, 5, 5, 6, 1, 9, 2, 5, 1, 9, 4, 9, 5, 9, 3, 6, 3, 10, 6, 6, 2, 4, 4, 9, 1, 8, 3, 8, 1, 10, 5, 7, 2, 9, 1, 4, 4, 8, 2, 7, 3, 10, 2, 4, 2, 7, 1, 4, 3, 6, 3, 8, 6, 9, 2, 5, 3, 7, 1, 7, 4, 8, 4, 9, 5, 9, 6, 9, 2, 7, 2, 5, 3, 9, 2, 8, 4, 10, 2, 6, 4, 9, 1, 7, 7, 10, 4, 6, 5, 10, 5, 8, 1, 5, 1, 7, 3, 10, 1, 7, 6, 9, 5, 9, 7, 10, 7, 8, 5, 9, 4, 9, 6, 9, 4, 9, 2, 7, 2, 6, 2, 9, 5, 10, 8, 10, 1, 3, 2, 8, 2, 10, 4, 10, 4, 9, 3, 5, 4, 4, 2, 4, 3, 3, 1, 10, 5, 9, 1, 3, 1, 7, 1, 6, 5, 7, 5, 10, 2, 8, 3, 10, 3, 7, 3, 5, 3, 7, 4, 10, 5, 9, 3, 8, 6, 7, 5, 8, 1, 9, 1, 6, 4, 7, 5, 9, 8, 9, 1, 7, 1, 5, 2, 6, 6, 8, 5, 9, 2, 5, 2, 6, 4, 9, 5, 9, 9, 10, 6, 9, 5, 8, 7, 8, 1, 10, 5, 6, 2, 6, 4, 10, 6, 7, 1, 8, 3, 6, 4, 6, 5, 5, 2, 9, 7, 8, 2, 7, 1, 2, 1, 9, 1, 9, 8, 8, 5, 8, 5, 9, 3, 7, 3, 7, 4, 8, 7, 9, 1, 10, 8, 9, 7, 10, 7, 7, 7, 9, 6, 7, 4, 6, 3, 10, 3, 7, 6, 10, 2, 8, 1, 7, 1, 6, 5, 5, 1, 10, 2, 6, 4, 10, 5, 8, 4, 9, 2, 8, 7, 9, 8, 10, 4, 10, 5, 10, 4, 10, 1, 4, 1, 3, 2, 7, 6, 7, 2, 8, 3, 6, 2, 7, 2, 6, 3, 8, 2, 8, 3, 8, 2, 4, 2, 4, 3, 6, 4, 6, 5, 9, 7, 8, 4, 6, 1, 9, 7, 8, 1, 10, 5, 9, 4, 10, 1, 10, 4, 7, 2, 6, 1, 6, 1, 5, 2, 2, 2, 9, 1, 6, 1, 10, 5, 5, 3, 6, 4, 8, 3, 8, 2, 9, 1, 6, 3, 4, 1, 9, 2, 7, 7, 7, 1, 10, 5, 7, 6, 9, 6, 7, 1, 5, 4, 5, 4, 8, 1, 6, 1, 3, 1, 2, 2, 8, 2, 10, 1, 8, 1, 8, 4, 7, 6, 10, 3, 10, 4, 9, 3, 10, 7, 10, 3, 9, 2, 9, 3, 5, 2, 8, 2, 9, 6, 8, 2, 6, 3, 5, 1, 6, 5, 9, 2, 9, 3, 8, 4, 8, 2, 10, 7, 9, 4, 10, 7, 8, 5, 8, 6, 7, 3, 3, 1, 8, 3, 5, 1, 9, 1, 8, 1, 10, 6, 8, 8, 10, 6, 9, 8, 8, 8, 9, 1, 8, 5, 10, 3, 9, 4, 8, 5, 10, 6, 8, 3, 8, 3, 3, 2, 10, 4, 8, 2, 10, 4, 10, 2, 8, 4, 9, 5, 7, 4, 8, 3, 6, 2, 8, 6, 8, 3, 10, 1, 6, 5, 10, 6, 8, 6, 8, 4, 9, 6, 8, 1, 3, 2, 8, 3, 4, 1, 4, 1, 5, 5, 5, 4, 8, 2, 7, 3, 8, 3, 5, 5, 9, 2, 9, 4, 8, 3, 6, 5, 6, 2, 8, 4, 7, 3, 5, 3, 5, 4, 10, 1, 7, 4, 9, 4, 10, 7, 10, 3, 8, 6, 9, 6, 7, 2, 9, 4, 8, 4, 8, 7, 7, 3, 5, 4, 9, 3, 4, 4, 10, 1, 9, 7, 9, 5, 10, 6, 10, 3, 7, 2, 10, 6, 10, 8, 8, 5, 10, 6, 8, 2, 10, 3, 7, 4, 7, 1, 7, 3, 10, 1, 8, 5, 10, 6, 9, 5, 7, 4, 9, 4, 10, 6, 9, 8, 10, 9, 10, 2, 8, 2, 6, 2, 9, 6, 8, 5, 10, 5, 7, 1, 5, 2, 9, 3, 7, 4, 9, 5, 8, 6, 9, 1, 10, 3, 9, 2, 6, 1, 7, 5, 10, 2, 8, 3, 10, 5, 10, 6, 10, 2, 7, 3, 8, 4, 5, 1, 9, 3, 6, 4, 7, 2, 10, 2, 9, 7, 8, 2, 8, 6, 9, 7, 7, 5, 9, 5, 10, 8, 9, 1, 9, 7, 7, 1, 7, 6, 8, 1, 6, 5, 7, 5, 5, 1, 4, 2, 10, 6, 9, 1, 10, 7, 8, 4, 5, 1, 10, 2, 8, 7, 10, 6, 8, 1, 5, 4, 10, 2, 4, 4, 9, 6, 7, 2, 6, 3, 8, 3, 4, 2, 5, 3, 9, 4, 7, 1, 7, 5, 6, 5, 8, 6, 10, 1, 8, 2, 6, 3, 7, 6, 7, 1, 10, 7, 7, 7, 10, 9, 9, 2, 5, 2, 9, 2, 3, 1, 8, 4, 7, 3, 6, 5, 9, 6, 10, 4, 8, 1, 8, 4, 9, 1, 7, 5, 7, 3, 6, 3, 5, 3, 10, 4, 4, 1, 5, 4, 9, 2, 3, 1, 7, 5, 8, 5, 6, 2, 8, 6, 7, 3, 5, 2, 8, 2, 10, 2, 10, 5, 10, 9, 9, 9, 10, 4, 7, 3, 10, 2, 7, 2, 10, 4, 10, 7, 10, 3, 5, 3, 10, 2, 5, 4, 7, 1, 7, 4, 4, 1, 5, 2, 5, 2, 5, 3, 8, 4, 8, 6, 8, 5, 9, 1, 8, 4, 10, 3, 10, 5, 10, 2, 5, 2, 7, 1, 8, 4, 9, 4, 6, 6, 8, 2, 10, 3, 7, 4, 7, 2, 4, 3, 6, 3, 6, 1, 9, 4, 10, 1, 8, 2, 8, 3, 7, 7, 10, 1, 4, 1, 8, 8, 9, 6, 8, 1, 9, 4, 7, 2, 7, 4, 9, 6, 10, 5, 6, 1, 5, 1, 4, 2, 3, 1, 6, 5, 7, 5, 7, 5, 9, 3, 6, 1, 6, 2, 9, 3, 9, 3, 7, 2, 7, 2, 9, 3, 6, 1, 9, 2, 10, 2, 7, 3, 4, 3, 10, 5, 8, 2, 8, 6, 10, 7, 10, 2, 8, 7, 8, 7, 10, 8, 9, 4, 9, 4, 8, 1, 5, 1, 5, 4, 10, 8, 10, 2, 5, 5, 6, 6, 6, 3, 6, 4, 9, 6, 10, 4, 10, 4, 9, 5, 8, 2, 5, 5, 9, 7, 8, 2, 5, 4, 9, 6, 6, 1, 8, 6, 9, 1, 9, 5, 7, 2, 7, 2, 10, 5, 8, 2, 6, 1, 8, 3, 6, 1, 10, 5, 8, 4, 5, 4, 5, 4, 4, 3, 10, 4, 7, 5, 9, 8, 10, 10, 10, 5, 6, 3, 10, 1, 9, 4, 7, 6, 10, 4, 10, 3, 8, 3, 9, 6, 9, 5, 7, 2, 7, 4, 9, 7, 10, 5, 9, 7, 10, 6, 6, 6, 9, 5, 5, 3, 6, 4, 9, 8, 8, 3, 4, 3, 5, 1, 4, 2, 7, 1, 7, 4, 6, 5, 8, 3, 6, 1, 5, 2, 8, 2, 8, 2, 5, 2, 4, 3, 6, 1, 7, 2, 8, 2, 4, 4, 7, 4, 6, 6, 7, 3, 9, 1, 9, 1, 5, 3, 6, 5, 10, 6, 7, 3, 10, 8, 9, 6, 8, 3, 10, 4, 9, 2, 5, 1, 10, 6, 9, 7, 8, 6, 9, 5, 9, 3, 7, 4, 10, 1, 1, 1, 7, 4, 6, 4, 9, 4, 5, 3, 6, 3, 6, 6, 10, 7, 10, 4, 5, 1, 9, 3, 6, 1, 7, 1, 7, 2, 8, 3, 9, 1, 7, 1, 7, 2, 6, 1, 10, 8, 9, 8, 8, 7, 7, 4, 10, 5, 10, 6, 6, 3, 6, 1, 8, 5, 8, 4, 6, 3, 9, 5, 9, 6, 8, 4, 10, 5, 10, 6, 7, 1, 7, 2, 5, 5, 8, 4, 10, 6, 9, 8, 9, 1, 7, 2, 9, 5, 8, 5, 9, 6, 7, 1, 10, 1, 10, 6, 7, 3, 5, 4, 10, 1, 7, 3, 5, 4, 7, 5, 9, 3, 7, 2, 10, 2, 6, 4, 10, 7, 8, 1, 9, 3, 8, 1, 8, 2, 10, 1, 10, 1, 3, 2, 3, 3, 8, 2, 6, 4, 9, 4, 9, 6, 10, 2, 6, 4, 9, 1, 9, 2, 6, 3, 3, 3, 9, 3, 10, 2, 8, 6, 6, 4, 6, 4, 5, 3, 6, 6, 10, 1, 6, 5, 10, 2, 10, 2, 8, 7, 8, 4, 7, 4, 9, 2, 8, 3, 6, 5, 8, 2, 8, 3, 5, 4, 7, 2, 7, 3, 8, 4, 7, 3, 5, 4, 6, 5, 6, 1, 4, 2, 10, 5, 9, 4, 7, 2, 8, 3, 8, 4, 7, 3, 5, 4, 6, 2, 6, 5, 8, 1, 5, 2, 9, 3, 9, 8, 10, 5, 8, 5, 9, 1, 6, 3, 9, 6, 10, 9, 10, 1, 8, 1, 3, 1, 9, 2, 6, 5, 9, 6, 6, 5, 8, 5, 5, 1, 6, 1, 8, 3, 9, 3, 10, 5, 8, 4, 7, 1, 8, 4, 5, 1, 9, 2, 10, 7, 9, 2, 5, 2, 5, 4, 4, 3, 9, 1, 7, 5, 7, 2, 7, 2, 8, 6, 7, 3, 8, 1, 9, 4, 7, 3, 10, 2, 10, 1, 3, 2, 10, 4, 5, 5, 10, 1, 6, 3, 4, 4, 8, 6, 8, 1, 6, 4, 9, 6, 10, 3, 9, 4, 8, 3, 7, 6, 7, 4, 9, 5, 8, 4, 8, 5, 6, 4, 10, 7, 10, 2, 7, 5, 10, 4, 10, 5, 9, 9, 10, 6, 8, 1, 1, 1, 5, 4, 9, 7, 8, 7, 8, 4, 6, 1, 7, 4, 10, 7, 7, 3, 9, 6, 9, 8, 9, 1, 8, 4, 7, 4, 9, 5, 7, 3, 9, 5, 8, 2, 3, 1, 10, 2, 7, 5, 10, 4, 8, 6, 8, 5, 9, 3, 8, 3, 7, 2, 3, 2, 10, 3, 6, 4, 6, 2, 6, 3, 9, 3, 5, 2, 7, 4, 7, 1, 10, 1, 4, 2, 9, 2, 8, 5, 8, 1, 7, 2, 10, 1, 10, 3, 7, 6, 7, 2, 6, 6, 9, 1, 6, 2, 6, 4, 9, 4, 6, 1, 8, 7, 9, 3, 6, 3, 5, 2, 9, 1, 5, 2, 8, 1, 10, 2, 9, 6, 8, 5, 7, 4, 6, 4, 6, 2, 3, 3, 8, 3, 10, 6, 6, 6, 9, 4, 8, 2, 3, 3, 4, 3, 7, 2, 8, 1, 9, 7, 7, 3, 8, 3, 10, 4, 9, 3, 9, 1, 5, 5, 10, 6, 10, 1, 10, 5, 9, 4, 5, 5, 9, 6, 6, 2, 5, 5, 5, 3, 5, 4, 9, 8, 10, 3, 8, 7, 8, 8, 9, 1, 6, 4, 9, 6, 8, 7, 10, 3, 9, 5, 10, 1, 10, 1, 8, 2, 8, 5, 8, 4, 8, 4, 7, 4, 8, 4, 6, 1, 8, 3, 7, 4, 9, 2, 8, 3, 9, 5, 10, 10, 10, 5, 8, 2, 10, 6, 9, 1, 10, 8, 10, 5, 5, 3, 6, 4, 6, 4, 7, 5, 9, 1, 6, 1, 4, 4, 7, 1, 9, 5, 10, 2, 7, 7, 8, 6, 8, 3, 10, 3, 10, 4, 4, 4, 9, 4, 7, 4, 10, 6, 9, 3, 8, 3, 7, 1, 7, 5, 7, 7, 10, 2, 6, 4, 5, 1, 8, 2, 5, 1, 6, 4, 10, 6, 9, 4, 9, 1, 8, 1, 9, 5, 10, 2, 6, 1, 9, 5, 7, 1, 10, 5, 10, 4, 10, 4, 4, 4, 10, 1, 8, 6, 6, 2, 10, 4, 9, 9, 10, 3, 8, 7, 10, 7, 8, 2, 10, 3, 9, 2, 8, 4, 8, 5, 10, 2, 10, 4, 10, 7, 8, 4, 10, 4, 5, 2, 10, 5, 9, 1, 7, 3, 9, 4, 10, 5, 9, 6, 10, 8, 8, 5, 6, 3, 8, 6, 10, 3, 9, 2, 7, 3, 10, 1, 5, 1, 7, 4, 7, 2, 5, 1, 8, 5, 6, 2, 4, 3, 4, 4, 10, 6, 9, 4, 9, 6, 9, 3, 4, 2, 4, 2, 3, 3, 7, 1, 6, 2, 4, 1, 10, 1, 7, 3, 10, 2, 6, 5, 8, 1, 3, 2, 10, 2, 8, 7, 10, 1, 4, 2, 7, 2, 6, 1, 8, 7, 7, 3, 10, 3, 10, 2, 8, 3, 4, 1, 8, 5, 10, 7, 8, 5, 10, 4, 7, 3, 10, 8, 9, 6, 8, 1, 7, 4, 9, 5, 8, 3, 5, 3, 4, 3, 6, 1, 10, 3, 7, 2, 6, 2, 4, 3, 7, 1, 3, 1, 6, 2, 4, 4, 10, 3, 6, 3, 4, 3, 10, 2, 9, 2, 8, 4, 10, 1, 5, 2, 5, 2, 7, 1, 6, 1, 7, 2, 4, 1, 8, 2, 8, 4, 4, 1, 9, 2, 5, 2, 5, 3, 6, 4, 9, 5, 8, 6, 9, 4, 10, 1, 6, 3, 6, 5, 9, 8, 10, 1, 8, 1, 3, 2, 9, 6, 8, 2, 7, 3, 7, 3, 4, 1, 5, 1, 6, 3, 7, 4, 10, 5, 8, 2, 10, 2, 3, 1, 8, 3, 6, 5, 6, 3, 10, 5, 10, 4, 6, 3, 7, 2, 8, 3, 7, 5, 10, 2, 10, 7, 9, 1, 7, 4, 10, 1, 10, 1, 9, 1, 8, 1, 5, 1, 9, 2, 7, 2, 5, 3, 10, 7, 9, 2, 7, 1, 7, 2, 6, 3, 7, 3, 5, 1, 9, 2, 8, 3, 9, 5, 9, 2, 10, 6, 9, 1, 4, 3, 6, 2, 7, 3, 6, 3, 8, 4, 7, 4, 7, 5, 10, 3, 3, 1, 9, 3, 8, 1, 5, 4, 10, 1, 8, 4, 5, 2, 10, 1, 7, 5, 9, 6, 10, 8, 9, 6, 8, 7, 10, 5, 9, 3, 8, 5, 9, 5, 10, 1, 5, 1, 5, 1, 4, 4, 6, 1, 6, 1, 6, 3, 5, 2, 7, 2, 6, 3, 3, 2, 6, 3, 9, 5, 10, 2, 8, 2, 4, 2, 6, 3, 9, 5, 7, 3, 6, 2, 8, 6, 8, 2, 10, 4, 10, 7, 9, 1, 8, 3, 9, 4, 8, 4, 6, 5, 8, 1, 7, 6, 9, 2, 4, 1, 5, 2, 6, 2, 9, 3, 7, 4, 10, 3, 6, 5, 6, 2, 5, 1, 5, 4, 6, 5, 9, 6, 6, 3, 9, 5, 8, 5, 8, 2, 8, 7, 8, 7, 9, 3, 10, 2, 8, 2, 8, 7, 8, 5, 6, 1, 8, 5, 8, 7, 10, 3, 10, 3, 9, 1, 10, 9, 10, 8, 9, 2, 8, 4, 10, 4, 9, 5, 9, 2, 8, 5, 7, 4, 9, 1, 7, 6, 9, 7, 8, 3, 9, 3, 3, 3, 10, 3, 6, 5, 5, 3, 8, 3, 9, 3, 8, 7, 7, 5, 8, 6, 10, 8, 9, 3, 4, 4, 7, 4, 8, 4, 9, 3, 10, 2, 9, 6, 7, 1, 4, 1, 10, 2, 9, 2, 8, 3, 9, 3, 9, 8, 10, 5, 10, 4, 10, 4, 10, 5, 6, 5, 9, 6, 9, 7, 9, 1, 8, 5, 10, 4, 7, 1, 9, 3, 9, 5, 10, 1, 6, 1, 6, 2, 3, 2, 4, 3, 10, 6, 10, 1, 7, 1, 6, 1, 7, 3, 5, 5, 10, 9, 9, 8, 9, 2, 7, 4, 9, 5, 10, 7, 8, 8, 8, 5, 8, 3, 8, 2, 9, 7, 9, 3, 8, 3, 5, 2, 10, 5, 10, 2, 9, 6, 8, 3, 9, 1, 5, 2, 8, 3, 8, 4, 8, 5, 7, 1, 6, 3, 7, 5, 10, 5, 8, 1, 9, 2, 10, 7, 10, 9, 9, 6, 9, 5, 10, 8, 10, 2, 10, 5, 9, 6, 8, 3, 9, 1, 7, 3, 9, 4, 6, 6, 10, 1, 7, 4, 10, 4, 9, 1, 8, 5, 6, 3, 5, 2, 7, 5, 6, 1, 8, 2, 3, 2, 6, 3, 8, 1, 6, 1, 10, 2, 6, 2, 4, 1, 7, 2, 8, 2, 5, 1, 3, 1, 9, 4, 10, 4, 6, 6, 6, 3, 6, 2, 4, 3, 5, 2, 5, 3, 9, 3, 6, 5, 8, 4, 6, 5, 9, 1, 9, 6, 10, 5, 9, 6, 9, 2, 8, 6, 7, 4, 10, 7, 10, 3, 7, 4, 6, 1, 4, 2, 5, 2, 9, 2, 10, 3, 5, 3, 4, 1, 4, 3, 8, 2, 5, 3, 9, 6, 6, 4, 6, 1, 6, 2, 8, 5, 10, 6, 6, 1, 9, 1, 10, 7, 9, 6, 7, 2, 10, 2, 9, 1, 6, 2, 4, 3, 9, 5, 10, 4, 5, 4, 10, 2, 6, 2, 7, 5, 7, 1, 7, 4, 5, 1, 9, 3, 9, 4, 6, 4, 5, 4, 5, 1, 10, 5, 7, 1, 6, 5, 9, 2, 6, 5, 6, 1, 7, 3, 10, 3, 9, 5, 7, 3, 4, 2, 10, 1, 3, 2, 3, 1, 6, 1, 9, 5, 9, 2, 5, 1, 4, 1, 7, 4, 10, 2, 7, 1, 7, 3, 3, 3, 10, 7, 9, 6, 10, 1, 2, 1, 10, 6, 7, 1, 5, 2, 7, 3, 3, 2, 10, 7, 9, 8, 8, 5, 9, 4, 8, 6, 7, 3, 9, 2, 6, 1, 5, 3, 4, 3, 7, 7, 7, 4, 8, 4, 8, 7, 8, 3, 9, 6, 8, 5, 7, 3, 9, 2, 6, 4, 4, 3, 4, 2, 10, 2, 3, 2, 7, 3, 7, 1, 9, 2, 10, 1, 9, 8, 8, 6, 7, 6, 7, 3, 9, 6, 9, 2, 6, 2, 7, 1, 5, 1, 6, 1, 7, 6, 6, 4, 5, 4, 5, 1, 9, 2, 9, 5, 10, 2, 7, 1, 9, 1, 9, 5, 7, 4, 8, 4, 8, 3, 9, 6, 8, 8, 10, 6, 6, 4, 7, 5, 8, 7, 8, 6, 7, 3, 8, 1, 10, 3, 8, 4, 8, 3, 8, 5, 6, 4, 8, 7, 10, 5, 6, 2, 6, 2, 8, 1, 6, 4, 6, 5, 6, 3, 6, 4, 5, 1, 10, 1, 5, 1, 3, 2, 7, 3, 8, 5, 6, 3, 8, 1, 9, 7, 9, 2, 7, 3, 5, 3, 9, 4, 5, 2, 8, 4, 8, 4, 6, 5, 9, 5, 9, 5, 7, 2, 8, 4, 6, 1, 6, 5, 9, 1, 6, 6, 10, 4, 9, 2, 8, 2, 8, 2, 5, 4, 5, 1, 8, 3, 10, 7, 7, 2, 8, 3, 7, 3, 5, 3, 7, 1, 6, 2, 3, 2, 10, 3, 6, 1, 6, 1, 5, 4, 8, 3, 9, 3, 10, 2, 9, 6, 10, 3, 9, 3, 6, 5, 5, 4, 9, 3, 9, 6, 7, 2, 6, 5, 9, 7, 9, 2, 9, 6, 8, 1, 8, 4, 10, 7, 9, 8, 9, 7, 8, 2, 8, 3, 5, 4, 9, 2, 7, 3, 6, 5, 6, 4, 9, 4, 6, 3, 10, 6, 10, 7, 10, 6, 7, 5, 9, 4, 7, 4, 4, 1, 7, 2, 2, 1, 5, 2, 8, 3, 7, 6, 10, 9, 10, 2, 9, 5, 9, 3, 9, 2, 5, 3, 7, 4, 8, 2, 6, 5, 5, 2, 6, 5, 10, 6, 10, 4, 8, 6, 10, 4, 4, 2, 3, 1, 9, 2, 9, 7, 8, 3, 7, 2, 8, 1, 6, 2, 10, 1, 4, 2, 10, 4, 8, 2, 8, 3, 4, 1, 8, 3, 5, 3, 3, 2, 5, 4, 8, 2, 5, 2, 5, 3, 9, 3, 7, 1, 7, 4, 5, 2, 7, 5, 9, 3, 5, 1, 8, 5, 7, 2, 10, 3, 9, 4, 9, 7, 8, 2, 8, 1, 8, 8, 10, 5, 9, 2, 8, 1, 4, 2, 6, 2, 6, 3, 8, 1, 10, 2, 9, 7, 8, 8, 9, 1, 6, 4, 6, 3, 10, 3, 9, 2, 9, 2, 7, 1, 7, 4, 5, 2, 10, 8, 9, 9, 10, 6, 6, 2, 5, 3, 10, 1, 7, 2, 9, 4, 5, 3, 7, 3, 5, 3, 7, 2, 4, 1, 6, 3, 6, 5, 7, 4, 5, 2, 4, 4, 8, 4, 7, 3, 5, 4, 8, 6, 7, 4, 8, 1, 6, 1, 10, 3, 6, 2, 2, 1, 7, 1, 5, 1, 4, 2, 6, 4, 9, 4, 10, 1, 8, 3, 5, 4, 4, 3, 9, 6, 9, 1, 9, 5, 9, 4, 8, 2, 7, 5, 8, 6, 8, 6, 10, 7, 9, 4, 8, 3, 7, 6, 7, 3, 7, 2, 5, 4, 6, 1, 4, 1, 6, 2, 3, 1, 4, 2, 10, 3, 7, 5, 9, 6, 8, 1, 9, 3, 5, 2, 7, 4, 6, 3, 5, 4, 10, 7, 7, 2, 8, 6, 9, 8, 10, 3, 10, 9, 9, 4, 6, 2, 6, 3, 8, 1, 6, 1, 8, 3, 8, 6, 10, 9, 10, 6, 6, 4, 10, 3, 9, 4, 7, 6, 10, 3, 9, 3, 6, 3, 6, 6, 7, 2, 6, 2, 6, 3, 9, 4, 9, 7, 10, 1, 7, 7, 8, 4, 7, 2, 9, 3, 8, 5, 8, 4, 9, 8, 9, 8, 10, 7, 10, 3, 7, 3, 6, 1, 7, 3, 8, 5, 7, 4, 5, 4, 7, 7, 8, 3, 8, 1, 8, 5, 10, 1, 6, 4, 9, 5, 8, 2, 10, 3, 5, 4, 7, 2, 3, 1, 7, 2, 10, 4, 9, 8, 10, 2, 7, 4, 5, 3, 9, 1, 10, 4, 8, 4, 5, 3, 10, 2, 4, 3, 7, 3, 6, 3, 5, 3, 9, 2, 4, 1, 6, 6, 7, 2, 5, 4, 8, 1, 8, 1, 6, 5, 10, 4, 5, 3, 8, 7, 9, 5, 5, 1, 7, 1, 6, 2, 8, 4, 7, 1, 10, 1, 10, 1, 10, 3, 10, 2, 5, 1, 9, 4, 9, 4, 6, 3, 7, 5, 9, 1, 6, 1, 7, 1, 4, 2, 10, 3, 8, 1, 3, 2, 4, 3, 8, 5, 6, 3, 10, 5, 8, 5, 6, 2, 10, 3, 10, 3, 10, 3, 5, 3, 3, 3, 8, 4, 10, 7, 8, 4, 5, 4, 6, 5, 9, 3, 6, 4, 4, 4, 10, 7, 10, 1, 8, 2, 7, 1, 9, 1, 7, 2, 10, 2, 10, 4, 6, 4, 10, 7, 9, 4, 6, 6, 10, 4, 6, 2, 3, 2, 2, 2, 2, 1, 4, 3, 7, 2, 5, 2, 3, 3, 4, 2, 4, 4, 9, 6, 7, 2, 3, 1, 4, 2, 4, 2, 3, 3, 9, 6, 6, 2, 6, 1, 3, 2, 8, 4, 10, 6, 10, 1, 8, 7, 8, 2, 6, 2, 10, 4, 8, 5, 9, 1, 4, 2, 7, 6, 7, 2, 5, 1, 10, 1, 1, 1, 10, 2, 8, 3, 3, 1, 9, 4, 6, 1, 3, 3, 10, 3, 10, 1, 9, 3, 8, 4, 6, 1, 2, 1, 3, 3, 7, 5, 9, 8, 8, 4, 5, 5, 9, 4, 9, 4, 6, 4, 7, 5, 6, 3, 6, 4, 10, 1, 9, 3, 10, 5, 10, 1, 8, 5, 9, 5, 6, 3, 9, 4, 6, 3, 7, 5, 7, 6, 10, 2, 3, 2, 2, 1, 9, 2, 7, 5, 10, 1, 3, 3, 7, 3, 10, 4, 10, 5, 6, 4, 8, 5, 7, 2, 6, 1, 3, 2, 5, 3, 5, 1, 8, 2, 5, 1, 3, 2, 9, 1, 7, 7, 9, 7, 10, 9, 10, 2, 3, 1, 7, 1, 5, 3, 8, 5, 9, 8, 9, 4, 10, 5, 6, 1, 7, 2, 8, 1, 5, 1, 10, 3, 10, 2, 10, 1, 9, 4, 7, 5, 9, 2, 7, 5, 6, 1, 9, 4, 5, 3, 8, 5, 8, 3, 8, 6, 6, 2, 8, 5, 10, 5, 10, 1, 9, 3, 10, 1, 4, 4, 8, 5, 8, 4, 8, 5, 8, 6, 7, 3, 10, 3, 9, 3, 7, 4, 7, 6, 9, 4, 6, 3, 5, 2, 9, 5, 9, 8, 10, 3, 6, 5, 9, 6, 7, 4, 7, 6, 6, 6, 6, 6, 7, 4, 9, 3, 7, 2, 5, 1, 9, 4, 7, 4, 7, 4, 6, 4, 10, 2, 8, 2, 8, 2, 6, 1, 8, 2, 3, 1, 8, 5, 7, 5, 7, 4, 7, 2, 5, 2, 3, 2, 10, 2, 6, 6, 9, 5, 6, 1, 10, 5, 9, 4, 7, 1, 5, 3, 8, 4, 9, 6, 10, 8, 8, 3, 10, 5, 9, 1, 7, 4, 4, 2, 10, 7, 10, 6, 9, 2, 10, 1, 7, 4, 9, 5, 10, 3, 9, 7, 8, 1, 6, 5, 10, 3, 5, 2, 7, 1, 5, 2, 8, 7, 7, 2, 7, 4, 6, 3, 7, 1, 8, 3, 7, 6, 10, 5, 10, 6, 8, 4, 6, 1, 8, 3, 9, 2, 6, 3, 9, 5, 10, 1, 7, 4, 10, 4, 10, 2, 8, 3, 7, 3, 5, 1, 6, 5, 8, 2, 5, 4, 10, 1, 10, 3, 8, 2, 6, 1, 9, 3, 9, 5, 9, 5, 8, 4, 7, 3, 5, 2, 7, 2, 7, 4, 8, 7, 7, 2, 4, 1, 6, 2, 5, 3, 10, 4, 10, 3, 10, 2, 9, 1, 9, 6, 8, 4, 5, 1, 8, 7, 9, 9, 10, 2, 9, 7, 9, 1, 8, 5, 5, 4, 8, 3, 6, 2, 10, 2, 9, 2, 8, 7, 9, 6, 10, 1, 1, 1, 10, 3, 10, 8, 9, 1, 7, 6, 9, 2, 8, 2, 10, 8, 9, 3, 10, 2, 10, 8, 8, 5, 8, 3, 9, 5, 10, 5, 10, 1, 10, 1, 6, 6, 10, 6, 9, 2, 9, 1, 8, 5, 6, 4, 5, 5, 8, 4, 8, 5, 8, 2, 8, 4, 10, 3, 8, 1, 4, 3, 8, 3, 4, 1, 9, 7, 9, 4, 5, 4, 9, 5, 9, 9, 10, 5, 8, 7, 7, 1, 10, 4, 6, 5, 8, 3, 10, 9, 9, 4, 10, 8, 10, 1, 8, 4, 6, 5, 8, 3, 9, 2, 8, 7, 9, 5, 7, 1, 7, 3, 10, 7, 8, 7, 10, 6, 9, 2, 7, 6, 10, 6, 9, 4, 10, 7, 9, 7, 8, 6, 9, 4, 8, 1, 3, 1, 10, 3, 10, 8, 9, 3, 10, 4, 9, 1, 6, 3, 9, 9, 10, 5, 10, 5, 9, 8, 9, 8, 8, 3, 7, 6, 10, 5, 10, 2, 10, 2, 9, 6, 9, 2, 10, 8, 10, 6, 10, 5, 9, 5, 10, 4, 9, 5, 9, 3, 9, 5, 5, 4, 8, 7, 8, 5, 7, 2, 6, 4, 9, 1, 8, 1, 6, 4, 7, 1, 6, 3, 10, 7, 10, 3, 9, 4, 7, 4, 7, 1, 8, 1, 7, 4, 9, 2, 7, 3, 9, 2, 8, 2, 4, 3, 9, 6, 6, 1, 6, 1, 9, 2, 6, 6, 8, 4, 5, 1, 9, 5, 7, 6, 10, 5, 9, 2, 10, 3, 9, 8, 8, 3, 7, 4, 5, 2, 10, 2, 8, 4, 9, 2, 7, 4, 8, 8, 10, 1, 6, 1, 9, 6, 8, 5, 7, 3, 8, 3, 4, 3, 5, 4, 7, 4, 8, 5, 10, 2, 9, 2, 9, 6, 10, 8, 9, 5, 8, 6, 8, 5, 8, 5, 10, 10, 10, 3, 5, 3, 7, 2, 10, 2, 9, 5, 6, 3, 7, 4, 10, 7, 7, 1, 6, 4, 6, 4, 9, 1, 6, 5, 7, 1, 3, 1, 5, 1, 10, 6, 9, 5, 6, 3, 5, 1, 6, 4, 10, 6, 10, 6, 10, 6, 10, 5, 10, 3, 6, 6, 6, 5, 10, 6, 10, 6, 10, 7, 8, 1, 10, 5, 10, 3, 10, 5, 7, 4, 7, 4, 6, 2, 5, 3, 5, 5, 8, 5, 6, 3, 10, 2, 4, 2, 8, 6, 10, 6, 6, 1, 9, 4, 10, 9, 9, 6, 7, 5, 6, 3, 7, 4, 10, 4, 6, 1, 9, 1, 6, 1, 6, 1, 5, 5, 8, 6, 6, 1, 10, 2, 9, 1, 3, 3, 6, 3, 8, 3, 7, 4, 9, 5, 8, 1, 9, 3, 8, 6, 7, 5, 10, 9, 10, 4, 9, 1, 3, 1, 10, 6, 10, 7, 8, 4, 5, 5, 9, 4, 7, 1, 5, 4, 8, 2, 8, 5, 10, 1, 8, 7, 7, 2, 3, 2, 3, 1, 9, 1, 3, 1, 7, 4, 9, 5, 8, 4, 8, 6, 10, 7, 9, 1, 7, 2, 4, 3, 10, 4, 8, 1, 5, 4, 10, 6, 9, 1, 6, 3, 7, 2, 10, 8, 8, 2, 4, 1, 8, 2, 7, 2, 10, 2, 7, 6, 7, 6, 7, 1, 5, 1, 10, 1, 10, 1, 9, 1, 5, 1, 7, 3, 7, 3, 6, 2, 7, 5, 6, 5, 6, 6, 8, 5, 10, 5, 10, 2, 8, 5, 10, 7, 8, 3, 9, 2, 8, 1, 8, 2, 7, 7, 10, 5, 8, 6, 10, 1, 10, 3, 10, 7, 7, 3, 8, 1, 5, 2, 7, 5, 8, 4, 6, 1, 6, 3, 8, 1, 7, 3, 5, 1, 8, 3, 8, 4, 6, 4, 9, 8, 10, 4, 8, 4, 8, 2, 5, 4, 6, 4, 4, 3, 8, 3, 10, 6, 10, 6, 8, 4, 10, 1, 8, 2, 6, 2, 5, 4, 6, 2, 7, 4, 10, 8, 9, 3, 9, 1, 3, 2, 6, 4, 7, 4, 8, 5, 10, 1, 7, 4, 10, 2, 7, 1, 9, 6, 8, 1, 6, 4, 6, 5, 10, 3, 6, 3, 8, 1, 9, 2, 5, 2, 10, 2, 8, 7, 10, 5, 7, 1, 4, 2, 8, 3, 10, 6, 9, 1, 5, 4, 9, 4, 5, 2, 4, 2, 9, 6, 10, 2, 6, 5, 5, 1, 7, 5, 7, 2, 7, 5, 9, 1, 9, 4, 5, 1, 6, 1, 7, 3, 5, 4, 8, 1, 4, 2, 7, 1, 2, 1, 4, 1, 8, 7, 10, 2, 6, 2, 5, 5, 6, 4, 8, 4, 8, 3, 3, 3, 5, 2, 5, 2, 7, 3, 3, 3, 6, 3, 7, 6, 8, 2, 6, 5, 9, 7, 9, 9, 9, 3, 8, 2, 5, 2, 5, 3, 9, 1, 8, 4, 9, 2, 5, 4, 8, 1, 6, 4, 6, 1, 3, 2, 9, 3, 6, 2, 5, 4, 9, 2, 5, 2, 7, 5, 9, 3, 10, 3, 8, 6, 8, 2, 10, 4, 8, 2, 4, 3, 9, 7, 7, 4, 8, 4, 10, 7, 8, 1, 10, 1, 10, 3, 6, 3, 10, 9, 10, 1, 8, 4, 5, 4, 5, 1, 6, 1, 6, 6, 8, 3, 7, 5, 10, 6, 8, 3, 6, 2, 9, 5, 8, 5, 6, 3, 10, 1, 9, 6, 8, 1, 9, 3, 7, 1, 10, 1, 6, 2, 10, 7, 8, 6, 8, 2, 8, 3, 6, 3, 9, 3, 10, 7, 9, 4, 8, 1, 8, 5, 9, 8, 10, 6, 8, 5, 10, 5, 7, 2, 5, 4, 6, 4, 10, 6, 7, 5, 8, 2, 6, 3, 9, 5, 9, 1, 10, 3, 6, 4, 6, 5, 10, 6, 10, 9, 9, 3, 10, 4, 6, 3, 4, 3, 4, 1, 6, 2, 8, 2, 9, 1, 9, 2, 10, 1, 9, 2, 2, 2, 8, 2, 8, 1, 10, 2, 6, 1, 4, 1, 4, 2, 5, 3, 4, 2, 8, 2, 10, 1, 7, 4, 5, 5, 8, 1, 8, 5, 7, 3, 5, 2, 6, 5, 5, 5, 10, 5, 10, 6, 8, 5, 9, 3, 4, 4, 10, 2, 7, 4, 7, 4, 7, 4, 6, 4, 5, 3, 10, 3, 6, 2, 7, 3, 4, 1, 10, 4, 9, 4, 6, 1, 6, 2, 7, 6, 9, 1, 7, 4, 6, 5, 10, 5, 8, 3, 10, 6, 8, 1, 7, 6, 10, 1, 8, 7, 8, 1, 3, 3, 4, 3, 5, 1, 10, 5, 8, 3, 8, 5, 10, 5, 10, 1, 10, 5, 8, 5, 10, 4, 7, 3, 8, 2, 5, 4, 5, 4, 6, 4, 5, 1, 8, 2, 10, 4, 6, 2, 6, 2, 4, 2, 7, 4, 9, 1, 10, 4, 9, 5, 7, 3, 4, 1, 9, 6, 9, 8, 9, 6, 10, 6, 8, 6, 9, 1, 8, 1, 9, 4, 7, 2, 8, 4, 10, 3, 9, 6, 8, 7, 7, 1, 5, 1, 7, 5, 6, 1, 7, 3, 5, 1, 5, 1, 10, 7, 8, 3, 8, 8, 9, 7, 8, 4, 7, 1, 9, 3, 5, 5, 7, 5, 7, 4, 8, 5, 9, 4, 4, 3, 8, 3, 4, 1, 10, 9, 9, 4, 5, 1, 3, 1, 8, 4, 8, 4, 8, 5, 8, 1, 7, 4, 9, 4, 6, 2, 5, 3, 5, 5, 9, 4, 7, 3, 8, 4, 9, 4, 8, 6, 10, 5, 8, 4, 8, 2, 6, 3, 7, 2, 7, 3, 9, 5, 9, 4, 8, 3, 9, 6, 9, 8, 10, 3, 7, 1, 1, 1, 10, 7, 8, 4, 10, 6, 8, 7, 8, 2, 5, 3, 6, 4, 6, 1, 3, 1, 5, 2, 5, 4, 6, 3, 7, 7, 8, 7, 7, 4, 9, 4, 5, 2, 6, 2, 7, 4, 10, 8, 10, 1, 4, 3, 8, 4, 10, 6, 10, 4, 9, 1, 5, 3, 8, 4, 10, 5, 10, 3, 9, 7, 9, 1, 4, 4, 4, 4, 5, 2, 10, 4, 9, 3, 10, 3, 3, 3, 9, 3, 7, 6, 8, 4, 8, 8, 10, 4, 8, 5, 8, 1, 6, 4, 8, 5, 9, 1, 5, 3, 9, 4, 8, 3, 7, 1, 1, 1, 6, 5, 6, 4, 10, 10, 10, 4, 9, 7, 8, 4, 6, 6, 8, 4, 9, 7, 9, 4, 7, 6, 10, 5, 8, 7, 8, 6, 7, 1, 8, 2, 9, 4, 9, 6, 10, 1, 8, 2, 3, 2, 9, 4, 9, 1, 7, 2, 6, 4, 7, 2, 5, 2, 8, 3, 5, 1, 8, 4, 7, 1, 7, 4, 9, 5, 10, 1, 4, 2, 10, 4, 7, 1, 6, 3, 6, 1, 7, 3, 9, 4, 8, 1, 7, 2, 6, 1, 6, 2, 10, 4, 7, 2, 10, 4, 10, 5, 10, 2, 4, 2, 10, 7, 8, 2, 10, 2, 3, 1, 3, 2, 8, 1, 6, 5, 10, 4, 10, 8, 8, 2, 9, 6, 10, 3, 7, 5, 6, 4, 8, 6, 8, 5, 9, 5, 8, 5, 7, 2, 5, 1, 10, 8, 10, 4, 5, 4, 9, 3, 8, 1, 5, 2, 9, 3, 3, 3, 10, 2, 6, 1, 2, 1, 10, 8, 9, 9, 9, 4, 6, 3, 8, 1, 9, 4, 7, 3, 8, 1, 5, 3, 7, 7, 8, 5, 9, 3, 10, 1, 5, 5, 10, 4, 9, 3, 6, 1, 5, 4, 8, 7, 7, 4, 6, 1, 5, 1, 9, 2, 10, 7, 8, 5, 10, 8, 9, 4, 8, 7, 10, 8, 10, 5, 9, 7, 8, 4, 10, 2, 9, 1, 9, 4, 8, 4, 9, 6, 7, 5, 10, 1, 10, 2, 4, 1, 6, 4, 9, 6, 7, 5, 8, 5, 7, 6, 7, 7, 9, 3, 9, 1, 9, 3, 9, 4, 6, 6, 9, 2, 10, 3, 10, 2, 6, 3, 8, 3, 8, 2, 9, 7, 9, 1, 5, 1, 9, 3, 8, 6, 7, 1, 7, 1, 6, 2, 3, 2, 7, 2, 5, 3, 10, 4, 9, 3, 3, 3, 9, 2, 10, 5, 9, 2, 6, 3, 4, 1, 10, 2, 9, 7, 10, 1, 8, 2, 4, 1, 7, 5, 7, 5, 8, 4, 7, 1, 7, 4, 6, 1, 8, 1, 4, 2, 6, 1, 7, 5, 7, 3, 8, 5, 10, 3, 10, 5, 10, 5, 10, 5, 9, 7, 9, 5, 8, 3, 7, 4, 6, 1, 10, 6, 8, 1, 10, 2, 7, 1, 6, 2, 6, 2, 3, 2, 10, 2, 7, 5, 7, 4, 7, 4, 10, 7, 10, 4, 8, 1, 3, 2, 4, 3, 6, 5, 8, 3, 6, 1, 5, 2, 3, 2, 5, 3, 3, 2, 9, 9, 10, 2, 6, 6, 10, 7, 9, 4, 7, 4, 10, 8, 8, 2, 7, 6, 6, 1, 9, 4, 6, 2, 5, 4, 10, 2, 6, 1, 5, 5, 10, 1, 10, 2, 8, 1, 7, 5, 6, 1, 10, 1, 8, 1, 6, 1, 7, 4, 6, 2, 6, 3, 10, 4, 9, 2, 10, 1, 5, 3, 8, 3, 9, 7, 9, 3, 7, 6, 9, 6, 9, 4, 8, 3, 7, 4, 7, 2, 5, 2, 9, 4, 6, 4, 8, 2, 4, 3, 4, 3, 8, 3, 8, 4, 7, 3, 7, 2, 10, 8, 8, 1, 8, 2, 4, 2, 4, 2, 4, 1, 5, 2, 3, 3, 5, 4, 5, 2, 5, 5, 9, 1, 9, 4, 5, 3, 6, 6, 9, 5, 7, 2, 6, 4, 7, 1, 5, 4, 6, 1, 6, 2, 8, 4, 5, 5, 9, 2, 8, 2, 9, 8, 8, 7, 9, 1, 10, 2, 10, 5, 8, 3, 4, 1, 7, 3, 10, 5, 10, 6, 8, 1, 10, 4, 7, 6, 7, 5, 6, 1, 10, 3, 5, 1, 6, 5, 6, 6, 6, 3, 5, 1, 8, 7, 8, 1, 8, 7, 7, 1, 8, 6, 8, 4, 7, 4, 10, 1, 7, 1, 4, 2, 9, 4, 9, 7, 10, 9, 10, 2, 7, 5, 9, 4, 6, 5, 8, 6, 8, 1, 9, 3, 6, 2, 5, 5, 9, 4, 10, 1, 7, 5, 7, 2, 8, 5, 8, 4, 5, 3, 9, 7, 9, 4, 4, 1, 5, 1, 4, 3, 3, 1, 6, 4, 9, 5, 10, 3, 7, 6, 7, 1, 7, 2, 9, 5, 10, 2, 6, 1, 9, 3, 10, 4, 10, 1, 10, 3, 7, 2, 6, 1, 2, 2, 9, 5, 8, 5, 7, 2, 7, 2, 9, 5, 6, 3, 10, 1, 10, 4, 8, 1, 10, 6, 9, 1, 9, 9, 9, 1, 4, 2, 10, 3, 10, 7, 10, 4, 8, 2, 7, 6, 9, 1, 10, 4, 9, 4, 7, 2, 6, 1, 10, 4, 7, 5, 10, 6, 9, 3, 4, 3, 9, 3, 6, 6, 9, 4, 7, 3, 7, 5, 9, 2, 4, 2, 5, 3, 9, 4, 5, 5, 7, 2, 7, 3, 9, 1, 6, 4, 9, 4, 5, 1, 1, 1, 10, 4, 9, 1, 7, 5, 6, 1, 5, 3, 10, 5, 10, 2, 7, 4, 10, 9, 9, 8, 9, 1, 9, 2, 9, 4, 9, 3, 10, 1, 5, 2, 4, 1, 7, 6, 9, 4, 7, 1, 5, 4, 10, 3, 8, 7, 10, 1, 9, 4, 8, 4, 6, 3, 3, 1, 7, 2, 8, 4, 9, 5, 7, 5, 10, 2, 10, 5, 10, 5, 7, 2, 9, 3, 10, 3, 8, 4, 6, 5, 7, 6, 8, 2, 7, 2, 8, 5, 8, 4, 6, 2, 6, 1, 9, 5, 6, 3, 8, 4, 7, 6, 7, 5, 10, 7, 8, 7, 7, 7, 8, 6, 9, 6, 8, 3, 6, 2, 7, 3, 10, 1, 7, 2, 4, 3, 10, 2, 6, 3, 4, 1, 7, 1, 6, 5, 7, 5, 10, 4, 6, 3, 6, 2, 5, 1, 6, 3, 5, 3, 9, 7, 8, 1, 9, 4, 8, 5, 5, 3, 9, 1, 8, 3, 9, 1, 4, 1, 7, 4, 9, 5, 6, 4, 6, 3, 8, 4, 5, 3, 6, 5, 10, 4, 8, 1, 9, 1, 5, 2, 9, 2, 5, 1, 4, 3, 10, 3, 9, 1, 9, 1, 5, 2, 10, 3, 10, 2, 6, 4, 9, 5, 7, 4, 6, 4, 7, 4, 6, 1, 9, 4, 8, 2, 7, 3, 4, 4, 8, 6, 9, 5, 9, 1, 8, 1, 7, 4, 8, 2, 10, 5, 8, 3, 8, 1, 10, 2, 6, 3, 9, 7, 10, 1, 8, 4, 8, 2, 5, 5, 8, 1, 10, 1, 10, 3, 6, 3, 7, 4, 5, 3, 9, 5, 6, 5, 9, 5, 5, 2, 6, 2, 5, 3, 10, 5, 10, 1, 7, 3, 9, 2, 8, 1, 10, 4, 9, 3, 9, 4, 7, 2, 8, 1, 6, 3, 10, 8, 10, 4, 8, 1, 7, 1, 9, 3, 8, 7, 7, 3, 6, 4, 10, 1, 5, 3, 9, 5, 5, 1, 7, 2, 10, 3, 6, 2, 4, 3, 7, 2, 9, 4, 7, 5, 10, 1, 8, 6, 9, 7, 8, 4, 6, 1, 10, 6, 7, 5, 9, 6, 6, 1, 6, 2, 6, 3, 5, 1, 10, 1, 10, 1, 10, 3, 5, 3, 9, 4, 5, 2, 4, 3, 7, 1, 2, 1, 9, 3, 8, 4, 9, 2, 9, 1, 9, 4, 7, 3, 7, 4, 9, 1, 9, 5, 8, 3, 10, 2, 10, 5, 6, 5, 6, 4, 6, 1, 6, 3, 4, 1, 10, 8, 10, 2, 7, 1, 5, 4, 8, 4, 7, 2, 8, 6, 10, 3, 5, 3, 9, 1, 10, 5, 8, 3, 6, 5, 10, 4, 7, 1, 7, 1, 9, 2, 8, 6, 7, 3, 5, 2, 5, 4, 9, 6, 7, 1, 10, 2, 8, 1, 9, 5, 5, 3, 4, 4, 6, 5, 10, 6, 9, 1, 7, 4, 7, 4, 7, 1, 9, 7, 9, 6, 9, 5, 7, 6, 6, 2, 9, 7, 7, 7, 10, 7, 8, 5, 9, 1, 5, 1, 9, 4, 9, 2, 9, 7, 8, 1, 6, 3, 10, 3, 7, 4, 9, 1, 7, 5, 7, 2, 3, 1, 8, 2, 9, 6, 8, 2, 9, 4, 8, 6, 8, 3, 7, 4, 4, 3, 4, 2, 9, 2, 4, 2, 8, 3, 4, 3, 4, 3, 10, 5, 7, 2, 8, 6, 8, 6, 7, 3, 9, 1, 8, 6, 8, 5, 10, 9, 10, 5, 10, 4, 10, 3, 8, 5, 9, 1, 5, 2, 8, 7, 7, 3, 7, 4, 4, 2, 10, 6, 9, 6, 9, 5, 8, 4, 9, 6, 9, 2, 5, 3, 9, 5, 8, 6, 6, 2, 6, 6, 10, 8, 10, 8, 10, 4, 9, 4, 6, 1, 5, 4, 5, 5, 6, 6, 6, 4, 6, 5, 10, 5, 9, 3, 8, 4, 7, 3, 10, 7, 9, 3, 8, 7, 9, 4, 8, 1, 7, 2, 6, 3, 9, 3, 8, 3, 5, 4, 8, 3, 10, 4, 7, 1, 10, 9, 10, 4, 10, 4, 8, 2, 10, 4, 7, 6, 9, 8, 9, 7, 8, 3, 4, 4, 9, 1, 5, 2, 10, 3, 6, 3, 10, 1, 4, 1, 6, 5, 9, 9, 9, 4, 5, 1, 9, 3, 7, 1, 8, 3, 9, 8, 10, 3, 10, 4, 10, 4, 7, 1, 6, 4, 10, 6, 9, 4, 8, 2, 4, 3, 8, 3, 5, 3, 3, 2, 5, 3, 4, 2, 7, 3, 9, 3, 8, 6, 8, 2, 3, 2, 4, 2, 9, 3, 7, 7, 9, 2, 6, 3, 9, 5, 7, 5, 9, 1, 9, 4, 10, 4, 8, 2, 3, 3, 5, 1, 5, 3, 7, 3, 10, 1, 7, 4, 10, 5, 10, 2, 8, 2, 9, 5, 10, 1, 9, 7, 9, 2, 8, 5, 9, 4, 5, 2, 8, 4, 6, 3, 6, 4, 6, 3, 10, 1, 10, 8, 10, 5, 10, 6, 10, 3, 5, 2, 6, 1, 4, 2, 6, 1, 5, 2, 6, 2, 8, 4, 10, 3, 7, 3, 6, 2, 5, 2, 8, 3, 10, 1, 7, 1, 6, 3, 8, 4, 5, 2, 9, 3, 9, 7, 8, 3, 9, 3, 7, 2, 9, 4, 10, 1, 9, 2, 6, 4, 6, 5, 6, 6, 9, 3, 6, 2, 8, 5, 7, 2, 7, 4, 7, 5, 10, 7, 9, 7, 10, 5, 7, 5, 7, 3, 10, 1, 3, 1, 6, 1, 6, 2, 9, 3, 8, 3, 7, 2, 6, 5, 9, 8, 10, 7, 10, 2, 5, 4, 7, 6, 10, 1, 10, 2, 9, 5, 9, 3, 7, 6, 8, 4, 8, 1, 10, 4, 10, 6, 6, 3, 10, 6, 10, 7, 9, 3, 8, 7, 8, 1, 8, 6, 10, 10, 10, 1, 7, 1, 5, 3, 5, 3, 6, 5, 7, 2, 5, 2, 3, 3, 8, 3, 8, 2, 6, 4, 8, 3, 6, 6, 10, 8, 8, 4, 8, 4, 5, 1, 7, 5, 9, 2, 10, 6, 6, 2, 6, 2, 6, 3, 8, 8, 9, 6, 9, 2, 8, 1, 6, 6, 8, 5, 6, 6, 10, 7, 8, 5, 9, 8, 8, 3, 10, 1, 2, 2, 8, 6, 8, 7, 10, 2, 7, 6, 8, 6, 9, 6, 7, 1, 10, 4, 7, 5, 9, 4, 8, 5, 5, 4, 7, 1, 6, 1, 9, 1, 9, 3, 6, 3, 10, 7, 8, 5, 7, 1, 6, 3, 9, 2, 9, 5, 10, 7, 9, 1, 7, 2, 10, 5, 10, 2, 7, 3, 7, 3, 9, 6, 9, 5, 10, 7, 10, 2, 8, 1, 6, 1, 9, 4, 8, 3, 10, 4, 8, 2, 6, 3, 6, 1, 4, 1, 10, 1, 10, 4, 9, 5, 6, 3, 10, 3, 8, 1, 8, 2, 10, 4, 8, 6, 9, 4, 9, 5, 5, 4, 9, 3, 10, 8, 8, 1, 2, 1, 2, 2, 6, 1, 10, 1, 10, 2, 7, 4, 7, 5, 10, 6, 10, 6, 7, 1, 2, 2, 8, 4, 7, 7, 7, 1, 9, 5, 9, 6, 7, 2, 5, 2, 2, 1, 10, 10, 10, 4, 10, 3, 8, 6, 8, 2, 9, 6, 8, 1, 9, 2, 6, 2, 5, 4, 10, 2, 10, 5, 6, 5, 7, 5, 6, 5, 10, 9, 10, 4, 8, 7, 9, 5, 8, 1, 8, 4, 8, 3, 10, 8, 9, 2, 10, 1, 9, 1, 6, 3, 8, 7, 9, 3, 10, 4, 5, 5, 8, 1, 4, 1, 9, 3, 9, 2, 7, 4, 8, 5, 6, 5, 8, 7, 8, 3, 9, 6, 10, 8, 8, 3, 8, 4, 4, 4, 9, 8, 9, 3, 9, 2, 8, 2, 5, 2, 3, 1, 4, 2, 9, 5, 10, 5, 10, 6, 6, 2, 10, 2, 5, 1, 6, 3, 10, 1, 7, 4, 6, 1, 4, 2, 10, 1, 3, 2, 10, 1, 9, 3, 9, 3, 5, 3, 7, 5, 7, 1, 10, 5, 9, 3, 5, 4, 7, 5, 9, 7, 9, 1, 8, 3, 10, 6, 8, 1, 10, 6, 6, 5, 6, 1, 3, 1, 2, 1, 9, 1, 10, 1, 6, 2, 3, 3, 9, 1, 9, 3, 7, 4, 6, 5, 7, 1, 3, 3, 10, 3, 7, 7, 9, 1, 8, 4, 9, 1, 7, 1, 6, 4, 9, 4, 5, 3, 8, 4, 9, 6, 8, 7, 8, 3, 4, 4, 10, 4, 8, 1, 4, 1, 2, 2, 5, 2, 5, 3, 9, 5, 9, 2, 7, 2, 9, 3, 10, 9, 10, 1, 4, 4, 6, 5, 6, 4, 6, 2, 3, 2, 10, 2, 9, 6, 8, 2, 8, 6, 6, 5, 10, 4, 6, 1, 10, 5, 6, 1, 2, 1, 5, 3, 7, 1, 10, 5, 7, 1, 5, 2, 3, 1, 3, 1, 9, 3, 9, 7, 9, 8, 10, 5, 9, 3, 7, 5, 5, 1, 9, 2, 9, 8, 10, 3, 8, 5, 10, 2, 7, 7, 9, 6, 7, 2, 7, 3, 6, 3, 8, 4, 8, 4, 5, 3, 10, 4, 6, 4, 7, 3, 4, 4, 8, 7, 7, 2, 5, 2, 2, 1, 9, 2, 9, 2, 10, 7, 7, 4, 10, 1, 5, 3, 9, 2, 8, 7, 9, 5, 9, 8, 8, 2, 2, 1, 7, 7, 10, 8, 10, 2, 6, 5, 10, 2, 4, 4, 7, 2, 10, 1, 4, 2, 6, 2, 9, 2, 10, 1, 10, 4, 6, 6, 8, 3, 7, 7, 10, 9, 10, 9, 9, 1, 2, 1, 9, 1, 2, 1, 6, 6, 9, 6, 7, 1, 3, 1, 6, 1, 6, 3, 7, 2, 7, 6, 8, 4, 10, 8, 8, 5, 8, 1, 8, 3, 6, 4, 9, 4, 5, 1, 5, 3, 10, 9, 9, 6, 8, 1, 10, 2, 8, 2, 6, 4, 9, 5, 9, 3, 10, 5, 9, 7, 7, 2, 9, 5, 9, 4, 9, 7, 9, 9, 10, 1, 4, 2, 6, 4, 8, 1, 8, 3, 3, 3, 5, 5, 9, 3, 9, 1, 10, 2, 7, 1, 9, 7, 8, 1, 10, 8, 9, 1, 9, 3, 6, 3, 6, 5, 8, 2, 7, 5, 8, 2, 8, 3, 9, 2, 9, 1, 6, 2, 9, 5, 6, 1, 8, 2, 6, 4, 8, 6, 8, 3, 7, 1, 10, 4, 9, 7, 10, 2, 5, 4, 9, 2, 7, 7, 10, 1, 8, 2, 8, 3, 6, 4, 6, 5, 8, 1, 7, 6, 10, 3, 7, 3, 6, 4, 10, 7, 10, 4, 6, 4, 4, 1, 7, 1, 2, 2, 9, 3, 10, 3, 4, 1, 4, 1, 10, 3, 8, 6, 9, 4, 9, 5, 5, 1, 9, 4, 7, 3, 5, 1, 6, 2, 8, 1, 2, 1, 8, 3, 7, 1, 3, 2, 8, 6, 7, 4, 7, 4, 10, 9, 10, 1, 9, 4, 8, 2, 9, 3, 7, 5, 7, 4, 7, 1, 5, 4, 6, 2, 6, 3, 10, 2, 4, 3, 5, 3, 8, 1, 6, 3, 9, 6, 6, 1, 4, 1, 10, 3, 9, 6, 8, 6, 9, 4, 5, 1, 9, 2, 10, 3, 8, 4, 6, 1, 6, 1, 7, 1, 5, 4, 4, 1, 10, 2, 7, 2, 7, 1, 9, 4, 7, 1, 9, 2, 7, 3, 8, 1, 9, 3, 8, 5, 6, 2, 5, 3, 10, 3, 7, 3, 8, 4, 10, 7, 10, 3, 8, 1, 5, 3, 10, 4, 9, 8, 9, 8, 9, 2, 9, 1, 7, 4, 7, 4, 9, 2, 8, 3, 6, 4, 9, 7, 7, 1, 9, 6, 9, 1, 10, 1, 9, 5, 10, 2, 5, 1, 9, 2, 10, 5, 7, 6, 10, 1, 10, 2, 8, 3, 10, 2, 7, 5, 6, 2, 3, 1, 5, 2, 10, 6, 9, 8, 8, 4, 10, 4, 9, 1, 7, 6, 10, 9, 10, 9, 10, 6, 10, 1, 9, 7, 7, 5, 10, 2, 7, 1, 6, 3, 6, 4, 8, 2, 7, 5, 9, 3, 8, 1, 8, 1, 9, 5, 5, 3, 5, 2, 7, 6, 8, 4, 7, 7, 10, 2, 10, 3, 10, 4, 8, 3, 6, 4, 10, 8, 8, 1, 8, 4, 6, 5, 10, 4, 4, 4, 9, 3, 5, 1, 8, 4, 8, 4, 8, 3, 9, 6, 8, 7, 10, 1, 10, 7, 9, 1, 3, 3, 3, 2, 5, 5, 7, 1, 8, 3, 9, 4, 8, 1, 5, 2, 3, 1, 7, 1, 9, 4, 10, 4, 7, 1, 10, 2, 4, 3, 8, 2, 9, 5, 5, 4, 5, 4, 6, 4, 8, 1, 6, 6, 10, 9, 9, 3, 5, 5, 8, 3, 5, 3, 7, 1, 6, 3, 3, 1, 7, 5, 9, 2, 5, 4, 6, 3, 9, 5, 9, 5, 10, 7, 7, 3, 6, 6, 6, 1, 9, 5, 6, 6, 8, 4, 10, 1, 6, 1, 8, 3, 10, 1, 10, 4, 7, 2, 9, 4, 4, 1, 8, 2, 8, 5, 8, 1, 5, 3, 6, 4, 10, 3, 8, 4, 6, 1, 6, 6, 8, 2, 4, 2, 7, 5, 6, 4, 4, 2, 10, 3, 10, 5, 7, 6, 10, 7, 7, 1, 9, 2, 9, 4, 6, 1, 5, 1, 10, 1, 8, 3, 9, 4, 9, 6, 10, 1, 8, 5, 6, 5, 9, 5, 7, 1, 10, 6, 9, 4, 7, 1, 6, 6, 7, 6, 10, 3, 6, 2, 10, 5, 8, 7, 10, 4, 9, 1, 10, 3, 8, 3, 7, 2, 7, 6, 7, 6, 8, 6, 8, 5, 10, 2, 9, 5, 10, 6, 8, 7, 7, 1, 6, 4, 8, 6, 8, 3, 7, 2, 3, 1, 7, 3, 6, 1, 10, 5, 8, 4, 8, 2, 6, 5, 9, 1, 8, 2, 6, 6, 10, 2, 6, 5, 9, 4, 10, 5, 6, 5, 8, 2, 4, 3, 6, 3, 7, 2, 2, 1, 9, 5, 6, 5, 8, 4, 7, 2, 7, 3, 5, 1, 10, 2, 4, 2, 7, 3, 4, 3, 5, 1, 2, 2, 9, 2, 6, 2, 10, 2, 8, 3, 8, 2, 8, 6, 9, 6, 6, 3, 10, 6, 9, 1, 8, 4, 10, 2, 7, 5, 7, 5, 8, 3, 9, 2, 7, 4, 9, 6, 8, 4, 7, 5, 7, 2, 6, 1, 9, 1, 4, 3, 5, 1, 5, 3, 3, 3, 5, 2, 6, 4, 5, 4, 10, 7, 8, 1, 8, 4, 5, 5, 10, 2, 10, 9, 10, 3, 10, 2, 10, 6, 9, 4, 9, 6, 8, 1, 6, 6, 6, 4, 4, 1, 5, 1, 3, 1, 8, 2, 6, 1, 7, 3, 7, 3, 5, 4, 10, 2, 9, 2, 8, 1, 5, 1, 4, 2, 4, 2, 5, 3, 5, 2, 8, 3, 7, 4, 9, 4, 10, 2, 10, 3, 10, 8, 10, 1, 10, 6, 8, 6, 10, 8, 10, 2, 5, 4, 10, 1, 5, 3, 10, 7, 7, 1, 9, 2, 6, 3, 10, 6, 7, 5, 8, 3, 6, 4, 7, 5, 10, 6, 8, 7, 10, 5, 10, 3, 7, 3, 8, 1, 8, 3, 8, 2, 9, 1, 6, 2, 7, 4, 6, 2, 6, 2, 9, 8, 9, 2, 8, 5, 7, 3, 5, 1, 9, 2, 8, 5, 6, 2, 7, 6, 8, 2, 6, 3, 10, 6, 9, 7, 8, 5, 8, 1, 10, 7, 10, 1, 8, 7, 10, 3, 9, 4, 6, 1, 10, 1, 6, 2, 7, 4, 6, 5, 10, 4, 10, 8, 9, 8, 9, 2, 8, 1, 9, 9, 10, 8, 10, 9, 10, 6, 9, 2, 7, 4, 9, 6, 9, 1, 10, 2, 3, 2, 6, 5, 8, 4, 8, 4, 9, 5, 6, 1, 5, 3, 9, 2, 9, 2, 8, 1, 10, 3, 5, 2, 7, 1, 7, 4, 10, 5, 9, 1, 7, 1, 7, 6, 8, 2, 5, 4, 8, 7, 7, 2, 4, 2, 4, 2, 8, 1, 6, 5, 9, 5, 10, 5, 8, 3, 6, 4, 7, 5, 8, 2, 9, 3, 6, 6, 8, 3, 6, 6, 7, 3, 7, 4, 8, 6, 6, 2, 10, 1, 6, 1, 10, 1, 6, 4, 7, 1, 6, 4, 10, 5, 6, 2, 10, 5, 8, 8, 10, 2, 7, 1, 7, 7, 10, 2, 8, 1, 7, 1, 5, 2, 10, 9, 10, 8, 9, 6, 9, 1, 3, 2, 4, 3, 10, 5, 8, 3, 8, 3, 8, 1, 10, 2, 10, 8, 9, 1, 6, 4, 10, 4, 9, 5, 7, 1, 10, 3, 10, 5, 6, 1, 5, 2, 10, 2, 4, 1, 5, 1, 5, 1, 9, 1, 7, 4, 6, 4, 9, 5, 10, 4, 5, 2, 9, 5, 9, 3, 7, 1, 4, 1, 7, 6, 7, 3, 7, 2, 6, 4, 7, 3, 4, 2, 9, 3, 10, 5, 9, 3, 6, 3, 7, 5, 9, 1, 9, 6, 8, 6, 8, 6, 6, 3, 5, 5, 5, 4, 8, 6, 6, 2, 8, 4, 10, 4, 6, 3, 6, 1, 6, 3, 10, 7, 9, 4, 8, 1, 7, 6, 8, 1, 8, 2, 9, 3, 6, 3, 4, 3, 9, 6, 10, 7, 9, 5, 10, 7, 9, 4, 10, 5, 10, 6, 10, 2, 9, 2, 7, 6, 6, 6, 6, 2, 9, 5, 10, 3, 10, 4, 10, 3, 10, 1, 6, 5, 6, 3, 8, 3, 6, 4, 9, 8, 9, 3, 8, 1, 9, 2, 6, 3, 7, 5, 6, 3, 5, 1, 7, 3, 5, 3, 9, 8, 9, 3, 8, 4, 7, 3, 5, 2, 10, 1, 8, 1, 8, 6, 9, 6, 10, 1, 6, 2, 6, 5, 9, 2, 7, 6, 10, 3, 10, 4, 6, 3, 9, 2, 10, 2, 9, 2, 5, 2, 8, 6, 9, 4, 8, 3, 9, 4, 9, 4, 4, 4, 7, 3, 3, 2, 9, 2, 7, 5, 7, 4, 6, 5, 8, 2, 4, 2, 7, 2, 7, 6, 10, 5, 7, 3, 7, 1, 7, 2, 10, 2, 8, 4, 7, 4, 4, 3, 9, 5, 6, 2, 8, 3, 8, 5, 10, 1, 8, 5, 7, 3, 10, 4, 7, 3, 5, 1, 8, 2, 4, 3, 4, 2, 7, 3, 9, 2, 9, 5, 6, 1, 9, 5, 6, 6, 9, 8, 8, 6, 10, 5, 8, 7, 8, 4, 7, 4, 7, 5, 6, 2, 7, 2, 7, 6, 8, 3, 10, 8, 9, 2, 9, 2, 5, 4, 5, 2, 8, 5, 7, 1, 6, 2, 9, 5, 7, 4, 10, 6, 7, 2, 7, 1, 4, 3, 7, 2, 7, 1, 10, 3, 9, 4, 10, 7, 8, 3, 4, 2, 10, 5, 10, 2, 10, 1, 9, 5, 5, 3, 6, 2, 8, 4, 7, 2, 6, 3, 7, 1, 5, 1, 4, 2, 8, 3, 10, 2, 7, 4, 4, 1, 9, 4, 9, 1, 10, 2, 8, 2, 10, 5, 9, 8, 8, 3, 4, 3, 9, 1, 9, 5, 9, 8, 9, 3, 5, 3, 8, 3, 6, 2, 10, 2, 5, 3, 6, 5, 9, 2, 6, 5, 10, 7, 9, 8, 9, 2, 9, 2, 9, 2, 7, 4, 10, 5, 5, 3, 8, 5, 5, 1, 4, 2, 9, 2, 7, 2, 4, 1, 9, 3, 8, 1, 6, 1, 5, 2, 10, 5, 8, 3, 10, 2, 10, 6, 10, 1, 6, 2, 8, 6, 8, 2, 9, 4, 7, 3, 3, 1, 7, 5, 7, 2, 10, 5, 10, 7, 7, 5, 8, 4, 7, 5, 8, 4, 6, 5, 9, 4, 10, 6, 7, 4, 10, 3, 9, 5, 10, 1, 8, 5, 7, 7, 9, 1, 3, 2, 10, 5, 5, 3, 8, 5, 6, 1, 4, 4, 6, 6, 9, 1, 4, 1, 9, 2, 7, 1, 8, 4, 4, 1, 4, 3, 4, 1, 9, 2, 7, 1, 7, 1, 6, 3, 9, 4, 6, 1, 7, 3, 5, 1, 9, 3, 8, 2, 8, 2, 7, 4, 5, 2, 10, 4, 8, 2, 6, 4, 4, 3, 9, 4, 8, 6, 7, 6, 9, 7, 8, 1, 4, 3, 10, 2, 4, 2, 3, 2, 7, 4, 7, 7, 10, 1, 7, 4, 6, 1, 4, 3, 8, 1, 4, 1, 3, 1, 5, 1, 3, 3, 8, 4, 10, 7, 9, 1, 10, 1, 6, 1, 5, 2, 5, 2, 10, 6, 9, 8, 8, 3, 10, 3, 6, 4, 10, 3, 6, 5, 6, 6, 10, 1, 9, 3, 9, 8, 8, 4, 9, 6, 8, 6, 7, 6, 9, 5, 9, 3, 8, 5, 6, 1, 8, 1, 7, 3, 8, 7, 8, 3, 10, 6, 7, 2, 6, 2, 2, 1, 5, 4, 8, 1, 7, 2, 8, 3, 10, 4, 10, 6, 10, 2, 9, 2, 7, 5, 7, 1, 6, 1, 10, 4, 6, 3, 10, 8, 9, 6, 10, 2, 8, 1, 5, 1, 2, 1, 5, 1, 10, 1, 8, 2, 10, 3, 8, 5, 10, 10, 10, 1, 10, 1, 5, 4, 10, 4, 10, 3, 6, 3, 10, 1, 3, 3, 3, 3, 10, 3, 9, 8, 8, 3, 8, 7, 9, 2, 8, 4, 5, 4, 7, 4, 10, 5, 10, 3, 5, 4, 8, 5, 10, 5, 6, 3, 8, 3, 7, 1, 9, 2, 6, 3, 6, 1, 7, 3, 4, 2, 6, 4, 9, 5, 9, 3, 8, 4, 6, 4, 10, 1, 10, 8, 8, 3, 7, 1, 10, 4, 9, 5, 8, 4, 9, 5, 10, 8, 8, 8, 8, 1, 9, 4, 9, 4, 4, 1, 2, 2, 7, 6, 9, 1, 9, 2, 6, 3, 8, 7, 9, 3, 5, 1, 7, 3, 9, 3, 9, 3, 8, 5, 10, 1, 9, 6, 7, 6, 7, 1, 6, 3, 5, 5, 9, 3, 9, 5, 10, 2, 8, 3, 6, 5, 9, 1, 6, 3, 4, 4, 9, 4, 4, 4, 7, 4, 10, 2, 4, 2, 3, 2, 5, 2, 6, 5, 7, 1, 4, 2, 3, 2, 6, 6, 6, 3, 9, 1, 9, 4, 7, 3, 8, 3, 7, 4, 6, 2, 10, 2, 9, 4, 7, 1, 9, 5, 7, 6, 7, 6, 9, 7, 9, 3, 10, 1, 10, 2, 10, 1, 7, 2, 6, 2, 10, 4, 10, 5, 9, 2, 5, 2, 2, 2, 7, 5, 9, 4, 7, 3, 6, 1, 10, 3, 3, 2, 9, 3, 6, 4, 8, 1, 6, 2, 6, 1, 7, 6, 8, 5, 10, 7, 9, 6, 8, 7, 9, 7, 7, 3, 10, 2, 2, 1, 3, 1, 10, 8, 10, 1, 10, 4, 8, 7, 8, 3, 6, 2, 10, 1, 9, 7, 9, 3, 5, 4, 10, 1, 6, 4, 5, 4, 8, 3, 5, 2, 8, 3, 7, 3, 8, 4, 6, 4, 9, 5, 7, 6, 10, 7, 10, 2, 6, 3, 10, 8, 9, 1, 2, 1, 10, 5, 7, 2, 5, 2, 9, 5, 7, 1, 10, 3, 10, 3, 10, 4, 7, 3, 4, 3, 9, 3, 6, 1, 7, 2, 10, 3, 7, 3, 8, 2, 7, 1, 7, 4, 5, 3, 10, 2, 7, 5, 8, 1, 5, 3, 5, 3, 5, 3, 5, 2, 7, 3, 6, 3, 5, 4, 4, 4, 6, 4, 5, 3, 10, 3, 6, 4, 6, 2, 6, 4, 5, 3, 6, 5, 9, 3, 8, 6, 7, 3, 8, 1, 9, 5, 6, 1, 8, 1, 7, 6, 8, 3, 8, 1, 8, 5, 7, 2, 3, 3, 7, 4, 7, 6, 9, 2, 10, 8, 9, 5, 8, 2, 10, 1, 7, 5, 10, 4, 8, 3, 7, 4, 8, 6, 7, 4, 6, 2, 9, 2, 9, 7, 10, 3, 9, 7, 10, 1, 8, 1, 8, 1, 8, 4, 7, 6, 9, 3, 9, 3, 7, 5, 6, 1, 3, 3, 7, 1, 3, 1, 10, 2, 8, 7, 9, 3, 9, 3, 7, 4, 8, 7, 8, 3, 8, 8, 9, 1, 7, 2, 4, 2, 10, 4, 7, 6, 9, 2, 6, 2, 5, 3, 9, 1, 10, 2, 5, 3, 7, 1, 8, 2, 4, 1, 4, 1, 9, 4, 5, 2, 3, 1, 5, 1, 9, 3, 6, 2, 10, 1, 9, 4, 5, 3, 10, 7, 10, 2, 10, 9, 10, 8, 10, 7, 10, 1, 9, 6, 8, 2, 3, 1, 3, 3, 9, 4, 8, 5, 9, 4, 10, 7, 9, 9, 10, 1, 7, 3, 8, 3, 8, 5, 9, 3, 10, 5, 10, 3, 6, 5, 9, 2, 7, 4, 5, 2, 8, 1, 4, 3, 9, 7, 10, 9, 10, 6, 7, 3, 8, 4, 10, 1, 6, 2, 4, 1, 10, 3, 4, 3, 8, 2, 10, 3, 10, 2, 8, 6, 7, 2, 6, 3, 9, 4, 8, 2, 10, 3, 9, 3, 6, 2, 10, 1, 9, 8, 8, 1, 5, 3, 8, 1, 4, 2, 3, 3, 10, 3, 8, 2, 9, 2, 10, 8, 9, 7, 8, 3, 6, 2, 5, 3, 4, 2, 10, 3, 8, 6, 9, 5, 7, 1, 8, 5, 10, 2, 7, 1, 5, 1, 8, 1, 3, 1, 9, 3, 7, 5, 8, 3, 6, 2, 4, 1, 3, 3, 8, 2, 8, 1, 9, 2, 9, 5, 9, 7, 8, 2, 7, 7, 10, 1, 8, 1, 5, 2, 8, 4, 8, 4, 10, 2, 7, 5, 5, 1, 4, 4, 9, 6, 10, 5, 8, 3, 6, 2, 5, 3, 10, 3, 5, 2, 7, 2, 7, 4, 7, 1, 6, 1, 8, 4, 10, 6, 6, 5, 8, 3, 8, 6, 7, 1, 3, 1, 5, 1, 7, 4, 6, 3, 8, 5, 8, 3, 8, 3, 7, 6, 9, 2, 4, 2, 3, 2, 8, 1, 10, 10, 10, 1, 7, 4, 5, 1, 9, 2, 9, 2, 6, 3, 6, 3, 4, 3, 5, 2, 6, 1, 6, 2, 3, 2, 5, 3, 4, 2, 8, 1, 9, 5, 7, 7, 7, 3, 5, 3, 5, 2, 2, 1, 4, 4, 10, 7, 8, 1, 6, 5, 6, 4, 8, 5, 8, 7, 7, 4, 9, 6, 9, 1, 8, 2, 5, 2, 7, 2, 9, 6, 7, 3, 10, 2, 7, 2, 10, 2, 6, 4, 8, 2, 6, 5, 6, 1, 4, 2, 6, 2, 4, 1, 8, 1, 5, 3, 4, 3, 6, 2, 8, 2, 4, 3, 10, 1, 10, 4, 9, 1, 8, 1, 7, 6, 9, 3, 6, 1, 8, 2, 7, 4, 7, 1, 3, 1, 8, 5, 9, 1, 10, 8, 10, 6, 8, 2, 7, 4, 6, 4, 9, 6, 9, 2, 9, 8, 8, 8, 9, 5, 10, 4, 10, 4, 9, 2, 5, 3, 6, 5, 10, 6, 10, 2, 9, 3, 8, 3, 8, 6, 7, 6, 8, 3, 3, 2, 6, 2, 3, 2, 7, 6, 6, 5, 7, 3, 6, 1, 4, 2, 7, 5, 8, 1, 9, 6, 10, 8, 10, 5, 7, 2, 5, 2, 5, 3, 10, 5, 9, 3, 7, 3, 6, 3, 4, 3, 5, 1, 8, 2, 10, 6, 9, 7, 9, 4, 8, 6, 7, 3, 10, 4, 9, 6, 9, 1, 2, 1, 6, 4, 6, 3, 4, 2, 7, 3, 8, 1, 10, 7, 8, 2, 9, 5, 10, 6, 9, 8, 9, 9, 9, 4, 8, 6, 8, 2, 4, 1, 10, 7, 8, 1, 9, 1, 6, 5, 6, 3, 4, 2, 10, 1, 5, 3, 6, 4, 10, 4, 8, 3, 10, 2, 6, 3, 8, 1, 4, 2, 6, 1, 7, 3, 3, 1, 9, 3, 10, 6, 10, 5, 10, 3, 9, 3, 5, 3, 9, 3, 4, 3, 7, 2, 5, 1, 1, 1, 10, 2, 10, 2, 4, 2, 9, 2, 7, 1, 3, 1, 3, 3, 5, 3, 3, 3, 8, 1, 4, 3, 10, 3, 5, 2, 6, 3, 7, 1, 5, 4, 9, 8, 10, 3, 4, 4, 7, 3, 8, 4, 7, 1, 7, 2, 9, 5, 8, 6, 10, 5, 7, 4, 7, 5, 7, 3, 10, 8, 10, 4, 9, 4, 5, 4, 9, 3, 10, 2, 6, 2, 7, 2, 10, 5, 7, 3, 8, 6, 8, 3, 10, 7, 10, 4, 8, 1, 5, 2, 9, 9, 10, 8, 8, 5, 9, 2, 5, 2, 9, 3, 10, 3, 9, 6, 6, 5, 6, 2, 5, 1, 7, 2, 10, 1, 4, 4, 4, 3, 10, 3, 3, 2, 8, 2, 9, 4, 8, 4, 7, 1, 10, 6, 7, 3, 6, 4, 8, 7, 9, 6, 8, 3, 8, 1, 6, 1, 4, 1, 7, 1, 2, 2, 8, 2, 7, 1, 4, 1, 6, 1, 10, 2, 8, 1, 5, 2, 4, 2, 8, 3, 10, 4, 10, 2, 5, 3, 5, 2, 5, 4, 7, 2, 8, 5, 5, 3, 10, 8, 10, 1, 6, 2, 8, 5, 7, 5, 10, 3, 7, 5, 6, 1, 10, 4, 10, 10, 10, 5, 10, 1, 10, 7, 10, 4, 10, 2, 6, 6, 9, 2, 6, 4, 6, 1, 10, 6, 6, 1, 5, 4, 10, 2, 7, 2, 5, 1, 4, 4, 9, 5, 7, 1, 10, 1, 7, 2, 7, 3, 4, 2, 3, 3, 4, 1, 10, 3, 5, 3, 5, 2, 4, 2, 7, 1, 5, 3, 6, 5, 9, 1, 10, 1, 9, 3, 7, 7, 9, 1, 9, 1, 5, 3, 8, 4, 10, 1, 10, 3, 10, 7, 8, 2, 4, 1, 5, 3, 6, 3, 10, 5, 10, 8, 8, 5, 9, 3, 8, 3, 6, 5, 6, 4, 9, 5, 10, 3, 6, 5, 7, 1, 10, 1, 9, 1, 6, 3, 9, 6, 6, 1, 9, 1, 7, 4, 7, 2, 7, 2, 10, 3, 8, 2, 5, 3, 9, 8, 8, 5, 8, 6, 9, 1, 8, 3, 6, 2, 4, 4, 9, 1, 9, 4, 9, 5, 10, 2, 10, 10, 10, 6, 9, 1, 2, 2, 5, 4, 7, 4, 9, 5, 6, 5, 6, 2, 10, 3, 7, 3, 5, 1, 7, 3, 10, 6, 9, 6, 10, 3, 8, 6, 7, 1, 4, 1, 6, 3, 7, 4, 7, 4, 9, 2, 8, 1, 5, 1, 6, 1, 10, 2, 6, 2, 4, 4, 9, 3, 6, 3, 6, 4, 10, 6, 7, 4, 7, 3, 5, 3, 4, 2, 8, 7, 10, 2, 6, 2, 10, 1, 4, 4, 8, 2, 8, 1, 8, 3, 7, 5, 9, 6, 10, 1, 8, 3, 6, 2, 3, 2, 10, 5, 6, 4, 7, 4, 9, 2, 6, 2, 7, 5, 9, 5, 8, 4, 10, 6, 8, 6, 7, 1, 10, 1, 5, 1, 10, 1, 9, 7, 8, 5, 10, 7, 10, 3, 8, 3, 10, 3, 10, 8, 10, 2, 9, 1, 8, 2, 7, 5, 10, 3, 9, 3, 5, 4, 10, 1, 7, 3, 6, 1, 7, 5, 9, 3, 9, 4, 10, 2, 2, 1, 6, 5, 10, 1, 7, 2, 9, 3, 5, 4, 5, 2, 8, 2, 9, 6, 7, 3, 6, 5, 8, 1, 9, 7, 10, 3, 7, 3, 10, 3, 9, 5, 8, 1, 2, 1, 4, 1, 2, 2, 7, 3, 8, 4, 5, 3, 7, 4, 5, 5, 6, 1, 10, 5, 10, 3, 7, 5, 5, 2, 8, 7, 9, 2, 7, 2, 3, 2, 2, 1, 4, 2, 4, 1, 9, 6, 7, 5, 9, 9, 9, 3, 8, 6, 10, 1, 8, 3, 9, 3, 8, 6, 7, 1, 9, 4, 5, 4, 5, 4, 10, 4, 7, 2, 9, 2, 9, 1, 6, 3, 5, 4, 10, 3, 6, 4, 9, 3, 5, 5, 7, 5, 8, 1, 3, 3, 6, 4, 7, 1, 8, 2, 9, 5, 6, 2, 5, 5, 6, 1, 7, 2, 8, 1, 5, 4, 8, 3, 4, 1, 6, 5, 10, 5, 8, 4, 10, 1, 5, 1, 7, 4, 4, 2, 7, 3, 7, 1, 6, 2, 10, 2, 10, 1, 10, 6, 9, 8, 8, 6, 10, 6, 7, 5, 6, 1, 7, 2, 3, 1, 8, 4, 5, 3, 5, 5, 8, 6, 9, 6, 7, 6, 9, 8, 10, 4, 10, 1, 8, 2, 9, 1, 6, 5, 7, 2, 5, 3, 9, 4, 7, 3, 5, 3, 10, 1, 4, 3, 10, 4, 4, 1, 4, 2, 10, 5, 7, 6, 10, 6, 10, 1, 7, 5, 10, 6, 9, 4, 9, 7, 10, 1, 7, 6, 7, 2, 10, 3, 10, 1, 8, 3, 5, 1, 7, 5, 8, 4, 6, 4, 10, 4, 6, 4, 6, 1, 7, 1, 4, 1, 10, 4, 6, 2, 4, 1, 4, 2, 3, 2, 10, 2, 8, 6, 10, 2, 5, 1, 10, 1, 7, 3, 4, 2, 7, 5, 10, 3, 5, 4, 8, 7, 10, 4, 10, 1, 10, 3, 9, 5, 9, 4, 7, 2, 5, 2, 8, 5, 8, 4, 9, 4, 9, 5, 7, 2, 10, 5, 7, 3, 7, 1, 5, 2, 4, 3, 9, 8, 9, 5, 7, 5, 6, 2, 8, 5, 8, 5, 7, 4, 8, 6, 7, 5, 9, 4, 10, 1, 5, 5, 6, 2, 7, 3, 10, 3, 10, 9, 10, 2, 10, 2, 9, 2, 7, 4, 10, 5, 9, 1, 2, 1, 4, 2, 6, 5, 6, 4, 8, 1, 8, 2, 9, 3, 6, 4, 4, 1, 9, 4, 7, 1, 10, 7, 10, 3, 6, 2, 6, 5, 8, 4, 10, 1, 9, 3, 9, 3, 6, 3, 6, 3, 10, 1, 8, 5, 6, 2, 5, 4, 8, 1, 9, 4, 9, 5, 7, 4, 10, 3, 10, 4, 10, 5, 8, 2, 7, 2, 4, 3, 7, 2, 4, 3, 7, 4, 6, 5, 10, 5, 10, 2, 9, 6, 6, 2, 8, 4, 9, 5, 9, 3, 6, 4, 9, 2, 4, 3, 8, 4, 8, 7, 8, 4, 7, 1, 8, 2, 7, 6, 10, 6, 6, 1, 8, 4, 7, 1, 8, 5, 7, 1, 9, 1, 7, 2, 7, 1, 9, 7, 10, 3, 9, 5, 10, 4, 9, 4, 9, 4, 7, 6, 6, 1, 7, 2, 9, 2, 7, 3, 7, 1, 8, 5, 9, 5, 6, 2, 9, 2, 5, 1, 4, 1, 2, 1, 8, 3, 6, 3, 3, 1, 8, 6, 9, 8, 10, 8, 9, 2, 8, 3, 7, 2, 6, 1, 2, 2, 3, 1, 7, 1, 4, 1, 4, 1, 8, 3, 10, 4, 9, 2, 4, 2, 10, 4, 9, 1, 10, 4, 8, 1, 10, 3, 10, 1, 7, 1, 6, 2, 8, 2, 7, 3, 8, 1, 2, 1, 9, 3, 8, 3, 4, 1, 8, 2, 9, 7, 10, 4, 10, 1, 7, 1, 7, 4, 6, 1, 8, 2, 7, 5, 10, 3, 6, 1, 2, 2, 6, 3, 10, 2, 10, 2, 6, 5, 7, 5, 5, 4, 7, 1, 4, 3, 6, 2, 10, 5, 9, 1, 6, 1, 8, 1, 9, 3, 5, 1, 4, 3, 8, 3, 10, 5, 5, 1, 10, 4, 6, 5, 9, 1, 8, 1, 5, 3, 7, 3, 5, 4, 6, 5, 9, 3, 9, 2, 9, 6, 8, 6, 10, 9, 10, 1, 10, 6, 10, 1, 10, 4, 5, 1, 8, 3, 10, 3, 8, 4, 7, 2, 10, 1, 8, 1, 7, 3, 10, 4, 6, 1, 5, 5, 5, 1, 4, 3, 6, 6, 8, 3, 8, 5, 7, 4, 9, 8, 9, 4, 5, 2, 9, 6, 8, 3, 8, 1, 9, 5, 8, 7, 10, 7, 8, 4, 8, 2, 4, 1, 9, 4, 9, 3, 10, 8, 8, 6, 10, 2, 9, 4, 7, 2, 7, 3, 8, 1, 4, 4, 6, 1, 4, 3, 4, 1, 8, 3, 9, 3, 7, 4, 8, 6, 8, 5, 7, 1, 6, 6, 10, 4, 9, 1, 10, 4, 6, 3, 9, 3, 10, 1, 8, 4, 9, 1, 9, 2, 6, 3, 4, 3, 9, 2, 4, 1, 7, 1, 6, 2, 6, 3, 7, 1, 2, 1, 7, 3, 6, 2, 8, 3, 10, 7, 9, 5, 7, 1, 7, 3, 9, 4, 7, 3, 8, 4, 8, 3, 4, 3, 4, 3, 10, 6, 7, 3, 6, 3, 9, 4, 5, 4, 9, 4, 7, 1, 9, 2, 4, 2, 9, 3, 8, 4, 5, 3, 6, 1, 6, 1, 5, 1, 9, 2, 5, 3, 9, 3, 4, 1, 9, 7, 9, 5, 8, 1, 7, 1, 6, 2, 6, 3, 10, 3, 9, 4, 6, 1, 6, 3, 9, 1, 8, 3, 8, 2, 4, 1, 7, 2, 10, 5, 7, 5, 7, 3, 4, 2, 9, 7, 8, 5, 6, 1, 7, 1, 9, 7, 7, 2, 10, 2, 9, 6, 10, 3, 7, 1, 8, 7, 9, 8, 9, 5, 8, 1, 10, 2, 8, 3, 6, 5, 8, 4, 9, 5, 9, 8, 9, 1, 6, 3, 10, 4, 6, 3, 9, 5, 10, 4, 7, 6, 9, 6, 8, 1, 9, 1, 10, 4, 9, 8, 8, 2, 4, 3, 9, 3, 9, 6, 10, 6, 9, 8, 8, 5, 6, 2, 6, 5, 7, 6, 10, 5, 7, 4, 6, 3, 4, 2, 10, 4, 10, 8, 10, 5, 9, 1, 2, 2, 4, 3, 7, 4, 8, 4, 8, 3, 8, 3, 7, 5, 9, 1, 7, 5, 5, 1, 10, 3, 5, 2, 8, 6, 7, 4, 8, 7, 9, 4, 7, 1, 5, 3, 4, 2, 5, 5, 9, 6, 9, 1, 4, 2, 10, 5, 9, 2, 8, 1, 7, 3, 10, 2, 6, 4, 10, 4, 5, 3, 9, 2, 6, 5, 8, 2, 6, 4, 9, 7, 7, 2, 7, 4, 9, 6, 7, 7, 10, 1, 7, 3, 7, 1, 7, 4, 10, 1, 5, 4, 7, 5, 6, 4, 10, 3, 5, 2, 4, 3, 10, 7, 8, 7, 7, 2, 7, 3, 7, 1, 7, 5, 6, 3, 9, 2, 9, 5, 9, 5, 9, 8, 10, 6, 7, 5, 10, 2, 9, 2, 8, 6, 10, 7, 7, 4, 8, 8, 9, 4, 9, 3, 6, 1, 4, 3, 9, 4, 6, 3, 5, 2, 4, 4, 8, 4, 7, 4, 8, 5, 8, 6, 9, 4, 9, 4, 8, 3, 7, 3, 6, 4, 10, 6, 6, 1, 5, 5, 9, 1, 8, 7, 10, 6, 9, 2, 10, 2, 3, 1, 8, 3, 6, 5, 9, 1, 10, 6, 9, 7, 7, 1, 8, 2, 6, 5, 6, 1, 10, 5, 6, 4, 10, 7, 10, 3, 8, 2, 7, 2, 5, 2, 4, 3, 7, 1, 8, 5, 8, 6, 10, 1, 7, 3, 8, 4, 6, 4, 6, 5, 8, 4, 6, 5, 9, 7, 7, 2, 7, 1, 6, 4, 9, 4, 10, 9, 10, 4, 10, 5, 7, 2, 9, 4, 5, 2, 9, 6, 7, 1, 4, 1, 4, 3, 7, 6, 8, 3, 4, 3, 6, 2, 8, 4, 5, 2, 9, 1, 8, 2, 6, 4, 8, 1, 3, 2, 8, 1, 9, 2, 3, 1, 10, 3, 9, 6, 6, 2, 8, 1, 10, 6, 10, 7, 10, 8, 10, 7, 9, 4, 5, 4, 9, 1, 9, 6, 7, 5, 10, 1, 9, 4, 9, 4, 5, 1, 5, 1, 10, 3, 9, 4, 8, 1, 8, 2, 5, 1, 6, 1, 6, 4, 10, 7, 7, 2, 9, 3, 7, 6, 8, 6, 8, 2, 5, 4, 8, 1, 4, 3, 10, 4, 10, 2, 9, 2, 8, 5, 10, 4, 9, 5, 7, 3, 8, 4, 8, 3, 7, 3, 7, 6, 9, 9, 9, 3, 8, 4, 8, 4, 4, 4, 9, 8, 10, 3, 6, 3, 5, 4, 10, 5, 6, 5, 9, 9, 9, 3, 10, 5, 7, 1, 6, 3, 5, 4, 5, 1, 5, 4, 5, 1, 5, 1, 6, 3, 3, 2, 3, 2, 7, 7, 8, 1, 8, 1, 10, 9, 10, 4, 8, 4, 8, 1, 8, 2, 9, 6, 9, 2, 7, 5, 8, 1, 4, 2, 9, 4, 8, 5, 8, 5, 9, 3, 9, 2, 4, 3, 7, 6, 6, 4, 8, 5, 6, 6, 7, 2, 5, 3, 9, 6, 9, 6, 8, 7, 9, 4, 8, 7, 8, 5, 5, 1, 10, 2, 8, 4, 9, 5, 8, 2, 8, 2, 9, 2, 7, 6, 9, 6, 6, 6, 10, 2, 8, 2, 10, 7, 10, 4, 5, 4, 9, 4, 6, 1, 6, 1, 8, 2, 8, 3, 6, 4, 8, 1, 10, 5, 8, 6, 10, 1, 7, 1, 4, 4, 4, 1, 10, 3, 10, 4, 8, 4, 6, 1, 7, 6, 6, 1, 7, 2, 8, 2, 6, 5, 8, 1, 4, 1, 5, 3, 10, 7, 10, 6, 7, 3, 10, 6, 10, 2, 4, 3, 10, 4, 10, 1, 8, 5, 6, 1, 9, 4, 9, 4, 6, 2, 10, 4, 9, 7, 8, 6, 10, 3, 7, 7, 9, 2, 8, 2, 6, 5, 8, 6, 9, 1, 3, 1, 10, 4, 10, 5, 10, 3, 5, 1, 5, 2, 8, 7, 7, 4, 6, 6, 10, 5, 6, 2, 6, 5, 8, 7, 7, 1, 10, 2, 9, 4, 9, 5, 10, 5, 8, 1, 8, 1, 8, 3, 7, 1, 10, 4, 5, 1, 6, 3, 4, 3, 8, 3, 7, 2, 7, 4, 9, 2, 5, 1, 9, 4, 8, 5, 6, 3, 6, 6, 7, 1, 6, 5, 9, 6, 9, 7, 10, 2, 3, 1, 10, 4, 4, 3, 7, 1, 6, 4, 6, 4, 4, 2, 3, 2, 9, 3, 7, 5, 8, 2, 7, 6, 9, 8, 9, 2, 8, 6, 7, 4, 9, 1, 5, 1, 8, 3, 6, 5, 6, 2, 10, 6, 10, 4, 7, 4, 7, 3, 10, 5, 10, 3, 7, 5, 7, 6, 9, 4, 9, 2, 4, 3, 9, 8, 9, 2, 2, 2, 10, 5, 10, 7, 9, 3, 6, 4, 5, 2, 9, 4, 10, 9, 9, 1, 6, 5, 8, 8, 10, 3, 10, 4, 9, 4, 6, 4, 9, 2, 6, 2, 3, 1, 3, 1, 9, 3, 10, 6, 9, 1, 8, 2, 6, 6, 9, 3, 7, 1, 6, 5, 6, 3, 5, 4, 6, 4, 8, 4, 8, 6, 6, 1, 4, 1, 7, 1, 5, 3, 8, 6, 9, 1, 7, 5, 7, 5, 5, 1, 9, 2, 8, 4, 10, 2, 8, 6, 9, 1, 10, 4, 8, 5, 10, 3, 6, 2, 9, 1, 10, 3, 6, 5, 9, 6, 6, 4, 8, 2, 7, 1, 6, 4, 7, 2, 8, 4, 8, 5, 9, 5, 9, 1, 4, 3, 5, 1, 5, 1, 10, 1, 7, 4, 9, 6, 9, 4, 8, 1, 6, 6, 10, 2, 7, 4, 10, 2, 8, 4, 10, 1, 4, 3, 8, 4, 5, 2, 7, 5, 8, 4, 6, 5, 5, 4, 6, 1, 10, 8, 9, 2, 5, 3, 8, 3, 8, 5, 6, 2, 10, 2, 9, 1, 4, 1, 4, 3, 7, 1, 9, 2, 3, 2, 8, 5, 7, 4, 7, 1, 8, 4, 7, 2, 6, 3, 10, 4, 10, 7, 8, 1, 5, 1, 4, 1, 2, 2, 10, 1, 7, 4, 8, 5, 9, 7, 8, 7, 8, 5, 10, 1, 7, 4, 10, 1, 9, 2, 7, 2, 8, 5, 9, 1, 10, 5, 9, 6, 6, 1, 8, 6, 8, 2, 8, 3, 8, 5, 6, 1, 9, 3, 4, 1, 10, 1, 9, 9, 10, 7, 8, 2, 10, 3, 8, 1, 4, 3, 7, 4, 9, 3, 10, 7, 10, 2, 4, 2, 3, 3, 6, 1, 9, 4, 9, 5, 7, 5, 9, 1, 8, 7, 10, 7, 7, 2, 4, 2, 10, 5, 8, 2, 6, 2, 5, 2, 9, 2, 8, 3, 8, 1, 8, 3, 4, 1, 7, 3, 9, 4, 10, 9, 10, 5, 8, 5, 9, 3, 6, 4, 8, 1, 8, 3, 8, 3, 4, 3, 7, 3, 6, 3, 9, 1, 7, 3, 7, 3, 5, 4, 10, 4, 6, 1, 10, 3, 10, 3, 8, 1, 6, 3, 4, 1, 4, 1, 8, 5, 7, 6, 7, 2, 8, 4, 6, 6, 9, 3, 7, 3, 5, 2, 8, 3, 9, 3, 8, 5, 7, 3, 5, 1, 5, 1, 5, 5, 10, 4, 8, 1, 5, 1, 4, 3, 10, 5, 8, 6, 10, 3, 7, 1, 7, 1, 8, 2, 4, 2, 7, 3, 8, 6, 9, 3, 5, 3, 7, 1, 5, 3, 9, 4, 9, 1, 6, 2, 10, 7, 7, 5, 7, 1, 7, 3, 10, 1, 7, 4, 4, 1, 10, 8, 10, 4, 5, 2, 4, 2, 3, 2, 9, 2, 9, 8, 8, 4, 8, 4, 9, 4, 9, 5, 8, 8, 9, 2, 8, 1, 8, 1, 10, 2, 5, 1, 7, 4, 6, 1, 4, 2, 8, 4, 7, 4, 8, 2, 5, 1, 7, 4, 9, 2, 10, 3, 7, 6, 6, 1, 8, 1, 5, 5, 7, 6, 9, 1, 2, 1, 2, 2, 8, 6, 9, 2, 9, 6, 9, 7, 8, 5, 6, 2, 7, 2, 8, 6, 10, 6, 10, 8, 10, 7, 8, 3, 7, 1, 6, 6, 9, 2, 7, 1, 9, 4, 9, 6, 8, 1, 6, 3, 6, 2, 5, 4, 10, 7, 10, 2, 4, 2, 8, 3, 8, 2, 8, 5, 8, 7, 10, 1, 9, 4, 9, 4, 9, 8, 8, 3, 10, 3, 6, 4, 5, 3, 7, 1, 6, 5, 7, 7, 10, 1, 10, 6, 10, 2, 10, 4, 9, 6, 10, 2, 9, 5, 10, 7, 7, 5, 9, 2, 9, 7, 10, 4, 5, 1, 3, 1, 9, 1, 9, 1, 8, 1, 2, 1, 7, 1, 5, 1, 3, 2, 8, 5, 10, 7, 9, 1, 6, 1, 6, 2, 6, 5, 6, 3, 9, 1, 10, 4, 9, 2, 6, 4, 8, 2, 8, 2, 7, 3, 7, 3, 9, 5, 10, 4, 6, 1, 8, 5, 10, 5, 8, 2, 4, 2, 9, 2, 6, 2, 9, 4, 8, 4, 8, 5, 9, 2, 4, 1, 8, 2, 3, 3, 5, 4, 10, 2, 3, 2, 4, 2, 6, 2, 5, 1, 10, 4, 8, 1, 8, 5, 8, 1, 7, 5, 8, 7, 10, 7, 8, 1, 3, 2, 6, 6, 6, 1, 7, 6, 10, 10, 10, 4, 8, 2, 3, 2, 7, 4, 6, 3, 8, 2, 4, 2, 10, 3, 9, 1, 6, 3, 7, 4, 5, 3, 10, 3, 6, 4, 10, 6, 10, 1, 8, 1, 2, 1, 5, 2, 10, 1, 7, 1, 4, 2, 7, 3, 10, 4, 7, 1, 3, 1, 10, 1, 9, 7, 9, 1, 9, 4, 8, 5, 10, 2, 5, 1, 7, 5, 9, 4, 7, 2, 10, 3, 7, 3, 9, 4, 5, 4, 9, 2, 6, 5, 6, 4, 4, 2, 7, 4, 10, 4, 6, 5, 9, 2, 9, 1, 9, 7, 7, 1, 6, 2, 2, 1, 7, 4, 7, 5, 7, 6, 7, 2, 9, 7, 7, 1, 9, 4, 7, 1, 4, 1, 10, 6, 7, 3, 7, 1, 6, 5, 6, 3, 5, 3, 5, 4, 7, 5, 7, 4, 10, 3, 10, 5, 10, 3, 7, 2, 8, 4, 7, 7, 8, 1, 6, 2, 4, 3, 9, 2, 5, 4, 10, 3, 6, 2, 7, 5, 6, 4, 7, 5, 9, 3, 8, 2, 7, 5, 9, 9, 9, 2, 8, 3, 8, 4, 6, 2, 5, 2, 3, 2, 7, 4, 8, 3, 7, 5, 10, 8, 9, 5, 8, 7, 10, 3, 10, 5, 6, 1, 5, 3, 9, 3, 9, 8, 10, 2, 4, 2, 4, 3, 6, 3, 5, 2, 7, 3, 9, 6, 10, 6, 8, 6, 10, 7, 7, 3, 8, 2, 7, 2, 7, 1, 5, 2, 5, 2, 6, 1, 5, 4, 7, 7, 7, 2, 6, 6, 9, 2, 7, 6, 8, 6, 10, 3, 3, 1, 6, 1, 4, 2, 10, 3, 8, 6, 10, 6, 9, 2, 4, 1, 8, 4, 7, 1, 5, 1, 10, 1, 6, 2, 7, 2, 9, 2, 9, 2, 4, 4, 8, 5, 10, 1, 9, 8, 8, 1, 4, 2, 9, 3, 9, 1, 5, 1, 5, 1, 4, 4, 6, 1, 8, 8, 8, 1, 8, 6, 9, 5, 5, 4, 8, 2, 10, 3, 9, 3, 9, 5, 9, 1, 8, 1, 10, 5, 6, 4, 10, 5, 7, 3, 10, 7, 8, 3, 6, 1, 5, 1, 4, 2, 10, 6, 9, 2, 8, 1, 6, 2, 9, 3, 6, 4, 8, 6, 7, 5, 10, 2, 9, 6, 10, 4, 7, 6, 7, 7, 8, 7, 8, 2, 7, 2, 10, 2, 9, 5, 10, 7, 9, 5, 8, 7, 7, 3, 10, 9, 10, 6, 10, 5, 9, 6, 9, 2, 6, 3, 7, 6, 8, 1, 6, 2, 9, 5, 6, 4, 6, 3, 10, 2, 9, 2, 6, 1, 4, 1, 7, 1, 9, 2, 3, 2, 8, 1, 10, 2, 7, 2, 8, 2, 5, 3, 4, 1, 8, 4, 9, 7, 8, 1, 7, 6, 6, 3, 6, 1, 2, 2, 8, 3, 9, 3, 9, 2, 8, 5, 9, 5, 8, 2, 7, 3, 5, 4, 9, 2, 9, 4, 6, 2, 2, 1, 9, 3, 6, 6, 9, 7, 7, 4, 7, 2, 9, 5, 9, 2, 9, 2, 10, 7, 8, 1, 7, 4, 9, 4, 9, 4, 5, 2, 9, 5, 8, 2, 5, 1, 4, 2, 7, 3, 10, 5, 8, 3, 5, 3, 4, 2, 5, 1, 9, 5, 7, 2, 6, 4, 6, 1, 10, 1, 7, 1, 10, 4, 10, 2, 10, 5, 10, 7, 8, 2, 6, 3, 7, 4, 6, 2, 5, 3, 4, 1, 6, 6, 7, 6, 7, 5, 9, 5, 10, 2, 5, 3, 5, 4, 10, 3, 6, 4, 10, 4, 8, 2, 6, 1, 9, 8, 9, 2, 4, 1, 8, 6, 7, 2, 5, 2, 5, 3, 10, 5, 8, 6, 9, 2, 10, 3, 7, 4, 6, 4, 7, 6, 7, 1, 8, 4, 7, 2, 8, 7, 10, 1, 6, 2, 3, 3, 7, 4, 8, 5, 6, 3, 8, 7, 9, 1, 6, 3, 10, 8, 8, 3, 7, 6, 8, 6, 10, 8, 8, 1, 7, 4, 5, 2, 7, 1, 8, 5, 10, 2, 8, 2, 5, 4, 9, 6, 6, 6, 10, 3, 3, 1, 10, 3, 10, 7, 10, 5, 6, 2, 7, 4, 5, 3, 9, 5, 9, 2, 8, 6, 7, 7, 9, 2, 7, 3, 3, 2, 6, 1, 8, 5, 7, 2, 5, 2, 8, 3, 7, 5, 7, 1, 9, 8, 9, 2, 5, 3, 6, 3, 4, 2, 4, 1, 6, 2, 6, 3, 4, 1, 9, 4, 10, 7, 8, 3, 9, 3, 8, 3, 9, 5, 10, 6, 9, 6, 7, 6, 9, 3, 4, 3, 10, 4, 10, 6, 8, 3, 8, 7, 8, 8, 10, 2, 8, 7, 10, 2, 7, 7, 9, 1, 7, 7, 9, 7, 8, 4, 8, 5, 6, 2, 7, 5, 5, 4, 9, 1, 2, 2, 10, 4, 8, 2, 10, 4, 6, 2, 5, 3, 7, 4, 8, 3, 10, 5, 9, 4, 8, 1, 3, 1, 9, 3, 6, 5, 7, 4, 5, 2, 8, 5, 8, 4, 9, 4, 6, 5, 10, 2, 10, 1, 9, 6, 7, 5, 6, 5, 9, 8, 9, 3, 9, 2, 8, 5, 5, 5, 6, 5, 8, 2, 7, 3, 10, 6, 8, 5, 8, 5, 6, 5, 6, 5, 7, 1, 5, 5, 8, 5, 5, 1, 7, 3, 9, 1, 10, 3, 6, 2, 7, 2, 6, 3, 5, 3, 8, 4, 10, 1, 8, 6, 10, 8, 9, 1, 9, 8, 9, 4, 8, 1, 9, 2, 8, 2, 6, 5, 6, 1, 6, 2, 7, 4, 6, 2, 8, 1, 6, 2, 10, 4, 7, 3, 5, 4, 9, 2, 7, 4, 7, 5, 9, 3, 5, 3, 9, 4, 8, 2, 9, 2, 9, 2, 7, 5, 6, 2, 8, 5, 8, 4, 8, 4, 6, 2, 10, 1, 4, 3, 3, 3, 7, 6, 9, 2, 8, 3, 6, 4, 7, 2, 10, 7, 10, 4, 8, 5, 8, 7, 8, 8, 10, 3, 9, 4, 8, 6, 6, 1, 7, 2, 9, 1, 7, 4, 6, 1, 4, 3, 4, 4, 10, 2, 6, 3, 9, 1, 10, 2, 9, 2, 4, 2, 2, 2, 7, 4, 8, 7, 8, 6, 7, 3, 6, 1, 4, 2, 10, 6, 8, 2, 6, 2, 8, 3, 8, 4, 9, 5, 9, 9, 10, 3, 10, 1, 9, 7, 9, 2, 8, 1, 4, 3, 3, 3, 8, 2, 8, 2, 5, 2, 4, 1, 9, 2, 6, 1, 6, 6, 9, 6, 9, 2, 9, 5, 10, 6, 8, 3, 4, 3, 8, 8, 10, 3, 9, 4, 8, 7, 7, 7, 9, 3, 7, 1, 7, 5, 9, 3, 7, 3, 7, 7, 7, 4, 7, 4, 7, 7, 9, 2, 7, 3, 10, 2, 8, 4, 10, 4, 7, 2, 6, 3, 6, 3, 7, 7, 10, 3, 7, 3, 10, 4, 7, 4, 9, 6, 10, 5, 9, 1, 3, 2, 8, 1, 8, 7, 7, 6, 9, 4, 9, 5, 7, 6, 9, 6, 7, 5, 7, 2, 9, 4, 8, 6, 8, 3, 9, 1, 6, 2, 7, 4, 10, 7, 10, 5, 10, 3, 7, 4, 6, 3, 3, 1, 4, 3, 7, 5, 8, 2, 6, 3, 7, 3, 10, 1, 8, 6, 10, 4, 7, 1, 7, 6, 9, 7, 8, 6, 8, 1, 6, 1, 2, 2, 5, 5, 8, 3, 7, 1, 9, 6, 10, 1, 10, 2, 10, 4, 5, 1, 5, 4, 9, 5, 10, 3, 9, 5, 9, 5, 8, 5, 9, 6, 9, 4, 8, 5, 10, 4, 6, 6, 9, 8, 9, 4, 9, 3, 6, 5, 6, 6, 9, 4, 8, 2, 9, 6, 8, 6, 10, 5, 6, 1, 8, 3, 9, 6, 10, 2, 8, 2, 8, 2, 8, 6, 8, 7, 10, 1, 10, 3, 10, 1, 7, 5, 9, 3, 7, 5, 9, 7, 8, 1, 6, 2, 6, 5, 9, 1, 9, 6, 9, 4, 9, 4, 8, 3, 6, 1, 8, 6, 8, 1, 7, 4, 9, 3, 9, 4, 10, 10, 10, 1, 7, 5, 6, 2, 10, 4, 10, 5, 10, 4, 7, 5, 7, 1, 5, 3, 6, 4, 8, 1, 8, 4, 5, 3, 6, 4, 6, 4, 5, 2, 10, 5, 9, 5, 9, 2, 5, 3, 9, 4, 7, 2, 10, 6, 10, 4, 7, 6, 10, 4, 7, 4, 9, 6, 7, 7, 10, 4, 7, 4, 6, 3, 10, 7, 9, 1, 10, 3, 5, 2, 10, 6, 9, 6, 8, 5, 6, 1, 8, 4, 7, 2, 4, 2, 10, 1, 3, 1, 10, 4, 9, 2, 4, 2, 7, 4, 4, 3, 9, 9, 10, 7, 10, 3, 6, 1, 4, 4, 10, 7, 8, 1, 4, 3, 10, 1, 6, 1, 5, 1, 7, 4, 7, 3, 6, 2, 9, 3, 8, 2, 7, 2, 6, 3, 3, 3, 8, 7, 8, 1, 10, 6, 7, 1, 10, 6, 9, 5, 6, 3, 9, 6, 8, 1, 8, 1, 8, 3, 8, 4, 5, 1, 6, 1, 10, 1, 4, 1, 9, 1, 10, 2, 9, 1, 9, 4, 5, 1, 4, 1, 3, 3, 5, 3, 6, 3, 7, 2, 4, 3, 10, 4, 7, 2, 5, 1, 8, 4, 5, 5, 6, 3, 8, 3, 6, 1, 8, 4, 9, 9, 9, 5, 10, 2, 8, 4, 9, 1, 10, 8, 9, 3, 10, 4, 10, 5, 8, 8, 10, 8, 10, 1, 10, 6, 6, 4, 5, 1, 8, 5, 9, 3, 6, 6, 7, 2, 6, 2, 5, 3, 6, 4, 7, 2, 6, 1, 4, 3, 5, 2, 9, 5, 8, 7, 8, 4, 5, 3, 10, 1, 7, 3, 10, 7, 7, 3, 9, 1, 8, 5, 10, 3, 10, 4, 8, 3, 5, 4, 7, 3, 5, 4, 8, 3, 9, 6, 7, 4, 8, 1, 5, 1, 4, 4, 7, 2, 7, 6, 10, 6, 9, 2, 6, 4, 10, 8, 10, 3, 10, 6, 7, 7, 10, 5, 7, 5, 7, 2, 8, 3, 8, 6, 8, 1, 10, 3, 6, 2, 7, 4, 5, 2, 10, 3, 10, 4, 5, 1, 4, 2, 10, 2, 8, 5, 8, 3, 6, 2, 6, 4, 8, 3, 5, 5, 10, 1, 7, 1, 8, 3, 9, 4, 7, 1, 10, 3, 5, 2, 7, 1, 2, 1, 7, 2, 7, 5, 10, 5, 8, 6, 10, 3, 9, 5, 10, 7, 9, 5, 6, 4, 9, 5, 9, 5, 8, 2, 10, 5, 10, 1, 9, 3, 6, 1, 3, 1, 10, 3, 5, 5, 8, 8, 9, 1, 7, 1, 4, 3, 9, 5, 9, 3, 9, 7, 10, 2, 10, 2, 8, 3, 5, 2, 4, 3, 8, 2, 4, 1, 6, 2, 8, 7, 10, 3, 8, 7, 8, 2, 3, 1, 5, 1, 6, 2, 5, 3, 10, 1, 7, 1, 7, 4, 5, 3, 6, 1, 6, 3, 4, 1, 4, 4, 6, 1, 8, 4, 5, 4, 8, 5, 10, 6, 10, 1, 9, 2, 9, 6, 9, 1, 9, 4, 10, 1, 6, 3, 10, 1, 10, 3, 9, 4, 5, 5, 5, 2, 7, 6, 10, 2, 9, 8, 9, 2, 6, 2, 3, 2, 6, 3, 8, 3, 9, 4, 5, 1, 6, 3, 10, 3, 5, 1, 3, 2, 4, 2, 10, 5, 5, 5, 10, 9, 10, 2, 3, 1, 9, 9, 9, 4, 10, 5, 9, 4, 10, 4, 7, 7, 10, 7, 10, 9, 9, 1, 9, 1, 6, 6, 8, 6, 10, 1, 9, 1, 7, 3, 6, 4, 10, 4, 8, 4, 9, 1, 7, 4, 9, 1, 7, 6, 7, 4, 9, 4, 9, 4, 8, 3, 10, 2, 6, 1, 7, 5, 10, 6, 6, 4, 10, 1, 9, 8, 10, 3, 10, 7, 8, 4, 10, 2, 7, 2, 10, 3, 10, 2, 7, 3, 5, 2, 9, 3, 10, 8, 9, 5, 10, 1, 5, 2, 5, 1, 5, 1, 9, 6, 9, 6, 8, 6, 9, 5, 6, 1, 6, 4, 5, 4, 9, 4, 5, 2, 8, 2, 7, 2, 10, 1, 8, 1, 8, 3, 5, 1, 7, 1, 9, 3, 9, 1, 5, 2, 5, 3, 10, 1, 5, 2, 5, 2, 7, 3, 10, 7, 9, 3, 8, 3, 7, 1, 9, 2, 10, 8, 10, 2, 5, 2, 5, 3, 8, 5, 5, 2, 4, 4, 6, 6, 10, 1, 8, 1, 6, 4, 9, 4, 5, 2, 5, 1, 8, 5, 7, 1, 9, 5, 8, 6, 10, 3, 8, 6, 10, 7, 9, 7, 7, 3, 9, 6, 6, 2, 8, 2, 5, 4, 9, 9, 9, 3, 10, 3, 4, 1, 9, 4, 10, 5, 10, 3, 7, 3, 6, 1, 10, 5, 8, 5, 7, 1, 9, 6, 8, 1, 8, 2, 6, 5, 6, 2, 4, 2, 9, 5, 7, 3, 9, 4, 9, 4, 9, 5, 8, 6, 9, 6, 8, 2, 9, 4, 7, 2, 5, 2, 8, 1, 10, 6, 9, 8, 10, 4, 8, 1, 2, 1, 4, 1, 8, 2, 4, 2, 2, 1, 10, 4, 10, 3, 10, 7, 8, 2, 10, 3, 5, 4, 7, 1, 5, 1, 9, 1, 7, 4, 5, 2, 9, 3, 8, 6, 8, 4, 9, 5, 9, 4, 9, 6, 9, 5, 9, 3, 6, 3, 6, 2, 8, 6, 8, 1, 7, 1, 7, 2, 5, 4, 9, 6, 9, 1, 9, 7, 10, 8, 10, 5, 10, 9, 9, 1, 6, 5, 5, 1, 6, 1, 9, 2, 7, 5, 7, 2, 7, 4, 7, 2, 10, 2, 10, 2, 6, 3, 6, 4, 4, 2, 8, 2, 8, 4, 10, 5, 9, 2, 6, 2, 10, 2, 4, 2, 4, 3, 6, 3, 5, 2, 6, 3, 8, 2, 7, 3, 5, 4, 8, 6, 10, 1, 7, 3, 10, 2, 7, 4, 6, 5, 10, 3, 4, 1, 8, 2, 9, 5, 8, 5, 8, 7, 7, 1, 5, 1, 6, 2, 6, 4, 6, 2, 5, 4, 7, 3, 8, 2, 8, 5, 8, 1, 9, 1, 4, 1, 6, 4, 8, 8, 10, 3, 7, 5, 8, 6, 7, 2, 5, 5, 7, 5, 8, 6, 9, 1, 4, 2, 8, 1, 4, 4, 7, 6, 8, 3, 7, 5, 6, 3, 9, 5, 10, 1, 10, 3, 10, 6, 9, 1, 4, 2, 3, 2, 3, 1, 9, 2, 9, 2, 10, 3, 9, 1, 10, 5, 10, 4, 7, 2, 7, 4, 8, 3, 8, 6, 6, 2, 10, 3, 10, 5, 6, 5, 8, 4, 8, 1, 4, 3, 3, 1, 6, 3, 8, 2, 10, 5, 8, 3, 3, 2, 9, 1, 8, 3, 9, 3, 10, 3, 9, 6, 10, 9, 10, 4, 9, 6, 8, 7, 8, 1, 10, 3, 10, 5, 10, 1, 5, 2, 3, 1, 2, 2, 4, 1, 8, 1, 8, 1, 7, 4, 4, 4, 6, 4, 7, 2, 6, 3, 5, 1, 8, 4, 7, 3, 8, 1, 10, 7, 8, 6, 8, 4, 6, 2, 5, 3, 7, 6, 8, 4, 7, 2, 8, 4, 8, 5, 8, 6, 7, 7, 7, 6, 8, 1, 5, 2, 4, 3, 6, 1, 9, 4, 9, 4, 8, 6, 10, 2, 9, 6, 8, 3, 10, 1, 9, 2, 9, 2, 9, 3, 8, 1, 10, 5, 10, 3, 9, 2, 8, 4, 7, 2, 8, 4, 4, 1, 6, 5, 8, 4, 8, 2, 5, 5, 7, 4, 10, 3, 8, 4, 4, 1, 3, 2, 9, 5, 9, 5, 6, 2, 10, 5, 9, 5, 10, 4, 6, 3, 6, 2, 6, 2, 7, 4, 8, 1, 10, 4, 6, 4, 6, 5, 7, 5, 8, 6, 10, 7, 10, 3, 6, 1, 8, 6, 7, 2, 5, 5, 8, 7, 7, 6, 7, 4, 4, 3, 7, 4, 9, 8, 8, 6, 7, 4, 7, 4, 6, 1, 7, 2, 6, 6, 7, 3, 7, 2, 6, 4, 8, 4, 10, 2, 6, 5, 8, 5, 10, 4, 9, 5, 7, 3, 3, 3, 8, 3, 5, 1, 7, 1, 10, 2, 5, 2, 9, 5, 10, 6, 10, 1, 2, 2, 6, 3, 9, 6, 7, 4, 10, 4, 8, 5, 8, 1, 8, 8, 9, 6, 8, 6, 10, 3, 10, 6, 8, 5, 8, 3, 9, 2, 4, 1, 8, 2, 8, 6, 9, 4, 6, 3, 10, 4, 8, 1, 8, 1, 8, 4, 9, 4, 10, 8, 10, 2, 4, 2, 7, 2, 10, 2, 5, 4, 7, 4, 6, 1, 7, 6, 10, 2, 3, 3, 10, 1, 2, 1, 10, 2, 6, 1, 9, 2, 9, 4, 6, 5, 10, 5, 7, 5, 8, 5, 10, 2, 4, 2, 10, 2, 10, 3, 8, 4, 5, 4, 7, 6, 8, 4, 9, 7, 9, 2, 10, 1, 7, 4, 6, 5, 9, 8, 8, 1, 5, 4, 5, 1, 8, 1, 9, 3, 10, 4, 6, 6, 8, 1, 9, 7, 9, 5, 7, 6, 8, 3, 4, 4, 10, 1, 9, 9, 9, 5, 8, 8, 10, 8, 10, 6, 9, 4, 9, 3, 10, 2, 8, 1, 8, 1, 9, 2, 10, 2, 9, 1, 4, 2, 5, 4, 6, 1, 8, 5, 9, 7, 8, 3, 9, 3, 9, 1, 8, 1, 1, 1, 7, 3, 5, 4, 10, 2, 9, 6, 9, 4, 8, 5, 7, 1, 10, 1, 3, 2, 9, 5, 8, 1, 7, 5, 6, 2, 7, 3, 5, 2, 10, 3, 9, 4, 7, 3, 6, 3, 7, 6, 9, 1, 9, 3, 8, 7, 9, 7, 8, 4, 7, 6, 10, 6, 9, 1, 3, 3, 10, 2, 7, 3, 4, 1, 9, 1, 8, 6, 10, 3, 8, 2, 8, 3, 10, 4, 7, 7, 7, 6, 10, 4, 10, 2, 5, 4, 10, 5, 10, 2, 9, 1, 5, 2, 9, 1, 8, 3, 7, 6, 7, 6, 8, 4, 10, 4, 9, 2, 7, 4, 6, 5, 6, 4, 10, 3, 7, 4, 7, 3, 6, 1, 10, 5, 6, 2, 4, 1, 4, 2, 7, 4, 7, 4, 6, 6, 7, 1, 6, 6, 9, 7, 10, 3, 8, 3, 5, 4, 8, 5, 10, 5, 8, 1, 7, 6, 10, 6, 8, 4, 9, 5, 5, 5, 9, 6, 6, 3, 9, 8, 9, 3, 7, 7, 9, 1, 6, 3, 7, 2, 8, 1, 5, 1, 7, 3, 9, 2, 10, 1, 2, 2, 4, 1, 9, 5, 8, 2, 10, 6, 7, 3, 3, 2, 4, 3, 6, 4, 5, 4, 9, 1, 4, 4, 4, 2, 7, 2, 3, 2, 10, 3, 7, 1, 5, 2, 4, 3, 3, 2, 8, 2, 10, 2, 10, 2, 9, 3, 9, 4, 7, 1, 9, 5, 7, 2, 7, 2, 3, 1, 10, 3, 6, 2, 9, 4, 8, 1, 9, 6, 8, 2, 10, 1, 9, 1, 7, 1, 9, 2, 9, 1, 3, 2, 9, 5, 9, 4, 8, 3, 10, 6, 9, 1, 7, 4, 5, 1, 8, 3, 6, 3, 9, 3, 10, 4, 9, 4, 8, 5, 6, 1, 6, 1, 3, 3, 6, 2, 8, 4, 6, 5, 5, 3, 10, 2, 6, 2, 9, 6, 9, 4, 6, 3, 6, 3, 9, 7, 7, 2, 7, 5, 9, 2, 8, 1, 9, 3, 10, 1, 7, 1, 7, 3, 7, 3, 6, 4, 4, 2, 3, 1, 10, 9, 9, 3, 7, 6, 9, 1, 9, 6, 7, 2, 5, 3, 10, 5, 8, 2, 7, 4, 9, 3, 5, 3, 9, 5, 10, 7, 7, 1, 3, 2, 10, 5, 10, 9, 10, 1, 8, 4, 6, 5, 7, 4, 6, 3, 6, 4, 6, 1, 4, 2, 7, 3, 7, 6, 9, 5, 8, 1, 10, 7, 7, 1, 6, 2, 5, 1, 5, 2, 9, 2, 6, 3, 4, 3, 9, 5, 10, 1, 7, 7, 10, 3, 10, 5, 6, 1, 4, 2, 3, 1, 6, 2, 4, 3, 10, 4, 9, 1, 3, 2, 5, 4, 9, 2, 6, 3, 8, 7, 8, 6, 7, 1, 7, 2, 10, 2, 10, 2, 8, 5, 9, 5, 6, 3, 7, 5, 9, 6, 7, 2, 8, 1, 5, 3, 10, 6, 9, 8, 8, 2, 7, 2, 10, 1, 9, 1, 7, 5, 10, 4, 8, 2, 7, 1, 5, 4, 10, 5, 10, 4, 8, 2, 6, 1, 10, 6, 6, 2, 9, 5, 5, 1, 8, 3, 8, 4, 9, 4, 5, 3, 4, 2, 3, 2, 4, 3, 9, 6, 10, 7, 10, 4, 10, 3, 10, 6, 9, 3, 6, 4, 10, 5, 6, 4, 10, 1, 10, 6, 8, 4, 9, 6, 7, 4, 8, 2, 3, 1, 10, 1, 5, 3, 4, 3, 8, 6, 7, 1, 10, 4, 8, 1, 5, 4, 6, 6, 7, 5, 8, 2, 7, 1, 8, 5, 5, 2, 5, 3, 3, 2, 3, 1, 8, 4, 4, 4, 6, 2, 9, 5, 8, 4, 7, 7, 9, 4, 9, 4, 10, 3, 8, 5, 7, 6, 10, 1, 10, 6, 10, 4, 8, 6, 8, 2, 10, 5, 8, 4, 5, 5, 10, 2, 10, 5, 10, 5, 8, 5, 8, 3, 8, 1, 7, 3, 5, 1, 6, 1, 8, 4, 7, 2, 7, 1, 9, 4, 10, 5, 10, 3, 8, 7, 8, 2, 8, 3, 5, 5, 8, 2, 10, 1, 8, 7, 10, 3, 10, 10, 10, 5, 10, 1, 7, 2, 7, 2, 8, 1, 5, 3, 7, 7, 7, 3, 10, 7, 7, 2, 7, 5, 8, 2, 8, 5, 7, 2, 7, 6, 9, 1, 8, 6, 9, 6, 8, 8, 9, 2, 10, 3, 10, 1, 9, 4, 10, 1, 6, 1, 7, 2, 9, 4, 9, 8, 10, 1, 3, 1, 10, 2, 7, 5, 7, 3, 6, 5, 10, 4, 10, 6, 9, 1, 5, 1, 9, 2, 10, 5, 6, 1, 3, 2, 3, 2, 5, 4, 7, 6, 8, 3, 10, 7, 8, 1, 10, 1, 8, 5, 6, 4, 4, 4, 9, 4, 7, 6, 10, 2, 9, 4, 8, 2, 10, 5, 8, 3, 8, 1, 8, 1, 10, 5, 10, 7, 10, 1, 10, 5, 10, 8, 9, 2, 5, 1, 3, 1, 9, 8, 9, 6, 10, 8, 8, 1, 7, 3, 8, 2, 6, 5, 8, 6, 7, 3, 9, 4, 9, 5, 7, 2, 6, 5, 9, 6, 9, 2, 10, 6, 7, 1, 10, 7, 10, 2, 4, 4, 10, 6, 7, 1, 10, 3, 8, 2, 9, 3, 7, 5, 10, 1, 10, 7, 10, 8, 9, 1, 8, 4, 5, 2, 7, 3, 9, 1, 8, 7, 10, 5, 9, 4, 8, 3, 5, 5, 8, 3, 10, 7, 9, 1, 6, 5, 9, 5, 6, 1, 7, 2, 10, 2, 10, 7, 9, 7, 7, 5, 10, 1, 10, 1, 6, 1, 4, 2, 8, 4, 7, 2, 6, 3, 9, 2, 8, 3, 7, 4, 7, 2, 4, 1, 6, 2, 6, 2, 5, 4, 9, 5, 8, 4, 7, 1, 7, 5, 6, 2, 8, 2, 10, 5, 7, 6, 9, 4, 7, 4, 8, 7, 10, 6, 10, 6, 10, 8, 9, 7, 9, 3, 8, 5, 7, 5, 8, 6, 7, 4, 6, 5, 8, 4, 6, 2, 6, 2, 5, 3, 10, 2, 6, 3, 8, 1, 10, 2, 3, 3, 8, 3, 10, 6, 6, 1, 9, 3, 9, 8, 8, 3, 9, 1, 7, 3, 10, 4, 6, 3, 6, 3, 7, 5, 8, 3, 5, 3, 6, 3, 7, 4, 10, 2, 4, 3, 7, 3, 10, 3, 7, 3, 4, 4, 7, 5, 7, 1, 6, 2, 5, 1, 3, 3, 7, 6, 10, 4, 9, 3, 7, 4, 6, 4, 6, 4, 8, 5, 7, 5, 9, 1, 8, 1, 10, 1, 6, 4, 7, 1, 10, 1, 10, 7, 10, 7, 7, 1, 6, 3, 9, 1, 7, 4, 5, 2, 8, 4, 7, 2, 5, 2, 6, 1, 7, 3, 6, 2, 5, 1, 8, 3, 5, 4, 8, 3, 4, 1, 4, 4, 10, 2, 7, 6, 7, 3, 6, 6, 10, 5, 8, 6, 7, 7, 7, 2, 5, 1, 3, 2, 10, 1, 6, 4, 6, 1, 8, 2, 8, 7, 10, 8, 9, 2, 6, 3, 8, 4, 5, 4, 10, 1, 7, 3, 7, 4, 4, 4, 10, 7, 10, 7, 8, 4, 8, 3, 8, 5, 8, 8, 8, 3, 10, 7, 7, 2, 9, 7, 10, 7, 7, 1, 6, 1, 8, 3, 6, 2, 10, 4, 8, 4, 9, 8, 10, 2, 4, 3, 5, 3, 5, 4, 10, 6, 10, 2, 8, 4, 9, 6, 9, 2, 8, 3, 5, 2, 8, 3, 6, 4, 9, 1, 7, 7, 9, 8, 8, 2, 10, 1, 8, 1, 6, 3, 9, 4, 7, 2, 10, 5, 10, 4, 8, 7, 8, 2, 8, 2, 5, 3, 10, 4, 9, 6, 9, 2, 7, 2, 6, 2, 6, 4, 7, 2, 7, 3, 5, 1, 8, 4, 10, 5, 9, 2, 6, 5, 8, 5, 9, 1, 8, 3, 4, 1, 6, 3, 5, 3, 7, 5, 10, 3, 10, 4, 7, 6, 8, 5, 8, 5, 10, 2, 8, 4, 5, 1, 10, 1, 5, 2, 10, 4, 10, 7, 9, 5, 9, 1, 7, 1, 10, 5, 8, 3, 10, 3, 8, 6, 8, 2, 8, 5, 10, 3, 10, 6, 9, 3, 9, 5, 9, 2, 7, 3, 10, 5, 9, 2, 8, 7, 8, 1, 9, 4, 5, 4, 10, 3, 4, 2, 10, 1, 4, 2, 7, 3, 8, 7, 9, 7, 9, 3, 10, 1, 4, 2, 8, 8, 10, 1, 8, 4, 5, 1, 10, 8, 10, 10, 10, 3, 10, 2, 8, 4, 10, 2, 8, 7, 8, 3, 8, 4, 9, 4, 6, 1, 5, 3, 4, 3, 9, 1, 10, 4, 9, 4, 6, 2, 4, 4, 4, 1, 9, 6, 8, 1, 9, 6, 10, 3, 6, 4, 8, 1, 2, 2, 9, 7, 9, 4, 10, 10, 10, 2, 9, 1, 10, 5, 9, 5, 9, 2, 4, 1, 5, 2, 10, 8, 9, 1, 8, 8, 9, 7, 8, 4, 5, 5, 8, 7, 9, 1, 8, 1, 7, 3, 5, 4, 5, 1, 10, 1, 9, 1, 6, 3, 6, 4, 5, 2, 5, 1, 10, 3, 3, 2, 10, 3, 10, 8, 9, 7, 10, 8, 9, 1, 10, 8, 9, 7, 8, 2, 9, 2, 3, 3, 9, 4, 9, 5, 6, 2, 10, 7, 8, 5, 7, 6, 8, 3, 8, 2, 8, 2, 3, 3, 6, 4, 10, 1, 5, 1, 8, 1, 10, 3, 7, 6, 10, 1, 6, 1, 3, 2, 3, 3, 8, 3, 10, 1, 5, 1, 6, 3, 10, 1, 7, 6, 10, 4, 10, 3, 10, 3, 8, 1, 9, 7, 8, 2, 10, 6, 7, 3, 8, 6, 8, 5, 10, 3, 4, 3, 10, 3, 10, 4, 10, 5, 10, 1, 6, 2, 5, 2, 10, 4, 9, 5, 8, 1, 8, 3, 10, 4, 9, 2, 8, 5, 7, 1, 9, 3, 9, 2, 8, 2, 6, 5, 8, 1, 8, 3, 10, 4, 4, 2, 8, 7, 9, 5, 8, 5, 6, 2, 10, 3, 5, 1, 10, 7, 10, 4, 10, 3, 8, 5, 10, 1, 10, 4, 7, 4, 10, 4, 7, 6, 10, 1, 9, 1, 9, 1, 6, 1, 4, 1, 5, 3, 9, 1, 10, 1, 8, 2, 5, 2, 10, 7, 10, 3, 9, 3, 5, 5, 10, 2, 10, 3, 8, 2, 10, 6, 10, 5, 10, 7, 9, 4, 8, 1, 7, 1, 8, 1, 9, 5, 8, 5, 7, 2, 3, 2, 7, 4, 9, 4, 4, 1, 8, 6, 8, 4, 10, 5, 8, 4, 7, 2, 7, 5, 10, 9, 10, 1, 4, 4, 4, 2, 4, 1, 8, 3, 5, 2, 3, 2, 10, 4, 7, 2, 7, 3, 7, 4, 8, 4, 7, 2, 6, 3, 7, 3, 9, 2, 5, 2, 5, 4, 5, 3, 10, 4, 4, 3, 7, 4, 7, 4, 8, 4, 10, 5, 6, 5, 9, 1, 10, 2, 8, 1, 8, 4, 9, 6, 9, 7, 8, 3, 7, 1, 6, 3, 8, 4, 8, 1, 6, 1, 6, 1, 10, 1, 10, 2, 7, 3, 7, 5, 10, 4, 7, 1, 5, 3, 9, 3, 7, 4, 8, 2, 6, 3, 10, 2, 5, 1, 10, 4, 9, 3, 5, 1, 10, 3, 10, 6, 6, 5, 8, 6, 9, 3, 3, 2, 3, 2, 4, 4, 7, 2, 8, 1, 9, 2, 7, 3, 8, 7, 10, 8, 10, 5, 10, 1, 8, 4, 9, 4, 10, 4, 8, 5, 7, 5, 7, 6, 9, 3, 7, 3, 4, 3, 5, 1, 10, 5, 8, 4, 9, 1, 9, 2, 7, 1, 6, 3, 8, 3, 5, 3, 9, 9, 10, 1, 10, 1, 5, 2, 4, 1, 7, 2, 6, 3, 3, 3, 9, 6, 6, 2, 8, 4, 6, 2, 9, 4, 8, 3, 10, 2, 8, 4, 8, 5, 8, 5, 10, 2, 9, 1, 9, 3, 7, 6, 7, 3, 8, 3, 8, 5, 8, 5, 9, 7, 7, 1, 6, 4, 7, 6, 10, 3, 10, 3, 10, 8, 9, 4, 9, 4, 9, 6, 6, 1, 7, 6, 9, 6, 8, 6, 7, 2, 10, 2, 9, 2, 4, 2, 4, 4, 8, 4, 7, 6, 10, 6, 9, 2, 5, 1, 6, 2, 9, 4, 7, 3, 4, 2, 10, 2, 8, 4, 10, 2, 8, 5, 9, 7, 7, 1, 9, 2, 10, 8, 10, 1, 10, 4, 7, 4, 7, 2, 7, 2, 10, 3, 9, 7, 9, 5, 7, 2, 9, 3, 10, 6, 7, 7, 10, 1, 9, 4, 10, 6, 7, 5, 6, 5, 6, 5, 6, 2, 5, 3, 10, 3, 8, 5, 10, 5, 7, 5, 5, 5, 8, 1, 7, 3, 8, 5, 8, 1, 9, 4, 10, 6, 9, 1, 8, 5, 10, 1, 7, 2, 5, 1, 9, 5, 9, 8, 9, 3, 5, 4, 7, 5, 6, 1, 6, 2, 10, 3, 7, 4, 7, 1, 5, 1, 3, 2, 10, 3, 9, 5, 6, 2, 8, 6, 10, 3, 7, 5, 10, 5, 9, 6, 10, 4, 9, 4, 4, 1, 8, 7, 9, 4, 9, 6, 7, 4, 9, 2, 6, 4, 10, 4, 10, 2, 7, 4, 7, 1, 3, 3, 5, 5, 9, 1, 5, 1, 9, 4, 9, 8, 8, 3, 9, 5, 10, 6, 10, 1, 3, 2, 6, 2, 9, 2, 4, 1, 10, 3, 10, 8, 9, 2, 2, 1, 5, 4, 6, 5, 6, 5, 9, 9, 9, 7, 9, 4, 9, 4, 4, 2, 4, 2, 2, 2, 9, 4, 10, 8, 8, 6, 6, 4, 9, 3, 4, 1, 8, 1, 3, 1, 10, 2, 9, 6, 7, 3, 8, 4, 5, 2, 6, 2, 5, 5, 8, 7, 7, 3, 6, 2, 10, 7, 10, 4, 8, 3, 7, 5, 9, 3, 5, 4, 10, 9, 10, 2, 7, 4, 7, 2, 7, 1, 6, 3, 5, 4, 6, 5, 10, 7, 9, 4, 10, 6, 6, 5, 8, 8, 9, 1, 7, 2, 8, 2, 5, 1, 6, 1, 10, 5, 10, 1, 8, 2, 6, 3, 9, 1, 10, 3, 8, 3, 10, 2, 9, 3, 5, 4, 9, 4, 10, 2, 9, 9, 9, 2, 9, 2, 9, 2, 8, 6, 6, 4, 6, 4, 8, 6, 8, 1, 7, 3, 5, 4, 9, 7, 9, 4, 8, 4, 8, 5, 6, 6, 9, 4, 10, 5, 7, 2, 5, 2, 9, 2, 9, 2, 9, 2, 10, 5, 8, 1, 10, 3, 9, 3, 8, 1, 7, 4, 10, 1, 3, 2, 7, 3, 7, 7, 10, 4, 9, 7, 8, 1, 8, 1, 6, 1, 9, 3, 6, 1, 10, 4, 7, 3, 4, 3, 6, 2, 8, 2, 7, 6, 9, 6, 7, 6, 7, 7, 8, 7, 9, 6, 6, 4, 7, 1, 8, 7, 8, 5, 8, 2, 9, 6, 6, 4, 10, 8, 8, 3, 4, 4, 7, 2, 7, 1, 7, 2, 8, 4, 7, 2, 10, 4, 10, 8, 8, 5, 8, 6, 9, 1, 10, 4, 9, 2, 9, 3, 7, 2, 3, 1, 10, 3, 7, 6, 7, 1, 1, 1, 10, 3, 9, 4, 9, 4, 7, 4, 8, 6, 10, 1, 8, 4, 10, 4, 10, 4, 6, 3, 10, 7, 8, 3, 8, 5, 9, 5, 6, 1, 4, 3, 3, 1, 10, 2, 4, 4, 7, 3, 7, 2, 9, 4, 6, 1, 4, 1, 9, 7, 9, 4, 4, 1, 7, 2, 7, 2, 9, 2, 7, 2, 8, 4, 10, 2, 8, 2, 6, 1, 5, 2, 9, 1, 5, 1, 7, 1, 10, 2, 5, 1, 5, 3, 3, 3, 10, 2, 8, 5, 7, 3, 9, 3, 5, 3, 5, 2, 7, 3, 7, 1, 8, 7, 10, 4, 10, 7, 10, 1, 2, 1, 9, 1, 5, 2, 8, 2, 7, 3, 7, 3, 5, 1, 9, 2, 6, 3, 9, 5, 7, 4, 8, 2, 7, 5, 8, 4, 7, 4, 7, 6, 6, 2, 8, 7, 9, 3, 6, 3, 10, 1, 2, 1, 5, 4, 6, 6, 9, 1, 9, 1, 5, 4, 9, 1, 7, 1, 5, 1, 10, 8, 10, 6, 10, 6, 9, 3, 8, 2, 7, 4, 8, 6, 9, 4, 8, 3, 8, 3, 6, 3, 10, 5, 9, 3, 8, 7, 8, 7, 9, 5, 8, 7, 10, 3, 9, 3, 5, 1, 3, 3, 9, 8, 10, 2, 8, 5, 7, 4, 6, 2, 8, 2, 6, 1, 7, 3, 10, 6, 10, 7, 8, 4, 7, 3, 10, 2, 9, 4, 6, 1, 4, 2, 5, 2, 4, 3, 8, 4, 7, 6, 9, 5, 9, 7, 8, 5, 8, 6, 6, 5, 8, 3, 9, 1, 9, 6, 8, 1, 3, 1, 7, 1, 7, 1, 5, 3, 8, 5, 7, 4, 9, 4, 8, 4, 10, 4, 8, 4, 7, 1, 10, 3, 10, 3, 9, 1, 9, 6, 7, 1, 8, 4, 8, 3, 9, 2, 4, 1, 9, 4, 10, 3, 10, 4, 6, 3, 9, 4, 10, 6, 8, 7, 8, 1, 9, 3, 7, 4, 8, 6, 10, 8, 9, 6, 8, 5, 10, 5, 8, 1, 4, 3, 10, 3, 6, 2, 6, 2, 10, 2, 6, 4, 9, 1, 6, 3, 6, 3, 8, 5, 8, 2, 9, 2, 4, 1, 8, 3, 8, 3, 7, 5, 8, 7, 10, 5, 10, 6, 9, 4, 7, 6, 7, 2, 10, 1, 7, 1, 9, 7, 8, 8, 9, 2, 3, 2, 9, 1, 3, 1, 10, 1, 7, 2, 6, 4, 7, 5, 8, 2, 4, 1, 4, 3, 5, 1, 9, 3, 6, 5, 7, 4, 9, 5, 9, 4, 10, 4, 10, 4, 10, 3, 9, 5, 7, 2, 5, 2, 10, 3, 8, 4, 6, 4, 6, 1, 10, 2, 5, 4, 6, 2, 10, 2, 5, 1, 5, 3, 6, 5, 8, 2, 7, 2, 4, 4, 10, 2, 10, 2, 6, 1, 8, 1, 4, 3, 8, 5, 7, 1, 10, 4, 5, 4, 4, 3, 6, 3, 3, 2, 7, 5, 6, 3, 10, 3, 10, 3, 7, 2, 10, 8, 10, 8, 9, 5, 6, 4, 5, 4, 6, 5, 6, 3, 10, 4, 9, 9, 10, 6, 9, 4, 5, 3, 8, 3, 9, 4, 5, 3, 10, 4, 5, 5, 10, 1, 8, 1, 10, 6, 9, 7, 9, 6, 9, 4, 6, 5, 10, 6, 7, 6, 9, 2, 3, 1, 6, 3, 4, 4, 10, 6, 10, 2, 8, 2, 7, 3, 8, 6, 7, 6, 6, 2, 8, 2, 9, 5, 7, 4, 5, 1, 7, 1, 5, 4, 8, 2, 6, 4, 10, 2, 9, 2, 9, 1, 6, 5, 8, 1, 8, 2, 7, 6, 10, 4, 9, 4, 9, 4, 9, 6, 10, 5, 7, 6, 10, 6, 8, 4, 8, 7, 7, 2, 4, 1, 8, 1, 7, 3, 6, 1, 6, 5, 10, 4, 6, 3, 10, 1, 3, 2, 6, 3, 7, 2, 8, 7, 7, 4, 9, 1, 2, 1, 10, 7, 10, 7, 10, 4, 8, 5, 10, 5, 9, 5, 10, 8, 9, 5, 10, 2, 8, 5, 8, 8, 10, 6, 8, 6, 6, 3, 8, 3, 9, 2, 5, 5, 10, 7, 9, 9, 9, 3, 9, 4, 10, 2, 8, 6, 9, 1, 8, 6, 9, 6, 9, 9, 10, 4, 8, 6, 8, 2, 10, 8, 10, 4, 9, 8, 10, 8, 10, 5, 10, 4, 10, 3, 7, 6, 7, 7, 9, 9, 10, 8, 10, 5, 8, 4, 5, 1, 5, 3, 10, 1, 9, 1, 5, 1, 10, 3, 6, 1, 9, 2, 9, 5, 6, 5, 10, 8, 10, 4, 8, 4, 8, 5, 7, 6, 8, 2, 7, 2, 7, 1, 5, 2, 6, 3, 8, 4, 6, 6, 6, 4, 10, 3, 7, 7, 10, 1, 2, 1, 9, 3, 8, 5, 10, 2, 6, 4, 4, 2, 7, 4, 4, 1, 9, 1, 3, 3, 4, 3, 9, 3, 7, 5, 10, 5, 9, 8, 8, 1, 4, 2, 6, 1, 9, 8, 10, 1, 10, 1, 7, 3, 9, 8, 9, 2, 8, 6, 9, 1, 7, 2, 8, 3, 10, 8, 10, 2, 9, 4, 7, 2, 9, 5, 10, 2, 5, 3, 4, 1, 10, 5, 8, 7, 8, 1, 6, 1, 4, 2, 4, 3, 8, 3, 9, 1, 10, 2, 10, 7, 9, 6, 9, 7, 8, 2, 5, 4, 8, 5, 8, 7, 9, 1, 8, 3, 10, 6, 9, 1, 5, 5, 9, 2, 4, 1, 10, 1, 8, 2, 10, 7, 8, 2, 6, 3, 8, 3, 4, 1, 2, 1, 7, 4, 10, 7, 10, 3, 9, 4, 9, 6, 8, 4, 5, 4, 9, 3, 10, 1, 7, 2, 8, 5, 6, 3, 8, 1, 9, 1, 5, 3, 4, 3, 4, 3, 7, 3, 6, 5, 6, 4, 7, 7, 7, 4, 7, 1, 7, 2, 5, 3, 6, 1, 8, 5, 8, 2, 6, 3, 3, 1, 6, 2, 4, 4, 8, 4, 7, 1, 5, 2, 10, 4, 7, 1, 8, 2, 6, 4, 6, 4, 8, 2, 6, 1, 6, 5, 10, 3, 8, 5, 9, 5, 10, 7, 8, 2, 9, 4, 5, 2, 8, 2, 6, 3, 10, 2, 7, 3, 5, 3, 9, 3, 8, 2, 8, 2, 5, 2, 10, 2, 10, 3, 6, 4, 9, 1, 7, 3, 8, 1, 8, 1, 6, 1, 10, 5, 9, 3, 9, 6, 9, 1, 7, 1, 10, 8, 8, 1, 4, 2, 10, 2, 7, 5, 10, 7, 9, 1, 8, 1, 6, 3, 9, 2, 5, 1, 10, 7, 7, 1, 9, 2, 10, 3, 10, 3, 10, 5, 8, 5, 9, 7, 8, 2, 6, 4, 5, 1, 9, 3, 7, 1, 8, 1, 9, 3, 8, 3, 9, 3, 5, 4, 6, 2, 8, 1, 4, 2, 6, 3, 5, 4, 10, 5, 8, 1, 4, 1, 10, 3, 10, 3, 8, 4, 9, 8, 9, 3, 9, 2, 6, 3, 8, 4, 6, 6, 9, 8, 9, 1, 10, 5, 8, 6, 10, 4, 9, 8, 10, 4, 9, 6, 6, 1, 7, 2, 4, 1, 6, 3, 8, 5, 7, 1, 8, 1, 6, 3, 6, 3, 8, 4, 9, 3, 9, 8, 10, 8, 10, 3, 9, 6, 9, 1, 9, 1, 8, 5, 7, 5, 10, 4, 7, 1, 10, 3, 9, 5, 10, 1, 10, 3, 6, 3, 8, 1, 7, 2, 5, 1, 6, 3, 8, 4, 8, 1, 3, 3, 10, 8, 10, 2, 7, 1, 10, 2, 6, 2, 9, 2, 7, 4, 7, 3, 10, 8, 9, 3, 5, 1, 3, 3, 7, 1, 6, 1, 5, 5, 9, 7, 10, 4, 8, 2, 7, 1, 7, 1, 10, 1, 4, 2, 8, 4, 9, 6, 10, 2, 2, 1, 5, 3, 9, 2, 7, 4, 7, 2, 10, 7, 8, 4, 10, 3, 6, 2, 9, 3, 9, 2, 6, 4, 6, 6, 7, 4, 10, 6, 9, 2, 10, 8, 8, 4, 10, 4, 6, 1, 9, 6, 6, 3, 10, 1, 4, 3, 9, 3, 9, 3, 6, 1, 8, 4, 10, 8, 9, 1, 8, 1, 4, 1, 8, 3, 8, 1, 6, 1, 10, 7, 9, 3, 9, 3, 10, 4, 10, 6, 10, 2, 8, 5, 10, 2, 10, 5, 8, 1, 3, 1, 2, 2, 10, 9, 10, 3, 6, 3, 4, 2, 9, 4, 9, 3, 9, 5, 7, 3, 6, 2, 6, 2, 6, 5, 6, 5, 5, 2, 6, 6, 9, 4, 7, 1, 9, 3, 6, 3, 4, 2, 8, 3, 5, 5, 5, 3, 4, 2, 5, 1, 8, 4, 10, 7, 8, 2, 5, 3, 8, 2, 7, 2, 5, 3, 9, 1, 8, 1, 3, 2, 3, 2, 8, 3, 8, 2, 6, 5, 5, 2, 10, 4, 8, 5, 6, 4, 7, 5, 9, 6, 8, 1, 5, 2, 9, 4, 8, 4, 6, 5, 5, 4, 5, 1, 9, 4, 9, 2, 8, 7, 8, 1, 7, 6, 7, 6, 7, 3, 7, 4, 7, 3, 4, 4, 6, 3, 7, 6, 6, 3, 8, 1, 10, 3, 9, 1, 6, 4, 7, 4, 8, 5, 7, 4, 8, 6, 8, 7, 10, 5, 6, 2, 8, 4, 7, 2, 7, 5, 10, 3, 9, 7, 10, 1, 6, 3, 9, 3, 10, 8, 10, 1, 5, 3, 10, 5, 10, 5, 10, 8, 9, 2, 8, 5, 8, 8, 10, 2, 10, 8, 9, 8, 9, 9, 9, 2, 6, 2, 7, 3, 7, 4, 8, 5, 9, 3, 7, 3, 7, 6, 9, 6, 10, 2, 5, 1, 10, 3, 5, 1, 9, 1, 9, 2, 10, 3, 9, 4, 8, 6, 7, 1, 3, 1, 9, 2, 8, 4, 7, 6, 6, 3, 6, 3, 6, 4, 10, 4, 8, 4, 8, 2, 3, 1, 7, 4, 9, 6, 9, 2, 8, 8, 10, 1, 6, 5, 8, 4, 6, 5, 7, 5, 10, 6, 9, 3, 4, 3, 9, 3, 6, 4, 7, 5, 10, 7, 8, 2, 10, 4, 8, 2, 10, 3, 6, 6, 10, 4, 6, 5, 8, 2, 6, 5, 6, 2, 10, 9, 9, 2, 3, 1, 9, 2, 8, 3, 6, 3, 8, 5, 7, 7, 10, 8, 9, 3, 9, 4, 9, 4, 5, 3, 10, 4, 8, 2, 8, 1, 6, 2, 8, 4, 7, 2, 10, 8, 9, 4, 7, 2, 6, 3, 9, 3, 4, 3, 9, 1, 6, 2, 6, 3, 4, 1, 8, 3, 9, 3, 9, 3, 5, 2, 6, 2, 5, 3, 9, 4, 9, 4, 6, 4, 9, 1, 9, 3, 8, 4, 6, 1, 7, 1, 9, 1, 7, 6, 9, 7, 8, 2, 7, 2, 9, 3, 9, 6, 10, 1, 10, 5, 10, 6, 9, 2, 6, 1, 9, 1, 8, 8, 10, 8, 8, 1, 3, 1, 6, 2, 4, 2, 4, 4, 7, 5, 8, 6, 6, 1, 6, 1, 5, 2, 3, 3, 9, 3, 10, 4, 8, 5, 8, 1, 7, 5, 8, 1, 10, 1, 4, 3, 10, 1, 10, 7, 8, 1, 10, 6, 8, 4, 6, 5, 6, 3, 7, 4, 8, 2, 9, 5, 7, 3, 10, 7, 8, 5, 10, 2, 10, 4, 8, 3, 7, 4, 5, 1, 10, 3, 8, 6, 6, 1, 6, 2, 7, 5, 10, 6, 8, 3, 4, 2, 8, 5, 10, 2, 7, 1, 8, 3, 9, 6, 9, 4, 8, 4, 10, 3, 9, 1, 9, 2, 9, 2, 9, 1, 8, 2, 4, 3, 5, 4, 5, 1, 6, 4, 6, 1, 9, 4, 7, 1, 9, 7, 10, 7, 8, 3, 8, 5, 6, 2, 6, 3, 6, 5, 7, 7, 9, 4, 7, 5, 8, 5, 6, 6, 6, 6, 9, 5, 8, 4, 7, 5, 10, 2, 6, 1, 6, 6, 10, 3, 9, 4, 9, 5, 8, 6, 9, 6, 9, 2, 9, 6, 8, 3, 10, 5, 10, 2, 10, 5, 9, 8, 9, 3, 10, 2, 5, 4, 9, 7, 9, 8, 8, 3, 10, 9, 10, 8, 10, 4, 5, 5, 7, 1, 9, 2, 6, 4, 7, 3, 6, 5, 7, 2, 10, 2, 7, 4, 7, 1, 6, 5, 8, 5, 10, 1, 6, 2, 9, 2, 6, 2, 6, 5, 6, 5, 6, 2, 8, 3, 5, 5, 8, 3, 10, 1, 9, 2, 8, 2, 5, 4, 9, 6, 8, 8, 9, 6, 9, 1, 9, 1, 8, 3, 7, 1, 6, 6, 6, 3, 5, 3, 8, 7, 8, 4, 10, 1, 6, 5, 10, 6, 9, 5, 9, 2, 6, 2, 8, 2, 10, 1, 8, 1, 9, 4, 8, 5, 8, 5, 9, 8, 10, 8, 10, 2, 6, 2, 10, 3, 7, 1, 1, 1, 8, 5, 7, 2, 3, 3, 7, 4, 6, 1, 10, 4, 10, 8, 8, 6, 10, 4, 7, 3, 6, 2, 6, 3, 9, 5, 8, 7, 9, 5, 8, 4, 8, 3, 5, 4, 8, 1, 9, 3, 3, 1, 1, 1, 7, 2, 6, 6, 9, 2, 5, 4, 5, 1, 7, 1, 9, 5, 9, 5, 7, 5, 10, 4, 9, 2, 6, 5, 9, 1, 6, 2, 6, 4, 8, 3, 5, 5, 7, 4, 6, 1, 5, 4, 10, 2, 7, 3, 6, 4, 10, 1, 10, 3, 10, 3, 9, 4, 9, 7, 10, 5, 9, 3, 7, 1, 9, 2, 7, 2, 10, 3, 6, 1, 5, 2, 10, 5, 8, 7, 9, 2, 4, 3, 8, 7, 7, 7, 7, 2, 5, 3, 8, 7, 8, 3, 6, 1, 9, 6, 7, 1, 6, 1, 2, 2, 9, 4, 7, 5, 6, 5, 10, 5, 10, 5, 10, 7, 9, 5, 6, 4, 9, 8, 8, 1, 6, 1, 9, 1, 9, 3, 4, 2, 6, 4, 9, 5, 7, 1, 6, 3, 9, 3, 4, 1, 10, 9, 10, 9, 10, 5, 9, 2, 6, 3, 3, 1, 6, 2, 5, 5, 7, 5, 7, 6, 7, 2, 8, 1, 10, 2, 10, 5, 6, 5, 5, 5, 10, 2, 9, 1, 10, 8, 9, 8, 10, 4, 8, 5, 8, 1, 8, 1, 4, 3, 3, 3, 3, 2, 7, 1, 9, 5, 7, 2, 5, 1, 3, 1, 6, 2, 9, 6, 10, 1, 9, 2, 10, 2, 3, 3, 7, 6, 8, 5, 7, 4, 7, 5, 9, 5, 7, 4, 8, 3, 6, 4, 7, 4, 6, 6, 9, 4, 9, 4, 9, 6, 7, 3, 9, 2, 7, 5, 10, 1, 10, 8, 10, 1, 7, 7, 7, 2, 9, 2, 9, 2, 10, 3, 8, 6, 8, 5, 8, 2, 5, 2, 5, 2, 5, 5, 7, 5, 9, 1, 7, 2, 9, 6, 7, 1, 10, 2, 5, 1, 10, 3, 6, 5, 10, 2, 9, 3, 5, 3, 8, 3, 4, 2, 10, 6, 8, 5, 7, 6, 9, 1, 7, 3, 6, 5, 10, 6, 9, 2, 8, 3, 5, 1, 9, 5, 9, 4, 8, 5, 8, 1, 7, 3, 9, 2, 9, 1, 8, 8, 10, 6, 9, 3, 9, 2, 10, 1, 8, 1, 5, 3, 4, 1, 4, 3, 8, 1, 6, 2, 4, 4, 8, 2, 10, 3, 9, 3, 9, 6, 6, 5, 9, 6, 8, 2, 5, 4, 6, 3, 7, 5, 10, 5, 10, 1, 8, 1, 5, 2, 7, 3, 9, 2, 9, 2, 5, 2, 10, 5, 8, 6, 10, 2, 10, 9, 9, 2, 8, 1, 7, 3, 9, 7, 10, 5, 7, 1, 6, 2, 6, 2, 3, 1, 2, 1, 9, 6, 7, 1, 8, 1, 7, 4, 9, 1, 6, 2, 7, 4, 9, 8, 8, 5, 6, 1, 3, 1, 2, 2, 5, 3, 9, 1, 9, 4, 8, 6, 7, 1, 7, 5, 7, 3, 8, 3, 9, 4, 4, 4, 8, 3, 9, 4, 10, 5, 9, 4, 7, 2, 6, 3, 5, 1, 10, 5, 6, 3, 6, 1, 8, 2, 9, 8, 10, 5, 7, 6, 9, 4, 8, 3, 10, 3, 8, 3, 10, 3, 7, 1, 7, 3, 10, 4, 10, 1, 6, 5, 8, 1, 6, 5, 6, 5, 10, 1, 8, 2, 8, 1, 9, 3, 8, 4, 6, 6, 7, 3, 9, 5, 7, 3, 5, 4, 8, 7, 9, 7, 9, 1, 10, 3, 10, 3, 10, 4, 9, 2, 8, 7, 8, 4, 7, 6, 6, 1, 7, 3, 8, 1, 8, 4, 7, 2, 9, 3, 10, 2, 2, 1, 8, 2, 9, 5, 9, 6, 10, 7, 8, 2, 10, 6, 9, 5, 9, 6, 10, 3, 6, 5, 8, 7, 8, 6, 10, 2, 10, 3, 8, 4, 7, 4, 6, 4, 5, 2, 5, 2, 7, 5, 6, 1, 4, 3, 10, 4, 4, 1, 7, 3, 9, 4, 5, 2, 6, 2, 10, 2, 8, 2, 8, 1, 9, 7, 7, 4, 8, 7, 7, 3, 6, 6, 9, 6, 7, 4, 9, 4, 10, 2, 9, 7, 9, 1, 9, 4, 10, 5, 9, 6, 7, 6, 6, 2, 6, 3, 8, 6, 10, 4, 10, 2, 6, 4, 10, 3, 10, 4, 8, 2, 9, 7, 7, 2, 7, 4, 8, 6, 9, 7, 10, 2, 4, 4, 8, 2, 10, 5, 7, 3, 7, 2, 7, 2, 9, 2, 8, 3, 7, 5, 9, 3, 7, 1, 10, 2, 10, 6, 7, 2, 5, 4, 8, 4, 7, 3, 8, 3, 10, 1, 9, 5, 6, 2, 10, 1, 6, 4, 10, 5, 8, 2, 5, 4, 10, 1, 8, 2, 10, 3, 4, 3, 8, 8, 10, 2, 10, 1, 3, 1, 2, 2, 10, 2, 3, 3, 9, 2, 3, 1, 10, 6, 8, 5, 10, 1, 8, 2, 9, 2, 6, 5, 9, 5, 8, 1, 4, 4, 6, 6, 8, 1, 8, 8, 9, 1, 10, 2, 10, 1, 5, 3, 8, 7, 8, 5, 10, 3, 9, 6, 8, 3, 7, 1, 9, 1, 9, 2, 10, 5, 10, 8, 10, 8, 10, 8, 10, 9, 10, 2, 5, 3, 10, 3, 10, 4, 8, 3, 8, 5, 9, 4, 7, 2, 9, 3, 9, 5, 10, 5, 8, 1, 8, 3, 10, 8, 9, 5, 8, 2, 10, 3, 6, 2, 9, 6, 9, 4, 5, 2, 8, 2, 5, 3, 9, 8, 8, 1, 10, 7, 8, 1, 8, 3, 9, 4, 7, 6, 7, 2, 10, 1, 9, 5, 10, 10, 10, 7, 9, 4, 4, 3, 8, 2, 9, 5, 8, 5, 6, 4, 8, 2, 4, 3, 5, 3, 8, 3, 4, 2, 7, 4, 4, 4, 8, 2, 8, 1, 6, 1, 10, 5, 10, 5, 7, 4, 6, 5, 9, 1, 8, 1, 6, 1, 5, 5, 10, 1, 8, 2, 8, 5, 8, 6, 10, 1, 6, 5, 6, 2, 5, 5, 9, 8, 9, 2, 8, 1, 6, 1, 7, 5, 10, 3, 6, 1, 3, 3, 5, 2, 7, 3, 7, 7, 9, 4, 10, 6, 7, 2, 10, 5, 7, 3, 10, 2, 5, 4, 10, 2, 6, 3, 10, 10, 10, 1, 5, 2, 4, 2, 4, 1, 8, 6, 7, 4, 7, 5, 10, 6, 8, 3, 6, 5, 9, 3, 9, 3, 4, 2, 10, 2, 9, 8, 9, 1, 9, 4, 10, 3, 7, 1, 7, 1, 5, 3, 9, 1, 7, 2, 7, 1, 5, 3, 10, 5, 5, 1, 9, 5, 9, 1, 4, 1, 7, 1, 2, 1, 6, 2, 7, 2, 4, 3, 10, 2, 6, 1, 6, 4, 6, 2, 6, 1, 5, 1, 9, 5, 8, 1, 7, 3, 3, 1, 4, 3, 4, 3, 10, 3, 10, 2, 7, 1, 4, 2, 5, 4, 8, 7, 10, 2, 9, 4, 9, 3, 6, 5, 10, 3, 6, 3, 5, 2, 7, 1, 2, 1, 3, 2, 10, 3, 10, 5, 9, 3, 10, 2, 5, 1, 9, 4, 8, 3, 8, 2, 10, 3, 4, 3, 6, 3, 7, 2, 5, 3, 5, 3, 9, 6, 7, 2, 10, 2, 7, 3, 9, 3, 10, 2, 8, 1, 6, 4, 4, 3, 9, 2, 4, 4, 7, 4, 6, 4, 10, 3, 6, 4, 6, 1, 4, 1, 10, 2, 8, 3, 6, 4, 4, 4, 7, 2, 8, 3, 4, 1, 6, 2, 6, 3, 5, 4, 7, 1, 10, 4, 7, 3, 5, 2, 7, 1, 10, 1, 7, 3, 10, 1, 9, 4, 7, 6, 10, 8, 10, 2, 8, 1, 4, 2, 8, 2, 3, 3, 6, 1, 4, 4, 9, 6, 8, 5, 7, 1, 6, 4, 10, 5, 6, 2, 3, 1, 5, 1, 6, 1, 8, 3, 8, 6, 7, 5, 7, 1, 4, 3, 10, 2, 10, 2, 10, 4, 5, 3, 10, 3, 4, 1, 6, 1, 6, 1, 10, 10, 10, 10, 10, 1, 8, 4, 5, 2, 4, 3, 9, 8, 9, 4, 8, 3, 7, 5, 7, 1, 6, 2, 6, 4, 9, 4, 8, 1, 10, 5, 10, 1, 3, 2, 6, 4, 6, 4, 5, 1, 8, 3, 9, 1, 4, 3, 10, 3, 10, 3, 8, 1, 6, 6, 8, 1, 8, 4, 10, 2, 8, 8, 10, 1, 9, 8, 9, 2, 3, 1, 10, 5, 10, 2, 10, 7, 9, 4, 7, 1, 10, 2, 10, 4, 5, 1, 8, 2, 10, 2, 5, 4, 6, 4, 7, 4, 5, 1, 10, 2, 10, 2, 9, 1, 10, 3, 9, 5, 8, 1, 7, 1, 7, 3, 8, 4, 7, 1, 3, 2, 6, 2, 7, 2, 7, 1, 5, 3, 6, 4, 5, 2, 10, 2, 8, 4, 5, 3, 3, 1, 9, 2, 9, 3, 7, 5, 10, 6, 8, 1, 10, 3, 8, 4, 6, 4, 10, 3, 7, 3, 7, 2, 9, 3, 8, 3, 9, 2, 7, 5, 9, 2, 10, 6, 8, 4, 7, 4, 7, 6, 6, 4, 9, 5, 6, 5, 9, 5, 5, 1, 10, 4, 10, 4, 10, 5, 7, 6, 7, 6, 9, 4, 8, 7, 7, 2, 7, 3, 6, 5, 8, 1, 10, 2, 10, 7, 10, 9, 9, 1, 10, 3, 10, 7, 9, 2, 7, 7, 10, 3, 7, 7, 10, 7, 10, 6, 10, 2, 3, 3, 8, 6, 8, 2, 4, 3, 10, 3, 3, 1, 8, 3, 7, 4, 9, 6, 9, 6, 7, 2, 3, 2, 8, 6, 8, 2, 6, 4, 9, 1, 5, 3, 10, 4, 9, 4, 7, 5, 5, 4, 9, 3, 10, 4, 9, 3, 10, 4, 7, 1, 6, 1, 10, 1, 10, 3, 6, 1, 10, 1, 10, 3, 8, 1, 4, 2, 6, 4, 8, 4, 7, 3, 8, 4, 8, 5, 7, 1, 10, 4, 9, 4, 6, 1, 4, 1, 8, 4, 7, 2, 6, 3, 4, 4, 10, 8, 10, 7, 10, 4, 7, 1, 5, 3, 6, 5, 5, 1, 3, 2, 8, 2, 9, 4, 9, 5, 9, 3, 4, 3, 5, 2, 8, 4, 5, 4, 9, 3, 10, 2, 6, 5, 9, 3, 9, 1, 6, 1, 6, 4, 5, 4, 8, 4, 7, 1, 5, 3, 10, 7, 7, 6, 7, 3, 10, 3, 6, 1, 4, 1, 2, 2, 3, 2, 7, 3, 10, 3, 6, 2, 8, 1, 4, 2, 6, 1, 7, 3, 9, 6, 8, 3, 5, 3, 5, 3, 9, 4, 10, 7, 10, 9, 10, 4, 6, 6, 10, 5, 8, 1, 6, 3, 5, 1, 3, 2, 10, 1, 9, 1, 4, 3, 9, 6, 9, 5, 8, 4, 10, 3, 8, 3, 5, 1, 10, 3, 9, 4, 6, 4, 8, 5, 9, 7, 9, 7, 10, 9, 10, 5, 10, 4, 7, 1, 10, 3, 10, 4, 7, 1, 4, 2, 9, 6, 8, 1, 10, 6, 9, 7, 8, 2, 9, 1, 7, 2, 9, 3, 6, 3, 5, 3, 9, 2, 5, 3, 9, 3, 7, 1, 9, 1, 7, 6, 8, 1, 7, 1, 6, 1, 10, 3, 9, 1, 8, 5, 8, 4, 8, 6, 10, 6, 7, 5, 7, 3, 10, 4, 8, 1, 8, 8, 10, 3, 5, 2, 5, 3, 5, 1, 10, 3, 4, 3, 4, 4, 4, 2, 8, 7, 8, 3, 7, 6, 6, 1, 9, 1, 9, 3, 7, 1, 10, 6, 8, 3, 10, 6, 6, 2, 8, 5, 6, 3, 10, 5, 7, 6, 7, 4, 6, 6, 10, 3, 8, 1, 10, 7, 10, 6, 9, 7, 9, 4, 5, 2, 7, 5, 8, 8, 9, 5, 7, 2, 10, 5, 8, 4, 10, 2, 4, 4, 8, 3, 6, 2, 6, 5, 7, 5, 9, 2, 8, 1, 6, 5, 9, 3, 6, 5, 6, 5, 8, 3, 7, 6, 10, 8, 10, 3, 10, 5, 6, 2, 9, 3, 5, 1, 7, 3, 8, 5, 8, 4, 10, 5, 9, 3, 8, 1, 6, 3, 3, 3, 8, 4, 9, 1, 8, 1, 7, 4, 8, 4, 6, 4, 9, 5, 7, 3, 9, 4, 8, 4, 5, 3, 4, 1, 5, 3, 10, 1, 9, 2, 5, 4, 10, 1, 5, 2, 9, 5, 6, 1, 5, 5, 9, 2, 6, 3, 3, 1, 5, 2, 10, 2, 10, 4, 8, 4, 7, 6, 8, 6, 10, 6, 9, 7, 10, 6, 7, 1, 6, 4, 7, 4, 8, 2, 10, 3, 8, 5, 8, 2, 10, 5, 7, 3, 8, 6, 10, 7, 10, 1, 4, 1, 4, 1, 9, 2, 4, 1, 10, 3, 8, 2, 5, 2, 8, 1, 7, 3, 8, 4, 10, 1, 3, 1, 3, 2, 10, 3, 8, 6, 8, 3, 3, 2, 7, 5, 7, 1, 6, 2, 8, 6, 10, 5, 8, 8, 10, 1, 6, 1, 8, 2, 3, 1, 1, 1, 10, 3, 5, 1, 6, 1, 7, 3, 8, 2, 9, 5, 8, 6, 8, 3, 6, 6, 10, 7, 8, 2, 7, 2, 6, 5, 10, 8, 9, 7, 8, 4, 7, 1, 9, 6, 6, 5, 10, 2, 6, 3, 5, 2, 5, 3, 10, 2, 9, 1, 7, 4, 6, 5, 7, 2, 9, 1, 6, 1, 8, 3, 10, 5, 5, 3, 9, 6, 9, 3, 6, 2, 10, 2, 9, 8, 9, 7, 8, 1, 8, 1, 9, 1, 9, 1, 6, 5, 6, 3, 6, 2, 10, 4, 9, 2, 8, 2, 8, 8, 8, 7, 10, 5, 7, 2, 2, 2, 9, 3, 6, 4, 5, 1, 7, 1, 8, 5, 8, 2, 6, 2, 10, 6, 10, 3, 7, 2, 10, 1, 10, 5, 9, 4, 7, 4, 10, 6, 8, 2, 9, 7, 10, 2, 6, 5, 5, 2, 8, 4, 10, 2, 10, 2, 10, 8, 10, 9, 10, 2, 5, 4, 8, 3, 7, 1, 9, 6, 9, 1, 9, 3, 9, 3, 6, 2, 4, 1, 7, 4, 10, 3, 7, 3, 7, 3, 7, 7, 8, 4, 4, 2, 8, 3, 10, 7, 7, 1, 3, 1, 4, 3, 9, 1, 3, 2, 8, 6, 9, 2, 9, 3, 9, 1, 9, 4, 6, 1, 5, 4, 7, 2, 8, 4, 5, 2, 6, 2, 9, 4, 5, 4, 6, 5, 7, 7, 8, 7, 10, 3, 9, 3, 8, 5, 7, 1, 5, 4, 6, 3, 4, 3, 8, 1, 5, 4, 9, 5, 10, 5, 9, 5, 10, 7, 10, 6, 9, 5, 8, 6, 8, 2, 8, 3, 4, 2, 10, 2, 9, 4, 10, 7, 10, 6, 7, 2, 8, 2, 4, 2, 9, 2, 4, 3, 8, 2, 7, 3, 9, 7, 10, 2, 10, 9, 10, 7, 10, 1, 8, 6, 8, 2, 10, 4, 8, 1, 7, 4, 6, 4, 7, 2, 5, 3, 9, 1, 7, 2, 9, 4, 7, 1, 6, 3, 10, 2, 9, 5, 9, 7, 9, 4, 9, 1, 8, 3, 8, 3, 10, 8, 9, 3, 7, 1, 7, 3, 6, 4, 8, 2, 9, 6, 9, 2, 8, 1, 8, 2, 6, 1, 9, 1, 7, 6, 10, 1, 9, 7, 8, 3, 10, 7, 8, 1, 10, 4, 7, 4, 8, 4, 7, 6, 9, 5, 9, 8, 9, 1, 6, 2, 7, 2, 7, 1, 9, 4, 7, 1, 7, 6, 7, 2, 2, 2, 10, 1, 8, 2, 10, 5, 6, 5, 10, 4, 10, 3, 7, 1, 7, 5, 6, 4, 8, 4, 7, 2, 8, 8, 9, 1, 6, 4, 8, 4, 5, 4, 9, 5, 10, 5, 7, 2, 5, 4, 10, 1, 8, 5, 5, 4, 4, 2, 7, 3, 9, 2, 8, 3, 10, 8, 10, 6, 10, 3, 9, 8, 8, 4, 9, 6, 8, 2, 4, 4, 7, 3, 10, 1, 8, 7, 10, 3, 9, 7, 9, 4, 7, 1, 3, 2, 5, 3, 4, 2, 3, 3, 7, 3, 6, 5, 10, 3, 7, 6, 8, 2, 9, 4, 5, 1, 10, 8, 10, 1, 8, 2, 10, 3, 10, 1, 4, 1, 4, 2, 10, 4, 9, 4, 9, 2, 9, 7, 10, 8, 10, 2, 8, 3, 8, 2, 6, 3, 6, 1, 7, 2, 3, 2, 8, 5, 8, 2, 3, 2, 9, 7, 10, 2, 10, 3, 6, 1, 9, 5, 10, 3, 7, 3, 9, 4, 5, 3, 4, 3, 10, 5, 7, 3, 4, 4, 6, 4, 5, 3, 5, 5, 9, 4, 4, 3, 7, 3, 10, 6, 6, 4, 6, 1, 3, 2, 10, 7, 9, 5, 10, 4, 6, 2, 9, 6, 10, 4, 7, 3, 5, 3, 4, 1, 9, 6, 10, 6, 9, 4, 10, 1, 7, 4, 6, 5, 9, 6, 7, 2, 3, 1, 4, 2, 10, 1, 8, 4, 10, 2, 7, 5, 7, 6, 10, 1, 5, 2, 6, 2, 10, 5, 9, 5, 6, 6, 9, 1, 8, 1, 3, 2, 8, 7, 10, 1, 8, 6, 8, 7, 9, 1, 9, 3, 6, 3, 9, 7, 10, 2, 9, 4, 10, 6, 8, 1, 10, 3, 7, 5, 10, 1, 8, 1, 5, 4, 7, 3, 5, 2, 4, 3, 4, 2, 6, 1, 10, 1, 5, 4, 5, 2, 10, 2, 10, 4, 10, 6, 8, 3, 8, 4, 9, 3, 9, 4, 10, 7, 8, 5, 7, 6, 10, 4, 8, 4, 5, 1, 8, 3, 10, 5, 7, 6, 10, 9, 10, 1, 5, 2, 8, 1, 3, 1, 10, 5, 9, 4, 8, 1, 7, 1, 7, 1, 2, 1, 2, 2, 10, 6, 9, 3, 6, 1, 8, 3, 6, 3, 5, 3, 4, 1, 3, 1, 8, 4, 9, 6, 7, 1, 7, 2, 3, 3, 6, 1, 8, 4, 8, 1, 6, 4, 6, 5, 10, 6, 6, 1, 4, 1, 4, 3, 8, 8, 10, 3, 8, 7, 10, 4, 10, 6, 7, 2, 6, 2, 10, 1, 8, 7, 9, 2, 9, 7, 10, 8, 10, 1, 9, 3, 5, 1, 6, 2, 8, 5, 7, 1, 6, 1, 8, 2, 10, 9, 10, 6, 10, 5, 8, 6, 8, 3, 7, 7, 8, 1, 3, 2, 5, 2, 5, 1, 10, 4, 10, 4, 10, 1, 7, 2, 8, 4, 9, 7, 10, 1, 6, 2, 2, 2, 10, 2, 9, 2, 10, 2, 9, 1, 4, 1, 5, 2, 6, 4, 7, 1, 6, 3, 5, 4, 8, 7, 9, 1, 9, 5, 9, 2, 6, 5, 6, 4, 6, 4, 10, 2, 9, 6, 8, 1, 8, 3, 7, 5, 8, 1, 10, 6, 7, 1, 9, 1, 7, 1, 5, 2, 10, 4, 6, 1, 9, 1, 8, 2, 8, 5, 10, 5, 10, 1, 10, 4, 7, 4, 9, 3, 8, 3, 3, 1, 9, 3, 10, 6, 8, 1, 7, 1, 8, 1, 4, 2, 8, 4, 8, 1, 10, 1, 8, 2, 6, 1, 5, 4, 8, 6, 9, 1, 10, 1, 6, 3, 7, 5, 9, 6, 9, 5, 10, 2, 8, 8, 9, 5, 9, 6, 7, 7, 9, 6, 9, 6, 8, 1, 7, 3, 8, 6, 10, 4, 7, 4, 4, 4, 10, 3, 8, 3, 7, 1, 6, 2, 9, 6, 7, 1, 10, 2, 5, 2, 5, 1, 8, 8, 8, 4, 9, 3, 7, 1, 9, 3, 8, 3, 9, 4, 9, 8, 8, 1, 8, 5, 7, 2, 7, 4, 7, 1, 9, 8, 9, 3, 7, 7, 7, 4, 5, 2, 9, 2, 10, 7, 9, 6, 10, 4, 7, 2, 10, 5, 6, 2, 4, 4, 9, 3, 8, 4, 9, 3, 10, 3, 9, 4, 8, 1, 5, 3, 7, 3, 5, 4, 9, 1, 9, 7, 8, 3, 7, 1, 6, 1, 9, 4, 10, 1, 9, 1, 9, 6, 9, 5, 8, 1, 10, 1, 7, 1, 10, 3, 7, 2, 3, 1, 9, 2, 6, 5, 9, 6, 9, 4, 8, 6, 10, 3, 10, 2, 3, 2, 10, 4, 7, 7, 7, 3, 8, 5, 7, 2, 6, 5, 5, 2, 6, 5, 6, 3, 5, 1, 5, 4, 6, 4, 8, 2, 7, 4, 8, 4, 8, 1, 8, 7, 7, 1, 7, 2, 3, 3, 7, 3, 8, 3, 10, 7, 10, 9, 10, 2, 4, 1, 7, 3, 3, 1, 5, 5, 6, 3, 7, 3, 5, 3, 7, 5, 5, 4, 10, 1, 8, 3, 4, 1, 3, 2, 6, 5, 10, 4, 6, 6, 10, 3, 10, 5, 9, 7, 9, 6, 10, 3, 9, 9, 10, 1, 2, 2, 9, 4, 10, 6, 7, 2, 6, 6, 10, 1, 3, 3, 6, 4, 7, 5, 6, 1, 8, 5, 9, 5, 10, 1, 5, 2, 6, 2, 6, 1, 3, 2, 8, 3, 6, 1, 5, 1, 8, 3, 10, 2, 6, 1, 9, 4, 10, 8, 10, 7, 10, 8, 9, 1, 9, 4, 10, 2, 10, 5, 9, 5, 8, 3, 10, 1, 6, 2, 7, 2, 7, 1, 10, 3, 6, 4, 9, 5, 9, 1, 5, 1, 10, 3, 7, 3, 7, 2, 9, 5, 9, 3, 9, 5, 8, 4, 10, 1, 7, 1, 9, 5, 10, 8, 9, 1, 9, 1, 3, 2, 5, 2, 10, 10, 10, 2, 10, 3, 8, 5, 9, 6, 9, 6, 7, 3, 5, 1, 8, 4, 6, 5, 8, 7, 9, 8, 10, 1, 6, 2, 4, 2, 7, 5, 5, 1, 7, 4, 6, 2, 5, 2, 5, 5, 8, 1, 10, 6, 9, 4, 7, 3, 10, 2, 8, 8, 10, 2, 5, 2, 4, 1, 9, 2, 8, 2, 6, 3, 7, 4, 6, 5, 6, 6, 8, 2, 9, 4, 10, 2, 6, 1, 5, 2, 10, 4, 10, 1, 10, 4, 8, 3, 10, 2, 9, 5, 8, 3, 6, 3, 5, 4, 5, 3, 10, 7, 8, 3, 7, 5, 9, 2, 7, 4, 10, 2, 7, 4, 5, 4, 10, 1, 7, 1, 7, 2, 7, 2, 7, 5, 8, 6, 8, 5, 8, 1, 5, 2, 7, 4, 8, 6, 10, 1, 5, 2, 9, 2, 10, 5, 8, 2, 10, 1, 7, 3, 6, 2, 9, 6, 8, 6, 8, 5, 10, 4, 9, 9, 10, 1, 10, 6, 10, 6, 8, 6, 9, 7, 8, 7, 8, 1, 7, 3, 10, 4, 10, 3, 9, 2, 7, 3, 9, 6, 9, 4, 7, 1, 5, 1, 9, 3, 7, 1, 8, 2, 7, 2, 5, 3, 9, 5, 5, 5, 10, 2, 9, 1, 7, 1, 5, 2, 7, 6, 8, 1, 2, 1, 8, 1, 7, 4, 5, 3, 8, 3, 7, 3, 7, 1, 3, 2, 4, 2, 10, 5, 9, 2, 9, 1, 8, 5, 10, 1, 8, 1, 6, 1, 6, 5, 7, 2, 3, 1, 10, 2, 3, 3, 9, 7, 7, 4, 9, 1, 10, 5, 9, 6, 8, 3, 9, 6, 9, 3, 7, 3, 9, 1, 10, 1, 8, 6, 9, 6, 10, 2, 10, 7, 7, 2, 7, 4, 10, 5, 7, 5, 10, 3, 9, 1, 9, 2, 9, 3, 9, 3, 10, 7, 10, 4, 10, 8, 9, 1, 4, 3, 6, 2, 10, 5, 7, 6, 9, 4, 9, 2, 6, 5, 7, 6, 8, 2, 8, 1, 4, 2, 10, 6, 6, 4, 8, 2, 5, 4, 8, 1, 8, 5, 7, 2, 5, 5, 8, 5, 10, 1, 5, 1, 6, 1, 8, 5, 10, 6, 7, 2, 6, 2, 3, 1, 6, 3, 10, 5, 7, 1, 8, 3, 5, 2, 5, 1, 5, 4, 6, 5, 8, 1, 5, 1, 9, 3, 10, 4, 6, 2, 6, 3, 10, 6, 9, 1, 2, 2, 8, 3, 6, 5, 10, 7, 9, 1, 7, 1, 7, 7, 9, 3, 8, 6, 9, 5, 6, 4, 5, 2, 10, 3, 9, 3, 10, 1, 4, 1, 8, 2, 8, 1, 3, 2, 9, 4, 8, 2, 9, 2, 8, 4, 10, 2, 7, 6, 9, 6, 9, 2, 5, 3, 10, 2, 10, 7, 10, 7, 9, 4, 6, 6, 10, 7, 7, 4, 9, 5, 8, 2, 6, 2, 7, 1, 9, 6, 7, 7, 7, 1, 6, 1, 5, 3, 10, 1, 8, 2, 5, 4, 5, 2, 10, 2, 5, 2, 10, 6, 10, 5, 8, 6, 10, 5, 6, 5, 6, 4, 5, 2, 4, 3, 7, 1, 8, 4, 6, 4, 9, 5, 8, 1, 9, 3, 10, 5, 10, 2, 4, 2, 8, 1, 9, 1, 9, 4, 9, 5, 8, 2, 8, 2, 5, 1, 10, 3, 6, 1, 9, 4, 4, 3, 8, 1, 8, 2, 5, 4, 10, 5, 8, 3, 10, 2, 8, 3, 5, 2, 5, 3, 10, 2, 4, 1, 3, 3, 9, 2, 7, 3, 4, 4, 6, 2, 4, 1, 8, 4, 9, 2, 8, 6, 8, 5, 7, 1, 4, 2, 8, 2, 9, 1, 10, 5, 7, 4, 6, 5, 6, 5, 7, 2, 7, 4, 9, 3, 9, 3, 9, 2, 9, 5, 6, 4, 10, 6, 10, 7, 10, 5, 5, 1, 6, 5, 10, 1, 9, 2, 6, 4, 10, 3, 9, 3, 10, 2, 4, 4, 9, 7, 9, 6, 8, 5, 8, 3, 8, 3, 8, 4, 9, 6, 10, 3, 6, 1, 6, 1, 4, 3, 10, 7, 7, 1, 2, 1, 6, 6, 6, 1, 5, 2, 8, 4, 9, 4, 10, 2, 10, 4, 9, 1, 7, 3, 10, 4, 8, 5, 8, 7, 10, 8, 9, 3, 10, 2, 10, 7, 9, 2, 10, 4, 10, 5, 9, 2, 7, 3, 7, 2, 9, 2, 7, 3, 7, 3, 8, 6, 8, 4, 10, 3, 8, 2, 7, 6, 10, 8, 8, 6, 7, 4, 9, 4, 7, 4, 9, 4, 9, 4, 9, 1, 9, 5, 7, 6, 9, 1, 8, 7, 9, 3, 8, 2, 8, 2, 6, 1, 2, 2, 9, 5, 8, 8, 10, 8, 8, 4, 6, 1, 10, 3, 8, 1, 7, 1, 5, 2, 9, 3, 8, 7, 10, 3, 10, 1, 4, 4, 9, 3, 7, 3, 9, 6, 7, 3, 7, 6, 10, 2, 4, 3, 9, 5, 8, 6, 7, 6, 7, 4, 9, 6, 9, 2, 2, 1, 6, 2, 6, 1, 9, 8, 9, 3, 3, 1, 8, 6, 7, 5, 10, 3, 6, 4, 9, 6, 9, 2, 4, 3, 10, 1, 3, 2, 9, 1, 7, 2, 10, 7, 10, 5, 10, 1, 6, 3, 5, 2, 4, 4, 10, 3, 10, 3, 5, 2, 7, 4, 8, 1, 8, 2, 4, 1, 9, 4, 7, 7, 10, 8, 8, 3, 9, 4, 5, 5, 7, 3, 7, 6, 10, 1, 5, 2, 5, 4, 4, 4, 10, 4, 8, 4, 10, 3, 5, 3, 3, 2, 7, 1, 9, 1, 10, 1, 8, 3, 10, 1, 8, 7, 7, 5, 6, 1, 8, 1, 8, 1, 8, 7, 8, 1, 5, 4, 8, 3, 10, 5, 6, 2, 7, 3, 6, 2, 7, 2, 7, 2, 3, 3, 9, 4, 7, 5, 10, 3, 7, 2, 8, 3, 9, 1, 5, 3, 3, 1, 6, 3, 7, 1, 4, 1, 8, 1, 7, 6, 10, 3, 9, 3, 6, 1, 6, 3, 7, 4, 5, 1, 5, 3, 9, 4, 9, 6, 9, 1, 5, 5, 8, 4, 9, 6, 9, 1, 5, 3, 6, 1, 9, 5, 7, 7, 9, 5, 8, 3, 8, 3, 9, 4, 9, 1, 8, 2, 7, 6, 10, 5, 8, 2, 6, 5, 9, 1, 7, 5, 8, 1, 9, 6, 10, 8, 10, 1, 9, 3, 6, 3, 10, 6, 10, 4, 6, 3, 8, 3, 10, 3, 9, 1, 8, 3, 9, 6, 7, 2, 5, 2, 9, 4, 5, 2, 9, 5, 6, 1, 9, 1, 10, 3, 10, 6, 7, 1, 8, 7, 9, 1, 7, 4, 10, 6, 9, 1, 10, 5, 8, 6, 6, 2, 7, 4, 5, 2, 9, 8, 8, 4, 7, 5, 9, 3, 8, 2, 9, 3, 10, 7, 8, 7, 8, 1, 8, 3, 7, 6, 10, 2, 6, 6, 7, 1, 6, 4, 10, 7, 10, 6, 7, 5, 6, 1, 10, 5, 9, 3, 5, 2, 6, 2, 5, 4, 9, 3, 10, 6, 10, 9, 10, 1, 6, 1, 5, 4, 7, 6, 10, 1, 7, 6, 9, 2, 7, 2, 8, 1, 2, 2, 9, 1, 10, 2, 10, 6, 10, 2, 4, 1, 9, 5, 10, 5, 10, 3, 6, 2, 9, 5, 7, 5, 8, 1, 5, 4, 5, 1, 3, 1, 3, 2, 7, 1, 6, 4, 5, 2, 10, 4, 8, 1, 10, 5, 6, 2, 6, 1, 2, 1, 8, 1, 6, 2, 6, 1, 9, 2, 7, 5, 9, 4, 5, 4, 9, 3, 6, 2, 8, 4, 8, 3, 8, 5, 6, 2, 8, 1, 9, 8, 9, 1, 6, 1, 7, 4, 8, 2, 10, 2, 7, 4, 6, 2, 5, 1, 7, 2, 6, 2, 3, 1, 7, 2, 7, 2, 6, 1, 10, 2, 6, 5, 10, 2, 7, 3, 7, 5, 6, 3, 5, 3, 4, 3, 9, 1, 3, 2, 6, 4, 9, 2, 9, 2, 3, 2, 8, 2, 4, 2, 9, 4, 9, 1, 10, 2, 4, 1, 7, 2, 7, 2, 3, 1, 8, 8, 8, 2, 5, 3, 7, 3, 9, 8, 10, 7, 10, 4, 8, 5, 7, 2, 6, 5, 9, 5, 8, 2, 4, 3, 7, 2, 5, 1, 5, 4, 8, 7, 9, 8, 9, 8, 9, 7, 8, 2, 3, 2, 6, 1, 5, 3, 10, 9, 10, 5, 5, 5, 8, 5, 9, 5, 8, 5, 8, 1, 3, 1, 4, 2, 4, 2, 7, 1, 4, 3, 5, 4, 10, 3, 7, 2, 9, 3, 9, 6, 9, 9, 10, 2, 9, 8, 8, 4, 7, 1, 3, 1, 8, 6, 9, 2, 6, 6, 8, 7, 8, 3, 5, 1, 6, 3, 10, 6, 10, 6, 9, 3, 9, 3, 7, 1, 2, 2, 5, 2, 5, 4, 4, 3, 9, 4, 8, 7, 8, 3, 4, 3, 9, 4, 7, 5, 9, 8, 9, 1, 9, 4, 10, 4, 10, 3, 10, 2, 6, 4, 5, 2, 10, 9, 10, 3, 9, 8, 9, 3, 10, 8, 10, 9, 10, 4, 9, 5, 6, 6, 8, 3, 8, 6, 7, 2, 9, 3, 7, 7, 7, 1, 2, 1, 4, 1, 3, 2, 10, 7, 9, 6, 10, 3, 9, 4, 7, 1, 7, 6, 9, 2, 9, 1, 5, 3, 9, 5, 5, 4, 6, 1, 8, 5, 6, 4, 6, 6, 7, 3, 7, 3, 8, 1, 6, 1, 8, 3, 8, 5, 5, 4, 9, 5, 8, 3, 7, 1, 9, 1, 7, 2, 9, 3, 6, 1, 10, 4, 7, 5, 9, 6, 8, 6, 10, 7, 10, 6, 9, 2, 7, 2, 7, 2, 9, 3, 4, 2, 4, 1, 9, 4, 7, 3, 9, 5, 8, 5, 10, 4, 9, 2, 4, 2, 8, 3, 6, 5, 10, 8, 8, 3, 7, 2, 5, 5, 9, 1, 8, 7, 9, 2, 5, 3, 8, 3, 7, 1, 8, 1, 8, 3, 10, 1, 4, 1, 8, 7, 10, 1, 10, 9, 10, 3, 8, 3, 9, 4, 4, 2, 7, 3, 4, 2, 4, 3, 7, 4, 6, 4, 8, 2, 5, 2, 6, 1, 4, 4, 8, 2, 5, 1, 5, 3, 4, 3, 5, 1, 5, 4, 7, 5, 9, 5, 9, 6, 9, 3, 8, 5, 7, 1, 10, 3, 8, 2, 5, 2, 4, 2, 9, 5, 9, 1, 4, 1, 7, 6, 6, 3, 6, 1, 5, 1, 9, 5, 9, 1, 7, 2, 7, 4, 10, 7, 9, 5, 6, 1, 3, 2, 10, 1, 9, 3, 7, 3, 7, 6, 9, 6, 8, 1, 4, 1, 9, 1, 6, 4, 6, 5, 10, 5, 10, 6, 10, 1, 6, 5, 5, 3, 4, 2, 6, 4, 9, 4, 6, 3, 5, 4, 7, 4, 10, 1, 4, 2, 7, 5, 5, 1, 8, 3, 5, 3, 9, 2, 9, 8, 9, 1, 5, 3, 8, 4, 6, 6, 10, 7, 10, 5, 9, 5, 6, 3, 8, 2, 6, 4, 10, 9, 10, 2, 10, 2, 7, 3, 8, 4, 6, 5, 8, 6, 9, 4, 9, 2, 7, 5, 9, 2, 8, 3, 9, 6, 8, 1, 10, 2, 8, 2, 7, 4, 8, 1, 10, 6, 8, 1, 9, 4, 8, 1, 6, 4, 5, 5, 9, 7, 8, 4, 7, 5, 9, 5, 5, 3, 10, 2, 7, 4, 5, 3, 9, 2, 5, 4, 9, 2, 4, 3, 10, 1, 7, 6, 7, 4, 8, 4, 5, 3, 9, 2, 3, 2, 10, 2, 8, 3, 8, 6, 8, 2, 6, 2, 5, 2, 8, 3, 4, 2, 7, 4, 9, 2, 4, 1, 9, 3, 7, 4, 7, 4, 7, 6, 10, 2, 8, 3, 10, 4, 7, 3, 6, 2, 10, 4, 9, 5, 6, 4, 8, 2, 7, 1, 4, 1, 2, 2, 8, 4, 5, 2, 10, 6, 9, 5, 8, 2, 8, 5, 9, 5, 8, 1, 9, 3, 6, 3, 8, 1, 8, 1, 5, 5, 8, 4, 9, 1, 8, 3, 10, 9, 10, 3, 10, 2, 9, 1, 8, 2, 4, 1, 8, 4, 7, 1, 7, 5, 8, 3, 6, 2, 6, 6, 8, 7, 10, 6, 10, 8, 8, 6, 7, 3, 7, 5, 8, 7, 7, 1, 4, 1, 9, 5, 6, 3, 8, 2, 5, 2, 3, 1, 6, 3, 7, 2, 6, 5, 8, 1, 2, 1, 1, 1, 8, 3, 6, 4, 6, 2, 6, 2, 8, 2, 4, 2, 5, 1, 10, 7, 10, 5, 6, 2, 5, 2, 7, 3, 6, 1, 9, 1, 6, 1, 10, 4, 7, 1, 9, 5, 6, 1, 5, 4, 9, 5, 6, 4, 6, 2, 6, 5, 9, 8, 10, 2, 9, 1, 10, 3, 5, 1, 10, 5, 10, 2, 9, 5, 7, 1, 4, 3, 9, 5, 7, 4, 7, 3, 10, 2, 8, 1, 8, 6, 9, 4, 10, 2, 8, 6, 7, 6, 7, 2, 9, 2, 7, 1, 5, 3, 10, 8, 10, 6, 8, 2, 5, 3, 4, 1, 10, 6, 10, 6, 6, 5, 8, 7, 9, 6, 10, 7, 8, 2, 7, 1, 5, 5, 9, 1, 4, 2, 6, 3, 4, 4, 8, 7, 7, 3, 8, 3, 9, 5, 9, 5, 6, 1, 3, 1, 2, 1, 6, 4, 10, 8, 8, 2, 10, 9, 10, 1, 6, 3, 5, 4, 9, 6, 10, 4, 7, 2, 6, 6, 8, 6, 7, 5, 7, 3, 6, 3, 9, 4, 7, 6, 7, 4, 4, 3, 7, 5, 10, 1, 10, 2, 6, 1, 10, 6, 8, 3, 5, 4, 4, 1, 8, 3, 4, 2, 5, 4, 10, 5, 9, 6, 10, 7, 7, 1, 5, 1, 6, 2, 9, 4, 9, 6, 10, 4, 7, 2, 7, 5, 10, 8, 10, 9, 10, 7, 9, 3, 9, 4, 10, 1, 8, 4, 8, 2, 10, 9, 10, 1, 6, 4, 10, 1, 9, 5, 6, 5, 7, 1, 5, 2, 3, 2, 3, 1, 4, 2, 2, 2, 6, 2, 10, 5, 9, 3, 6, 4, 7, 3, 10, 5, 9, 4, 8, 7, 8, 2, 4, 4, 10, 4, 7, 3, 6, 3, 6, 1, 6, 3, 4, 4, 7, 1, 7, 2, 7, 7, 7, 2, 6, 5, 10, 3, 9, 2, 8, 2, 6, 3, 4, 3, 4, 4, 9, 4, 6, 1, 4, 1, 10, 8, 10, 10, 10, 7, 8, 1, 4, 2, 8, 3, 8, 1, 9, 1, 8, 3, 8, 3, 9, 4, 9, 8, 10, 2, 9, 7, 10, 1, 3, 1, 1, 1, 8, 3, 9, 4, 10, 4, 5, 1, 3, 1, 6, 3, 10, 7, 10, 3, 10, 6, 7, 1, 5, 3, 7, 4, 8, 1, 7, 2, 9, 3, 5, 2, 10, 3, 9, 2, 3, 2, 10, 5, 10, 8, 9, 4, 10, 6, 7, 2, 7, 5, 5, 2, 8, 1, 9, 7, 10, 6, 7, 2, 5, 3, 4, 2, 9, 1, 8, 6, 9, 5, 7, 5, 10, 1, 8, 3, 8, 1, 9, 1, 7, 1, 4, 1, 10, 2, 9, 4, 9, 4, 8, 4, 6, 1, 9, 4, 6, 3, 9, 5, 10, 1, 8, 7, 7, 4, 8, 3, 5, 4, 4, 2, 4, 3, 10, 8, 9, 1, 5, 3, 10, 2, 4, 2, 9, 2, 8, 1, 6, 2, 8, 1, 8, 4, 5, 4, 4, 1, 5, 4, 7, 7, 7, 1, 6, 2, 9, 3, 7, 2, 8, 2, 2, 2, 10, 5, 7, 1, 7, 3, 3, 3, 8, 5, 9, 5, 9, 7, 8, 6, 10, 1, 5, 3, 4, 3, 4, 2, 9, 7, 9, 8, 9, 4, 9, 8, 8, 5, 10, 1, 9, 2, 9, 6, 9, 2, 7, 5, 9, 6, 8, 2, 8, 1, 3, 2, 5, 4, 10, 1, 8, 2, 9, 8, 9, 3, 10, 2, 6, 3, 8, 5, 9, 2, 10, 7, 9, 8, 9, 3, 4, 4, 4, 4, 8, 3, 4, 4, 8, 7, 8, 3, 6, 2, 4, 1, 9, 5, 10, 6, 8, 5, 7, 1, 5, 3, 4, 2, 10, 3, 10, 3, 4, 2, 6, 3, 9, 4, 8, 6, 7, 6, 10, 7, 9, 1, 4, 2, 8, 6, 7, 4, 6, 5, 10, 7, 10, 7, 8, 7, 9, 4, 6, 4, 6, 1, 6, 1, 10, 1, 10, 4, 9, 4, 5, 1, 9, 1, 7, 2, 7, 4, 10, 4, 9, 1, 7, 4, 10, 7, 9, 8, 8, 5, 8, 3, 8, 1, 7, 3, 3, 1, 9, 2, 5, 1, 5, 2, 10, 2, 10, 2, 6, 4, 4, 4, 7, 1, 6, 4, 10, 6, 10, 7, 8, 2, 7, 3, 5, 2, 5, 5, 7, 3, 7, 3, 6, 1, 9, 1, 5, 4, 9, 3, 10, 5, 9, 2, 6, 1, 6, 4, 7, 5, 8, 5, 10, 6, 7, 1, 10, 2, 8, 6, 6, 5, 10, 7, 9, 6, 8, 7, 8, 5, 7, 5, 6, 5, 6, 2, 7, 1, 8, 1, 8, 6, 7, 3, 7, 5, 7, 4, 8, 3, 10, 2, 3, 3, 8, 5, 6, 3, 5, 1, 2, 1, 6, 4, 5, 2, 4, 2, 3, 2, 9, 8, 10, 3, 4, 1, 9, 6, 10, 6, 7, 3, 4, 2, 6, 3, 10, 1, 9, 3, 10, 6, 10, 7, 9, 3, 8, 7, 9, 7, 7, 3, 5, 4, 9, 2, 5, 2, 8, 3, 10, 7, 9, 1, 10, 7, 10, 4, 7, 6, 10, 5, 6, 3, 9, 4, 9, 2, 9, 4, 8, 7, 8, 7, 8, 4, 7, 3, 9, 3, 10, 1, 3, 2, 5, 2, 3, 2, 10, 3, 10, 4, 8, 3, 3, 2, 7, 3, 9, 3, 8, 3, 4, 1, 8, 5, 10, 7, 9, 2, 5, 4, 8, 5, 8, 6, 6, 4, 9, 1, 5, 2, 9, 7, 9, 8, 9, 8, 8, 2, 6, 3, 10, 2, 9, 2, 10, 5, 6, 5, 7, 4, 9, 2, 5, 1, 10, 9, 10, 2, 8, 1, 5, 4, 5, 3, 9, 5, 9, 1, 10, 3, 6, 3, 6, 6, 9, 1, 2, 2, 10, 5, 6, 4, 8, 7, 8, 3, 8, 1, 10, 8, 10, 3, 9, 6, 10, 6, 9, 4, 9, 6, 9, 3, 7, 2, 6, 1, 9, 5, 10, 4, 10, 2, 8, 2, 5, 4, 5, 2, 8, 7, 9, 7, 10, 5, 8, 7, 9, 1, 10, 3, 7, 6, 7, 6, 10, 2, 7, 1, 3, 3, 5, 4, 5, 4, 7, 2, 6, 2, 6, 5, 10, 1, 8, 6, 10, 8, 8, 2, 5, 2, 5, 4, 9, 2, 5, 2, 8, 2, 7, 6, 6, 2, 10, 4, 10, 4, 9, 7, 9, 5, 10, 6, 8, 4, 7, 3, 6, 3, 7, 3, 10, 3, 6, 5, 5, 3, 9, 7, 8, 7, 7, 1, 5, 2, 10, 4, 9, 3, 8, 6, 10, 1, 9, 2, 5, 1, 7, 2, 6, 4, 9, 1, 10, 1, 9, 4, 9, 7, 10, 3, 9, 6, 9, 1, 2, 1, 6, 3, 10, 3, 9, 6, 9, 9, 9, 3, 10, 4, 7, 3, 8, 2, 9, 2, 7, 4, 9, 4, 9, 3, 6, 3, 5, 3, 6, 4, 8, 2, 7, 2, 5, 3, 6, 1, 6, 1, 4, 3, 7, 1, 9, 1, 7, 3, 7, 2, 9, 5, 10, 5, 7, 1, 9, 1, 5, 5, 10, 1, 7, 6, 10, 5, 7, 1, 2, 1, 6, 4, 8, 1, 3, 1, 6, 2, 4, 3, 3, 1, 8, 6, 7, 3, 7, 6, 9, 6, 9, 4, 8, 4, 9, 3, 4, 1, 8, 3, 8, 7, 8, 3, 8, 2, 8, 2, 9, 5, 7, 5, 6, 1, 10, 2, 4, 4, 8, 6, 6, 3, 6, 2, 9, 3, 5, 3, 4, 1, 4, 4, 10, 8, 9, 2, 8, 1, 7, 6, 6, 3, 4, 1, 7, 2, 10, 1, 8, 6, 10, 2, 10, 5, 9, 6, 9, 8, 8, 1, 9, 2, 7, 6, 7, 1, 8, 5, 6, 1, 9, 5, 7, 3, 7, 1, 5, 2, 9, 6, 7, 4, 7, 4, 6, 5, 8, 2, 10, 4, 7, 2, 10, 2, 7, 5, 6, 1, 5, 1, 5, 3, 6, 3, 9, 6, 10, 1, 4, 2, 10, 4, 10, 1, 3, 2, 4, 3, 3, 1, 4, 1, 4, 4, 10, 7, 10, 5, 8, 7, 7, 1, 8, 3, 7, 2, 10, 3, 7, 2, 10, 6, 8, 4, 8, 6, 10, 6, 8, 6, 8, 1, 10, 2, 7, 2, 9, 3, 3, 2, 9, 5, 7, 7, 10, 1, 10, 5, 8, 1, 3, 1, 4, 2, 8, 7, 10, 5, 10, 6, 10, 3, 8, 1, 6, 1, 3, 1, 10, 8, 10, 7, 9, 3, 9, 7, 7, 3, 10, 3, 5, 3, 10, 4, 10, 2, 5, 4, 9, 5, 7, 3, 9, 6, 7, 7, 9, 8, 10, 2, 6, 4, 9, 7, 9, 2, 7, 2, 6, 2, 8, 2, 6, 4, 10, 9, 10, 2, 7, 1, 4, 2, 7, 2, 9, 1, 8, 2, 8, 2, 8, 4, 8, 4, 8, 5, 7, 1, 10, 5, 8, 1, 6, 3, 7, 2, 9, 4, 7, 3, 5, 5, 10, 4, 6, 2, 4, 2, 4, 3, 9, 4, 10, 7, 8, 4, 7, 4, 5, 4, 7, 5, 8, 2, 7, 4, 6, 2, 10, 5, 6, 4, 7, 1, 4, 2, 8, 2, 8, 2, 6, 1, 6, 3, 5, 1, 9, 4, 8, 2, 7, 3, 9, 2, 10, 4, 9, 3, 7, 5, 6, 3, 10, 1, 9, 4, 10, 4, 6, 1, 2, 2, 6, 3, 5, 4, 5, 2, 7, 5, 8, 6, 7, 3, 5, 2, 6, 3, 9, 1, 6, 4, 6, 3, 10, 3, 9, 2, 6, 3, 5, 2, 6, 4, 6, 3, 9, 1, 6, 1, 7, 2, 5, 2, 4, 2, 2, 2, 7, 5, 8, 1, 10, 1, 5, 1, 3, 1, 6, 2, 2, 1, 9, 6, 7, 7, 10, 4, 6, 5, 9, 1, 10, 4, 10, 4, 7, 4, 8, 5, 7, 6, 8, 5, 8, 3, 4, 3, 8, 1, 6, 4, 5, 4, 10, 1, 6, 3, 6, 4, 10, 5, 9, 8, 9, 1, 8, 5, 9, 6, 8, 4, 6, 4, 10, 5, 7, 6, 7, 1, 8, 1, 9, 4, 8, 5, 10, 5, 7, 3, 9, 7, 9, 4, 10, 2, 8, 4, 7, 2, 6, 2, 8, 2, 9, 5, 7, 1, 7, 1, 9, 2, 3, 1, 8, 2, 5, 3, 4, 3, 8, 2, 8, 3, 5, 1, 6, 1, 6, 1, 10, 5, 10, 4, 7, 1, 2, 1, 6, 5, 6, 5, 6, 3, 9, 5, 10, 4, 7, 4, 6, 1, 9, 6, 9, 1, 5, 2, 3, 3, 10, 5, 6, 4, 10, 2, 10, 7, 10, 9, 10, 7, 10, 6, 8, 1, 7, 1, 4, 3, 8, 7, 7, 7, 9, 3, 7, 2, 6, 6, 8, 7, 8, 8, 8, 2, 6, 5, 5, 2, 6, 1, 6, 4, 9, 1, 8, 4, 6, 3, 8, 2, 9, 3, 9, 2, 10, 6, 9, 8, 8, 5, 8, 1, 9, 4, 9, 6, 7, 3, 5, 1, 10, 5, 10, 8, 10, 6, 9, 2, 10, 4, 6, 1, 5, 5, 8, 1, 8, 4, 9, 6, 10, 3, 7, 3, 5, 2, 8, 3, 8, 3, 8, 5, 5, 2, 7, 1, 7, 1, 5, 1, 5, 4, 5, 4, 10, 2, 7, 4, 10, 1, 9, 3, 3, 1, 4, 3, 7, 1, 6, 2, 3, 1, 6, 2, 10, 6, 7, 1, 7, 4, 6, 1, 2, 1, 10, 3, 7, 1, 4, 1, 7, 4, 7, 3, 5, 2, 8, 2, 8, 4, 6, 6, 6, 3, 8, 4, 7, 1, 10, 5, 7, 1, 10, 2, 6, 2, 10, 3, 9, 6, 8, 3, 4, 2, 5, 4, 9, 1, 10, 4, 6, 3, 9, 2, 10, 6, 10, 2, 9, 4, 7, 3, 5, 1, 6, 4, 9, 2, 10, 2, 10, 4, 6, 3, 4, 1, 7, 5, 6, 4, 9, 1, 9, 3, 8, 7, 9, 7, 8, 7, 7, 4, 5, 1, 9, 5, 10, 6, 8, 1, 8, 3, 8, 4, 7, 2, 6, 4, 9, 1, 9, 8, 9, 2, 8, 1, 7, 2, 8, 3, 8, 2, 6, 2, 4, 1, 8, 1, 5, 1, 9, 4, 9, 3, 10, 3, 9, 8, 10, 9, 9, 2, 8, 5, 7, 1, 8, 3, 7, 1, 7, 5, 6, 6, 10, 2, 6, 4, 10, 5, 10, 8, 8, 4, 10, 2, 9, 1, 4, 3, 4, 4, 8, 4, 10, 3, 5, 1, 10, 2, 9, 3, 3, 3, 10, 3, 10, 5, 8, 7, 9, 3, 8, 1, 2, 1, 7, 1, 9, 4, 8, 3, 6, 1, 7, 7, 8, 7, 10, 9, 10, 2, 6, 1, 4, 2, 7, 3, 8, 2, 5, 2, 3, 2, 7, 1, 10, 5, 8, 1, 5, 1, 7, 2, 2, 2, 7, 4, 5, 1, 4, 1, 7, 2, 7, 1, 4, 1, 4, 3, 10, 1, 10, 4, 5, 2, 4, 3, 10, 1, 6, 4, 9, 6, 8, 1, 5, 1, 5, 2, 7, 3, 9, 3, 8, 6, 8, 2, 8, 5, 8, 7, 7, 4, 7, 3, 10, 4, 7, 1, 10, 5, 9, 1, 7, 2, 2, 2, 3, 2, 2, 1, 5, 4, 8, 1, 5, 2, 9, 2, 10, 3, 10, 7, 9, 4, 9, 2, 9, 1, 6, 1, 8, 4, 8, 7, 10, 9, 10, 2, 6, 2, 5, 4, 8, 1, 7, 3, 5, 2, 3, 2, 7, 3, 8, 1, 9, 5, 8, 3, 6, 5, 7, 4, 6, 3, 10, 1, 5, 1, 8, 3, 7, 4, 10, 4, 8, 4, 5, 5, 5, 2, 9, 5, 9, 3, 9, 4, 6, 5, 10, 9, 10, 7, 8, 3, 5, 1, 9, 4, 10, 5, 6, 1, 2, 1, 5, 1, 4, 2, 7, 5, 8, 1, 8, 1, 5, 4, 6, 5, 9, 5, 9, 6, 7, 4, 6, 1, 10, 3, 9, 7, 10, 2, 9, 3, 5, 2, 10, 1, 7, 3, 10, 5, 10, 7, 10, 6, 9, 6, 8, 2, 3, 2, 7, 1, 10, 4, 5, 3, 6, 3, 5, 1, 4, 1, 10, 1, 9, 4, 9, 5, 5, 2, 3, 1, 7, 1, 9, 1, 10, 10, 10, 2, 7, 1, 5, 4, 4, 1, 9, 2, 10, 7, 9, 1, 5, 4, 7, 2, 10, 3, 4, 2, 4, 2, 9, 3, 9, 5, 8, 3, 8, 1, 8, 5, 6, 1, 7, 4, 7, 3, 6, 2, 8, 5, 7, 3, 10, 1, 8, 3, 5, 2, 5, 2, 4, 3, 7, 3, 10, 4, 9, 2, 7, 6, 6, 2, 8, 2, 9, 8, 10, 3, 8, 4, 9, 2, 10, 5, 9, 1, 9, 2, 9, 2, 7, 5, 8, 6, 9, 7, 7, 5, 6, 3, 8, 2, 8, 6, 9, 7, 7, 2, 7, 7, 8, 5, 6, 6, 9, 2, 8, 6, 6, 4, 5, 1, 3, 1, 5, 1, 2, 1, 6, 3, 5, 3, 5, 4, 10, 1, 8, 2, 10, 1, 9, 5, 10, 1, 10, 4, 7, 3, 5, 2, 8, 4, 9, 3, 7, 6, 7, 1, 8, 3, 9, 7, 9, 6, 8, 3, 5, 4, 9, 3, 4, 3, 4, 1, 10, 1, 9, 4, 4, 3, 8, 4, 7, 1, 8, 3, 10, 6, 9, 5, 6, 5, 9, 5, 10, 1, 9, 7, 10, 7, 8, 3, 7, 6, 9, 1, 3, 1, 9, 2, 6, 4, 9, 1, 7, 4, 10, 3, 8, 5, 5, 2, 5, 3, 4, 3, 9, 2, 6, 4, 9, 4, 8, 4, 4, 1, 7, 4, 7, 6, 10, 1, 10, 1, 9, 3, 7, 7, 9, 3, 4, 3, 9, 4, 10, 3, 7, 2, 7, 3, 5, 5, 10, 1, 10, 4, 6, 2, 10, 4, 5, 1, 5, 1, 3, 1, 6, 1, 6, 3, 5, 1, 2, 1, 10, 2, 8, 4, 7, 7, 9, 8, 9, 4, 8, 6, 8, 1, 7, 2, 7, 1, 9, 8, 10, 4, 7, 3, 7, 3, 4, 3, 7, 4, 8, 2, 4, 1, 5, 3, 8, 1, 9, 8, 10, 2, 7, 6, 9, 6, 9, 5, 7, 4, 5, 4, 8, 4, 6, 2, 5, 3, 8, 5, 9, 6, 7, 4, 5, 5, 9, 5, 8, 3, 9, 3, 4, 1, 3, 2, 7, 4, 6, 5, 8, 2, 5, 4, 7, 4, 7, 1, 9, 1, 9, 8, 9, 9, 9, 1, 4, 1, 8, 3, 5, 2, 4, 1, 5, 3, 4, 3, 7, 2, 4, 2, 7, 2, 9, 6, 10, 9, 10, 9, 9, 4, 8, 6, 8, 1, 9, 2, 7, 6, 9, 7, 7, 2, 7, 2, 4, 1, 3, 1, 8, 5, 8, 7, 8, 4, 5, 3, 7, 4, 5, 4, 9, 3, 9, 7, 8, 7, 9, 7, 7, 4, 8, 3, 9, 5, 6, 3, 10, 5, 9, 1, 8, 7, 8, 4, 5, 2, 5, 2, 10, 4, 8, 5, 6, 4, 8, 5, 5, 5, 9, 1, 4, 2, 4, 3, 8, 1, 7, 3, 4, 3, 8, 1, 9, 8, 9, 6, 9, 7, 8, 5, 7, 5, 7, 6, 10, 4, 7, 4, 9, 6, 7, 4, 6, 1, 8, 4, 4, 4, 8, 5, 7, 1, 7, 3, 5, 1, 6, 3, 10, 2, 6, 2, 6, 2, 5, 2, 8, 7, 8, 5, 10, 8, 9, 7, 8, 3, 8, 4, 8, 2, 6, 5, 9, 5, 9, 7, 9, 4, 10, 2, 6, 5, 6, 3, 5, 2, 7, 6, 9, 4, 6, 6, 10, 6, 9, 4, 9, 3, 7, 4, 9, 7, 9, 8, 10, 4, 10, 2, 7, 1, 10, 4, 9, 5, 9, 7, 9, 2, 6, 4, 8, 8, 9, 7, 8, 7, 9, 8, 10, 3, 6, 5, 7, 6, 8, 3, 7, 5, 9, 6, 9, 8, 8, 2, 4, 1, 6, 3, 10, 5, 7, 3, 9, 6, 10, 8, 8, 3, 9, 5, 9, 1, 5, 4, 9, 3, 5, 4, 9, 4, 10, 8, 10, 6, 8, 3, 9, 2, 5, 1, 10, 1, 5, 4, 9, 1, 10, 4, 7, 4, 10, 6, 8, 2, 9, 1, 4, 1, 4, 2, 2, 1, 9, 3, 8, 1, 4, 4, 9, 1, 7, 1, 6, 1, 5, 1, 10, 3, 7, 4, 9, 2, 6, 4, 10, 7, 9, 8, 10, 4, 6, 2, 6, 2, 8, 4, 6, 1, 2, 1, 6, 5, 9, 2, 5, 2, 7, 3, 6, 2, 7, 1, 6, 3, 7, 1, 10, 6, 10, 3, 10, 3, 10, 2, 7, 4, 10, 4, 7, 4, 9, 2, 6, 2, 9, 5, 6, 4, 10, 4, 9, 5, 6, 1, 10, 2, 3, 2, 9, 2, 8, 6, 6, 2, 7, 1, 9, 3, 10, 8, 8, 1, 5, 1, 8, 6, 7, 1, 9, 1, 5, 2, 6, 3, 4, 3, 5, 3, 9, 3, 8, 8, 8, 4, 7, 1, 9, 2, 7, 4, 9, 1, 7, 6, 10, 6, 7, 3, 9, 5, 7, 1, 6, 1, 10, 5, 8, 3, 6, 1, 10, 3, 6, 4, 9, 6, 9, 1, 10, 3, 8, 6, 8, 6, 7, 6, 7, 3, 10, 4, 5, 2, 3, 2, 2, 2, 6, 2, 9, 2, 10, 3, 10, 1, 7, 1, 10, 7, 10, 3, 10, 6, 9, 3, 9, 4, 6, 6, 6, 2, 10, 5, 7, 1, 7, 5, 10, 4, 9, 4, 9, 2, 8, 4, 7, 1, 4, 1, 9, 7, 7, 1, 10, 6, 8, 2, 6, 3, 5, 1, 7, 2, 4, 1, 3, 3, 7, 5, 8, 4, 10, 7, 9, 8, 10, 1, 9, 1, 4, 2, 4, 3, 3, 3, 9, 6, 7, 3, 8, 2, 10, 4, 9, 6, 8, 3, 6, 1, 4, 3, 6, 4, 10, 9, 10, 3, 9, 4, 7, 4, 10, 1, 8, 2, 8, 2, 7, 2, 4, 1, 10, 2, 9, 1, 10, 3, 10, 8, 9, 1, 10, 1, 8, 8, 10, 4, 8, 7, 9, 8, 9, 5, 9, 6, 9, 6, 8, 1, 10, 2, 10, 3, 4, 3, 9, 6, 10, 6, 9, 3, 9, 9, 10, 2, 4, 3, 9, 1, 8, 2, 10, 6, 10, 1, 5, 2, 8, 5, 9, 5, 9, 9, 10, 9, 10, 3, 8, 2, 6, 5, 7, 2, 7, 3, 4, 2, 7, 2, 10, 6, 9, 6, 7, 3, 5, 2, 8, 3, 6, 3, 8, 4, 6, 2, 6, 6, 10, 6, 9, 2, 9, 2, 7, 4, 7, 2, 8, 2, 7, 6, 8, 3, 5, 3, 6, 3, 10, 1, 3, 3, 9, 4, 8, 2, 3, 1, 10, 5, 9, 4, 7, 4, 5, 2, 9, 2, 7, 6, 8, 6, 8, 4, 7, 2, 10, 7, 9, 3, 8, 1, 7, 5, 8, 5, 7, 1, 5, 4, 9, 5, 5, 4, 5, 2, 9, 5, 10, 3, 7, 3, 7, 4, 8, 3, 8, 1, 6, 2, 3, 2, 9, 1, 2, 2, 10, 5, 7, 3, 7, 3, 9, 5, 9, 1, 4, 2, 10, 1, 10, 1, 8, 5, 8, 6, 8, 1, 10, 1, 6, 1, 6, 2, 3, 2, 4, 3, 5, 3, 10, 1, 9, 4, 10, 5, 10, 9, 10, 3, 6, 2, 9, 5, 10, 5, 7, 5, 10, 1, 6, 2, 5, 4, 9, 2, 9, 1, 5, 4, 7, 5, 10, 4, 9, 5, 10, 2, 8, 3, 8, 2, 8, 2, 8, 3, 7, 6, 8, 6, 9, 5, 8, 2, 10, 5, 9, 8, 10, 4, 10, 7, 7, 6, 7, 1, 7, 1, 4, 1, 9, 4, 6, 6, 8, 3, 8, 3, 9, 6, 10, 3, 7, 3, 4, 4, 5, 4, 5, 3, 10, 8, 9, 1, 8, 8, 8, 7, 9, 5, 10, 3, 5, 1, 5, 3, 5, 4, 10, 3, 8, 1, 3, 3, 9, 5, 7, 2, 9, 7, 9, 6, 10, 8, 8, 2, 3, 1, 6, 3, 6, 4, 9, 2, 5, 3, 10, 4, 9, 1, 9, 3, 7, 1, 10, 1, 9, 4, 7, 4, 6, 2, 6, 5, 10, 2, 9, 2, 10, 9, 10, 8, 9, 1, 8, 7, 10, 8, 10, 6, 6, 2, 8, 1, 4, 3, 5, 1, 10, 9, 9, 5, 7, 2, 8, 2, 8, 4, 10, 7, 10, 4, 9, 4, 6, 1, 7, 6, 6, 2, 4, 3, 10, 1, 9, 7, 10, 6, 8, 2, 7, 5, 8, 4, 6, 5, 10, 2, 5, 2, 4, 2, 10, 4, 9, 2, 8, 6, 7, 2, 6, 6, 10, 6, 9, 3, 3, 3, 8, 4, 8, 3, 7, 4, 7, 3, 8, 7, 9, 5, 7, 3, 10, 5, 8, 1, 10, 4, 10, 2, 8, 2, 8, 1, 3, 1, 7, 2, 8, 4, 8, 5, 9, 6, 8, 1, 5, 3, 10, 7, 7, 1, 2, 2, 5, 5, 8, 5, 8, 5, 9, 6, 8, 3, 9, 3, 10, 5, 8, 6, 10, 2, 9, 2, 10, 5, 5, 3, 4, 2, 6, 1, 4, 4, 10, 2, 8, 2, 5, 1, 7, 2, 4, 1, 4, 2, 10, 2, 10, 5, 9, 4, 4, 3, 7, 6, 7, 4, 8, 4, 6, 1, 6, 2, 6, 2, 6, 4, 5, 2, 4, 2, 2, 1, 6, 4, 8, 3, 4, 1, 4, 2, 9, 1, 4, 2, 6, 3, 6, 3, 7, 3, 7, 2, 10, 4, 8, 1, 7, 4, 10, 8, 10, 2, 10, 7, 10, 5, 8, 3, 5, 4, 9, 5, 9, 5, 10, 5, 8, 1, 3, 1, 5, 5, 6, 4, 5, 5, 7, 3, 6, 2, 6, 1, 6, 1, 6, 3, 8, 1, 8, 2, 7, 5, 7, 6, 9, 2, 4, 3, 10, 9, 10, 1, 9, 2, 10, 2, 6, 6, 8, 3, 6, 5, 8, 2, 7, 4, 8, 4, 9, 1, 7, 4, 7, 2, 3, 2, 5, 3, 4, 2, 6, 1, 9, 5, 10, 2, 5, 2, 8, 2, 8, 5, 7, 2, 9, 6, 7, 1, 8, 5, 8, 6, 6, 4, 6, 5, 10, 4, 10, 6, 7, 4, 7, 1, 8, 6, 6, 2, 10, 7, 8, 3, 7, 1, 9, 2, 7, 3, 9, 5, 10, 1, 7, 1, 6, 3, 10, 1, 8, 5, 7, 2, 5, 4, 6, 4, 6, 2, 10, 1, 10, 3, 8, 7, 10, 2, 10, 6, 9, 1, 7, 2, 9, 6, 10, 4, 8, 2, 10, 5, 8, 3, 10, 3, 3, 3, 8, 7, 10, 8, 9, 3, 7, 2, 7, 5, 9, 2, 8, 7, 7, 1, 4, 4, 8, 3, 10, 8, 9, 7, 9, 5, 9, 5, 10, 3, 9, 1, 3, 1, 7, 3, 5, 1, 4, 2, 8, 1, 10, 5, 7, 1, 10, 4, 4, 3, 9, 2, 5, 3, 10, 4, 9, 5, 10, 2, 10, 3, 10, 3, 6, 2, 10, 4, 4, 2, 9, 5, 10, 5, 8, 7, 10, 5, 10, 6, 7, 4, 4, 2, 9, 1, 10, 4, 6, 2, 3, 3, 8, 8, 9, 5, 8, 1, 4, 2, 6, 4, 7, 3, 6, 2, 9, 6, 10, 6, 9, 5, 9, 7, 9, 7, 10, 5, 7, 2, 5, 3, 5, 2, 7, 4, 5, 1, 5, 1, 8, 1, 9, 1, 7, 1, 7, 2, 6, 1, 10, 6, 7, 6, 7, 2, 4, 2, 7, 5, 8, 3, 7, 2, 7, 1, 5, 3, 9, 1, 6, 4, 9, 2, 9, 1, 8, 7, 10, 2, 8, 2, 6, 4, 9, 1, 8, 7, 7, 1, 5, 3, 6, 3, 9, 1, 10, 4, 7, 4, 10, 3, 6, 5, 8, 2, 10, 1, 6, 1, 9, 4, 6, 4, 10, 6, 8, 4, 6, 2, 8, 4, 10, 3, 9, 4, 8, 7, 9, 2, 6, 4, 8, 1, 10, 1, 4, 1, 6, 2, 7, 3, 10, 1, 10, 4, 10, 2, 6, 4, 5, 2, 9, 3, 5, 3, 8, 5, 6, 1, 8, 6, 10, 4, 9, 8, 8, 3, 9, 6, 7, 2, 4, 3, 5, 3, 4, 1, 6, 2, 7, 2, 4, 3, 5, 2, 3, 3, 6, 4, 4, 4, 9, 2, 5, 3, 7, 1, 3, 2, 10, 8, 9, 5, 6, 1, 10, 3, 8, 5, 10, 4, 5, 3, 8, 7, 10, 8, 9, 1, 6, 5, 9, 7, 10, 5, 9, 6, 7, 2, 5, 1, 8, 4, 9, 2, 6, 5, 10, 2, 6, 1, 5, 3, 7, 1, 5, 1, 4, 2, 4, 3, 10, 2, 7, 6, 9, 4, 7, 5, 7, 4, 5, 5, 6, 1, 3, 1, 10, 1, 7, 1, 7, 2, 10, 4, 9, 5, 6, 2, 6, 4, 5, 4, 10, 5, 8, 6, 7, 3, 5, 5, 7, 3, 5, 3, 7, 5, 10, 1, 7, 1, 4, 1, 10, 4, 10, 3, 10, 4, 7, 3, 8, 1, 3, 3, 8, 6, 6, 4, 6, 2, 10, 5, 9, 2, 9, 3, 10, 3, 5, 3, 10, 9, 10, 8, 9, 1, 6, 1, 9, 4, 10, 4, 7, 1, 5, 5, 10, 9, 10, 7, 10, 3, 10, 8, 10, 7, 10, 6, 6, 4, 6, 5, 7, 7, 7, 2, 8, 2, 8, 7, 9, 3, 9, 3, 7, 2, 8, 1, 10, 4, 6, 4, 10, 8, 10, 3, 6, 4, 10, 8, 9, 1, 6, 2, 8, 1, 4, 2, 6, 4, 8, 7, 7, 3, 8, 5, 8, 1, 2, 2, 9, 2, 8, 3, 3, 1, 6, 3, 4, 4, 6, 4, 9, 7, 9, 5, 8, 7, 7, 1, 4, 1, 8, 7, 8, 1, 10, 1, 7, 3, 5, 2, 3, 1, 8, 5, 10, 4, 8, 2, 10, 4, 6, 1, 8, 1, 10, 2, 5, 1, 8, 1, 10, 1, 6, 3, 6, 3, 5, 1, 8, 4, 8, 5, 9, 7, 8, 4, 8, 5, 7, 2, 9, 3, 7, 3, 10, 4, 8, 1, 4, 3, 9, 7, 9, 2, 5, 3, 8, 5, 8, 2, 6, 4, 5, 2, 8, 4, 10, 3, 6, 6, 10, 4, 10, 6, 10, 1, 5, 3, 4, 2, 4, 3, 4, 3, 8, 7, 7, 2, 6, 6, 7, 6, 7, 3, 4, 3, 8, 1, 10, 2, 7, 5, 9, 2, 6, 3, 9, 3, 9, 5, 6, 5, 10, 9, 10, 8, 8, 7, 8, 7, 8, 2, 5, 5, 6, 1, 9, 3, 4, 4, 8, 4, 10, 2, 7, 1, 7, 1, 8, 7, 8, 2, 7, 2, 7, 3, 10, 5, 6, 1, 4, 3, 7, 3, 9, 6, 7, 1, 9, 1, 8, 7, 8, 4, 7, 1, 8, 4, 9, 5, 10, 2, 5, 2, 3, 1, 6, 1, 7, 3, 7, 3, 3, 2, 8, 3, 10, 4, 9, 1, 10, 5, 5, 1, 7, 5, 7, 6, 10, 5, 6, 6, 10, 4, 9, 5, 10, 4, 4, 3, 4, 1, 4, 2, 7, 3, 9, 4, 6, 5, 6, 5, 6, 3, 4, 1, 4, 1, 5, 1, 9, 2, 2, 2, 5, 4, 8, 2, 10, 3, 6, 2, 5, 4, 8, 4, 8, 5, 10, 6, 8, 4, 5, 4, 10, 6, 10, 9, 10, 6, 8, 4, 6, 1, 8, 4, 7, 1, 6, 3, 9, 3, 4, 4, 7, 5, 10, 2, 2, 2, 8, 3, 9, 5, 9, 4, 7, 4, 10, 7, 8, 3, 7, 3, 10, 3, 10, 1, 7, 6, 10, 6, 9, 8, 9, 3, 8, 3, 10, 1, 9, 8, 8, 2, 9, 2, 7, 2, 2, 2, 7, 3, 4, 1, 8, 1, 10, 7, 9, 6, 8, 5, 7, 3, 10, 1, 4, 1, 6, 4, 4, 2, 4, 2, 7, 2, 10, 1, 6, 3, 9, 1, 2, 1, 8, 2, 3, 3, 3, 3, 9, 3, 8, 5, 8, 2, 5, 4, 10, 7, 10, 3, 6, 3, 8, 2, 4, 1, 2, 2, 9, 5, 8, 4, 5, 3, 8, 1, 4, 1, 10, 2, 7, 1, 4, 2, 4, 2, 4, 3, 10, 8, 8, 6, 6, 3, 10, 8, 8, 1, 5, 4, 5, 1, 4, 2, 3, 2, 8, 2, 10, 7, 7, 3, 8, 4, 10, 5, 9, 1, 8, 1, 9, 5, 8, 4, 9, 2, 9, 2, 7, 2, 9, 4, 10, 5, 10, 3, 10, 1, 9, 5, 9, 1, 2, 1, 5, 1, 10, 3, 9, 7, 8, 7, 8, 1, 8, 3, 8, 4, 9, 5, 6, 5, 10, 8, 9, 1, 3, 1, 7, 1, 4, 1, 8, 3, 8, 2, 4, 3, 4, 3, 6, 3, 4, 4, 8, 1, 7, 3, 9, 5, 6, 2, 8, 1, 9, 3, 5, 1, 10, 9, 9, 7, 9, 2, 8, 2, 5, 2, 3, 3, 9, 1, 8, 2, 6, 4, 7, 7, 7, 1, 5, 1, 9, 5, 7, 5, 7, 4, 6, 5, 6, 3, 5, 2, 5, 2, 10, 3, 5, 4, 10, 9, 10, 1, 4, 3, 9, 3, 9, 1, 8, 5, 10, 9, 10, 5, 8, 6, 8, 5, 8, 1, 7, 6, 8, 1, 9, 2, 6, 1, 4, 3, 6, 3, 7, 1, 6, 3, 3, 1, 7, 4, 8, 5, 9, 1, 10, 3, 7, 6, 6, 6, 7, 2, 9, 1, 3, 2, 8, 1, 8, 6, 10, 2, 6, 1, 8, 1, 5, 2, 9, 2, 9, 1, 9, 3, 8, 3, 10, 6, 8, 2, 6, 3, 7, 2, 5, 3, 9, 4, 5, 4, 9, 2, 5, 5, 10, 5, 7, 3, 7, 5, 8, 2, 5, 1, 4, 2, 7, 2, 10, 6, 9, 4, 8, 2, 9, 2, 10, 1, 9, 4, 9, 1, 5, 4, 8, 2, 10, 3, 6, 2, 6, 5, 9, 4, 10, 3, 10, 6, 7, 3, 9, 2, 3, 3, 9, 6, 7, 5, 6, 4, 4, 3, 9, 6, 8, 5, 9, 8, 10, 5, 8, 7, 8, 1, 9, 1, 6, 1, 5, 1, 4, 2, 6, 1, 9, 5, 9, 2, 6, 3, 10, 5, 5, 4, 5, 1, 8, 4, 10, 2, 8, 3, 7, 3, 8, 4, 10, 7, 9, 2, 8, 2, 6, 2, 9, 6, 8, 7, 9, 3, 6, 4, 10, 5, 10, 1, 10, 5, 8, 5, 10, 2, 10, 3, 7, 6, 10, 2, 4, 3, 8, 4, 7, 5, 10, 6, 9, 1, 9, 6, 9, 5, 10, 1, 8, 7, 7, 5, 8, 1, 6, 1, 6, 6, 7, 1, 9, 6, 10, 9, 10, 7, 8, 6, 7, 2, 8, 3, 4, 2, 6, 3, 9, 4, 9, 6, 8, 4, 8, 3, 5, 1, 8, 6, 10, 3, 9, 1, 4, 1, 9, 6, 9, 8, 9, 4, 9, 4, 10, 1, 8, 4, 6, 4, 8, 7, 10, 8, 9, 4, 10, 5, 9, 2, 7, 4, 5, 2, 8, 2, 4, 2, 6, 3, 10, 2, 6, 3, 4, 1, 8, 5, 10, 1, 9, 7, 8, 5, 7, 2, 7, 5, 9, 1, 7, 2, 10, 3, 5, 5, 6, 1, 10, 4, 5, 3, 9, 1, 8, 4, 8, 7, 8, 4, 10, 3, 10, 4, 9, 3, 8, 3, 8, 4, 8, 1, 6, 3, 10, 4, 4, 1, 2, 2, 8, 4, 10, 3, 10, 10, 10, 3, 7, 5, 9, 2, 10, 4, 9, 5, 9, 2, 8, 8, 10, 1, 8, 7, 7, 1, 10, 2, 6, 4, 5, 2, 4, 1, 10, 2, 8, 4, 7, 1, 8, 1, 5, 4, 5, 4, 10, 8, 9, 1, 5, 1, 9, 2, 9, 5, 9, 5, 7, 3, 8, 4, 4, 1, 9, 4, 6, 3, 8, 5, 6, 3, 9, 3, 9, 5, 9, 6, 6, 4, 7, 1, 9, 5, 8, 5, 7, 3, 10, 6, 10, 2, 10, 5, 8, 5, 8, 4, 8, 8, 8, 6, 9, 7, 8, 8, 9, 2, 4, 3, 5, 5, 9, 7, 10, 7, 10, 5, 9, 8, 10, 9, 10, 8, 9, 2, 8, 4, 10, 3, 9, 6, 10, 1, 8, 3, 8, 7, 10, 8, 9, 8, 9, 6, 10, 2, 8, 3, 5, 3, 9, 4, 6, 2, 5, 1, 4, 4, 7, 6, 7, 7, 8, 3, 8, 1, 6, 3, 5, 4, 5, 3, 4, 1, 8, 2, 6, 5, 7, 2, 8, 3, 6, 3, 8, 5, 10, 1, 10, 9, 9, 6, 9, 4, 7, 5, 9, 5, 6, 4, 8, 1, 6, 5, 9, 1, 3, 1, 2, 1, 10, 7, 9, 6, 10, 1, 5, 2, 4, 1, 3, 1, 7, 5, 10, 4, 5, 1, 6, 5, 5, 1, 10, 1, 8, 1, 10, 3, 10, 4, 10, 2, 10, 3, 9, 5, 8, 1, 7, 1, 6, 3, 7, 1, 3, 1, 8, 6, 7, 6, 9, 4, 7, 5, 6, 3, 5, 1, 10, 5, 6, 1, 10, 3, 4, 1, 9, 1, 4, 3, 7, 1, 4, 3, 4, 1, 9, 6, 7, 2, 6, 2, 3, 2, 8, 1, 9, 5, 5, 3, 10, 6, 7, 3, 9, 4, 10, 6, 7, 4, 7, 2, 7, 2, 8, 5, 10, 5, 8, 2, 9, 8, 8, 2, 10, 2, 9, 3, 8, 1, 5, 4, 9, 6, 8, 1, 8, 5, 9, 3, 7, 1, 8, 6, 10, 2, 9, 2, 9, 5, 7, 4, 10, 7, 8, 3, 7, 3, 5, 5, 7, 2, 5, 1, 8, 3, 7, 5, 6, 3, 10, 4, 6, 1, 6, 5, 7, 5, 8, 5, 9, 4, 4, 2, 8, 1, 7, 3, 4, 3, 3, 1, 8, 5, 8, 1, 6, 3, 9, 3, 7, 4, 6, 2, 8, 4, 5, 2, 4, 3, 4, 4, 10, 5, 6, 5, 9, 2, 6, 1, 4, 3, 7, 2, 6, 4, 7, 2, 10, 3, 8, 4, 6, 3, 10, 4, 10, 3, 5, 3, 10, 4, 8, 6, 8, 4, 6, 4, 8, 2, 5, 2, 3, 3, 3, 1, 9, 1, 7, 3, 5, 2, 10, 4, 5, 2, 7, 4, 5, 1, 4, 4, 6, 3, 5, 5, 10, 7, 7, 3, 5, 2, 3, 2, 5, 1, 5, 5, 9, 6, 8, 4, 10, 1, 4, 2, 4, 4, 10, 4, 9, 9, 9, 3, 7, 3, 10, 1, 7, 1, 10, 2, 7, 5, 8, 6, 9, 6, 7, 4, 8, 1, 7, 6, 6, 6, 6, 1, 8, 7, 9, 8, 10, 9, 10, 2, 6, 3, 9, 4, 6, 5, 9, 9, 9, 5, 7, 3, 10, 3, 6, 5, 9, 5, 6, 2, 9, 7, 8, 5, 9, 2, 10, 5, 10, 8, 9, 2, 10, 9, 9, 1, 3, 1, 5, 5, 9, 3, 7, 3, 9, 3, 6, 3, 10, 4, 6, 2, 5, 5, 7, 6, 6, 3, 4, 4, 9, 5, 9, 3, 10, 1, 7, 3, 10, 9, 9, 2, 6, 4, 6, 4, 7, 4, 9, 1, 7, 1, 5, 3, 8, 1, 7, 1, 8, 2, 8, 3, 6, 4, 5, 4, 10, 3, 6, 5, 8, 5, 7, 3, 7, 4, 9, 2, 7, 5, 10, 3, 9, 1, 2, 2, 8, 6, 9, 4, 9, 3, 6, 5, 10, 6, 10, 6, 8, 3, 7, 1, 6, 5, 7, 1, 8, 5, 6, 3, 3, 1, 7, 7, 10, 5, 8, 1, 10, 6, 10, 1, 8, 1, 6, 5, 10, 7, 10, 9, 9, 3, 6, 5, 8, 4, 5, 3, 3, 3, 10, 5, 6, 4, 10, 2, 8, 6, 10, 8, 10, 3, 8, 2, 8, 3, 8, 2, 6, 4, 6, 5, 9, 4, 4, 2, 4, 3, 4, 3, 6, 1, 7, 2, 7, 2, 8, 4, 6, 4, 6, 5, 10, 3, 8, 1, 9, 4, 9, 6, 10, 1, 10, 7, 10, 3, 10, 4, 8, 1, 9, 1, 5, 1, 4, 2, 6, 1, 5, 1, 9, 7, 10, 4, 10, 4, 9, 4, 4, 1, 5, 1, 10, 6, 9, 3, 8, 6, 10, 1, 2, 2, 10, 8, 8, 2, 9, 3, 8, 4, 8, 1, 10, 4, 4, 1, 7, 1, 4, 1, 8, 2, 6, 4, 5, 5, 9, 7, 7, 2, 5, 3, 9, 1, 7, 4, 5, 1, 7, 3, 7, 4, 8, 2, 9, 7, 8, 3, 7, 2, 9, 4, 10, 5, 9, 1, 2, 2, 8, 3, 5, 2, 5, 1, 6, 3, 7, 2, 10, 3, 8, 4, 8, 2, 9, 6, 7, 2, 9, 2, 5, 2, 4, 1, 8, 6, 8, 2, 8, 7, 8, 5, 10, 1, 7, 1, 6, 6, 7, 3, 8, 1, 10, 6, 7, 1, 7, 7, 9, 2, 9, 7, 10, 3, 9, 1, 7, 2, 3, 1, 6, 1, 10, 4, 6, 5, 8, 6, 9, 2, 7, 1, 5, 2, 7, 4, 9, 1, 6, 4, 10, 4, 8, 4, 7, 2, 8, 3, 10, 2, 4, 3, 6, 4, 5, 3, 8, 1, 3, 3, 9, 4, 4, 1, 2, 1, 7, 7, 7, 6, 6, 2, 9, 5, 7, 5, 7, 2, 6, 3, 3, 1, 4, 2, 9, 6, 10, 1, 9, 4, 5, 2, 8, 7, 8, 3, 7, 4, 6, 2, 8, 3, 8, 8, 10, 1, 9, 3, 9, 6, 9, 7, 8, 3, 5, 1, 7, 1, 6, 5, 8, 3, 4, 3, 4, 1, 10, 3, 9, 3, 7, 2, 5, 1, 6, 4, 4, 3, 10, 2, 6, 1, 4, 4, 8, 4, 8, 1, 5, 3, 10, 4, 8, 3, 4, 1, 6, 2, 4, 2, 5, 3, 4, 1, 3, 2, 5, 1, 7, 6, 10, 8, 10, 6, 6, 4, 9, 2, 9, 4, 10, 1, 6, 5, 9, 4, 8, 3, 10, 1, 7, 3, 5, 1, 9, 3, 6, 3, 10, 7, 7, 2, 10, 4, 9, 3, 9, 6, 9, 1, 7, 2, 9, 7, 9, 1, 6, 1, 4, 3, 8, 7, 9, 4, 9, 2, 7, 3, 7, 2, 9, 3, 5, 3, 10, 4, 10, 6, 10, 2, 6, 3, 5, 4, 5, 5, 10, 6, 9, 7, 7, 5, 10, 1, 7, 1, 5, 2, 8, 1, 6, 3, 5, 2, 7, 4, 4, 2, 9, 2, 9, 3, 7, 2, 10, 6, 10, 3, 7, 5, 7, 2, 6, 3, 7, 5, 10, 4, 8, 1, 7, 5, 8, 1, 8, 6, 9, 5, 9, 2, 7, 6, 9, 5, 7, 6, 7, 1, 7, 7, 8, 4, 6, 3, 5, 4, 10, 9, 10, 10, 10, 4, 7, 4, 6, 3, 9, 4, 6, 5, 10, 3, 4, 2, 10, 5, 6, 1, 7, 1, 4, 2, 10, 3, 6, 3, 8, 2, 6, 2, 10, 1, 4, 3, 9, 1, 10, 4, 10, 6, 10, 1, 7, 3, 6, 3, 4, 3, 4, 3, 8, 3, 7, 1, 1, 1, 5, 5, 5, 3, 6, 1, 6, 1, 10, 3, 4, 4, 7, 2, 6, 2, 8, 3, 6, 3, 5, 1, 7, 2, 5, 3, 7, 4, 10, 7, 9, 5, 10, 5, 10, 9, 9, 1, 5, 4, 5, 3, 5, 4, 7, 6, 9, 7, 10, 3, 9, 5, 6, 2, 4, 1, 10, 1, 5, 3, 7, 6, 6, 2, 10, 4, 4, 1, 6, 2, 4, 2, 5, 4, 9, 2, 7, 2, 5, 1, 10, 2, 5, 4, 4, 2, 8, 3, 10, 1, 8, 1, 7, 2, 10, 1, 10, 4, 9, 5, 6, 1, 7, 2, 7, 3, 8, 8, 10, 2, 10, 4, 7, 5, 9, 7, 9, 4, 6, 4, 6, 6, 10, 4, 7, 5, 10, 4, 6, 4, 9, 1, 10, 2, 5, 1, 5, 2, 4, 1, 8, 5, 9, 4, 8, 3, 10, 7, 7, 4, 7, 4, 9, 6, 7, 4, 8, 2, 6, 4, 5, 3, 7, 3, 7, 6, 8, 7, 9, 7, 10, 5, 9, 7, 8, 4, 5, 3, 5, 3, 7, 5, 7, 4, 7, 1, 10, 6, 9, 2, 6, 4, 10, 4, 5, 2, 4, 1, 10, 4, 9, 2, 6, 1, 9, 2, 9, 4, 9, 1, 7, 2, 10, 1, 10, 4, 8, 5, 8, 1, 7, 6, 10, 7, 10, 7, 9, 5, 8, 1, 9, 3, 6, 2, 4, 3, 8, 4, 9, 1, 5, 5, 8, 6, 10, 6, 7, 1, 7, 1, 6, 2, 3, 2, 9, 4, 7, 7, 7, 1, 7, 1, 5, 5, 7, 1, 9, 7, 8, 3, 6, 1, 9, 5, 7, 7, 10, 4, 5, 1, 7, 1, 7, 5, 6, 6, 10, 4, 10, 5, 9, 6, 9, 5, 9, 6, 7, 6, 6, 3, 7, 5, 10, 2, 9, 6, 7, 2, 9, 4, 9, 7, 10, 7, 9, 1, 9, 4, 6, 5, 7, 5, 7, 1, 6, 1, 4, 2, 9, 2, 10, 3, 10, 1, 7, 5, 9, 6, 8, 7, 10, 2, 5, 1, 9, 1, 10, 2, 3, 1, 5, 1, 6, 3, 4, 3, 4, 1, 9, 4, 8, 7, 10, 5, 8, 5, 10, 6, 9, 6, 7, 5, 7, 5, 7, 1, 10, 1, 3, 2, 9, 6, 7, 2, 6, 5, 8, 3, 7, 2, 3, 1, 8, 6, 7, 1, 6, 3, 7, 5, 6, 4, 8, 6, 7, 2, 10, 8, 8, 3, 5, 1, 6, 2, 10, 3, 5, 2, 9, 3, 8, 4, 5, 5, 10, 2, 6, 1, 5, 3, 8, 5, 6, 1, 8, 3, 4, 4, 5, 4, 5, 1, 2, 2, 9, 3, 10, 4, 6, 3, 10, 5, 10, 6, 10, 1, 9, 4, 7, 5, 5, 1, 7, 1, 7, 4, 6, 1, 6, 2, 7, 1, 6, 1, 5, 1, 8, 1, 6, 2, 10, 2, 6, 6, 9, 5, 6, 2, 4, 2, 10, 4, 9, 6, 9, 1, 10, 3, 8, 4, 10, 7, 9, 2, 8, 2, 7, 1, 10, 4, 9, 1, 8, 3, 10, 2, 4, 1, 7, 4, 9, 6, 9, 6, 10, 2, 10, 8, 9, 8, 10, 8, 9, 5, 9, 3, 8, 8, 10, 8, 9, 5, 8, 2, 8, 5, 9, 5, 7, 2, 8, 1, 8, 6, 9, 5, 8, 6, 8, 5, 8, 1, 9, 6, 7, 1, 9, 1, 6, 3, 7, 6, 9, 6, 9, 1, 8, 3, 9, 1, 10, 4, 8, 5, 9, 5, 8, 6, 7, 4, 7, 4, 8, 6, 6, 3, 10, 9, 9, 2, 9, 4, 6, 2, 3, 3, 8, 3, 6, 1, 4, 1, 8, 2, 10, 7, 9, 7, 9, 8, 8, 2, 6, 3, 4, 4, 8, 5, 10, 3, 7, 6, 6, 3, 4, 1, 8, 2, 5, 3, 5, 4, 8, 2, 8, 1, 3, 1, 9, 8, 10, 3, 6, 4, 10, 3, 7, 1, 4, 2, 10, 9, 10, 3, 6, 2, 9, 3, 7, 5, 7, 4, 7, 2, 8, 4, 10, 5, 7, 6, 6, 2, 7, 3, 8, 5, 10, 6, 6, 3, 3, 2, 10, 3, 6, 4, 5, 1, 3, 1, 7, 1, 6, 5, 7, 6, 10, 7, 9, 4, 10, 8, 9, 1, 9, 8, 10, 1, 9, 8, 9, 1, 10, 2, 8, 6, 6, 4, 10, 5, 8, 3, 7, 2, 10, 4, 5, 1, 7, 1, 9, 3, 6, 6, 10, 6, 9, 3, 6, 3, 6, 6, 10, 5, 7, 7, 9, 4, 9, 9, 10, 5, 9, 3, 7, 6, 10, 1, 9, 2, 9, 3, 6, 3, 10, 2, 10, 4, 10, 4, 9, 5, 8, 1, 5, 1, 5, 1, 3, 2, 6, 5, 10, 6, 9, 1, 8, 3, 9, 8, 10, 5, 7, 1, 8, 6, 10, 4, 9, 8, 8, 4, 10, 1, 8, 1, 7, 6, 9, 1, 6, 4, 10, 4, 9, 5, 6, 2, 8, 1, 7, 2, 8, 2, 8, 5, 6, 4, 7, 3, 4, 2, 5, 4, 8, 5, 7, 5, 8, 1, 10, 6, 7, 1, 8, 1, 8, 2, 5, 1, 10, 7, 8, 1, 7, 2, 4, 2, 10, 9, 10, 1, 9, 6, 7, 3, 10, 2, 9, 4, 7, 5, 6, 2, 9, 7, 9, 7, 9, 2, 9, 5, 9, 5, 10, 2, 4, 3, 6, 4, 8, 2, 6, 1, 6, 2, 5, 4, 7, 7, 10, 5, 10, 3, 10, 5, 8, 1, 4, 1, 5, 5, 6, 2, 9, 3, 9, 6, 9, 5, 9, 2, 9, 4, 5, 3, 8, 7, 10, 2, 10, 1, 8, 4, 10, 1, 6, 2, 9, 4, 8, 2, 7, 2, 7, 2, 7, 4, 5, 3, 6, 2, 8, 3, 9, 3, 9, 3, 5, 1, 9, 1, 7, 3, 7, 5, 10, 6, 9, 3, 10, 3, 9, 3, 10, 5, 9, 5, 8, 5, 7, 5, 7, 6, 9, 7, 8, 3, 3, 1, 5, 3, 4, 1, 8, 1, 7, 1, 6, 6, 8, 3, 9, 1, 3, 1, 6, 4, 7, 1, 3, 1, 5, 2, 9, 1, 6, 2, 4, 3, 9, 4, 9, 9, 9, 5, 7, 4, 8, 6, 9, 2, 6, 1, 10, 4, 8, 3, 10, 5, 10, 7, 9, 5, 8, 6, 9, 5, 9, 5, 10, 4, 8, 1, 6, 1, 10, 9, 9, 3, 8, 3, 7, 2, 10, 6, 10, 5, 9, 1, 5, 1, 6, 2, 10, 2, 8, 4, 8, 6, 9, 6, 6, 2, 4, 4, 7, 2, 6, 6, 9, 3, 9, 6, 10, 6, 10, 2, 7, 4, 8, 5, 8, 2, 7, 6, 10, 6, 6, 3, 8, 8, 10, 3, 10, 7, 8, 3, 6, 5, 6, 6, 6, 4, 7, 5, 6, 4, 8, 2, 7, 1, 8, 6, 10, 5, 7, 1, 7, 4, 6, 6, 9, 7, 8, 4, 5, 2, 5, 2, 10, 3, 4, 4, 5, 2, 8, 2, 10, 7, 8, 1, 4, 1, 3, 1, 10, 5, 7, 1, 2, 1, 4, 2, 7, 3, 4, 4, 8, 1, 7, 7, 10, 9, 9, 4, 10, 5, 8, 4, 9, 7, 10, 5, 8, 6, 8, 2, 10, 6, 9, 4, 8, 6, 10, 2, 5, 1, 4, 2, 7, 2, 10, 2, 8, 6, 6, 2, 7, 4, 10, 2, 7, 6, 10, 2, 6, 2, 6, 5, 9, 2, 10, 1, 4, 2, 6, 3, 4, 2, 8, 4, 7, 6, 8, 5, 7, 4, 7, 5, 9, 2, 7, 1, 7, 3, 7, 4, 10, 4, 7, 3, 7, 1, 9, 4, 10, 6, 7, 4, 8, 2, 7, 4, 6, 6, 7, 3, 7, 2, 5, 1, 10, 4, 4, 2, 10, 1, 8, 2, 5, 4, 7, 1, 4, 3, 8, 2, 5, 4, 5, 3, 8, 7, 10, 1, 9, 1, 7, 2, 10, 2, 9, 2, 7, 5, 9, 2, 6, 4, 7, 2, 8, 2, 8, 7, 9, 1, 6, 1, 10, 8, 10, 4, 8, 5, 8, 1, 8, 4, 8, 3, 9, 6, 6, 6, 10, 6, 9, 6, 10, 3, 10, 3, 5, 2, 9, 3, 10, 4, 10, 1, 8, 3, 6, 4, 4, 1, 5, 3, 9, 3, 9, 5, 9, 6, 7, 3, 4, 1, 9, 2, 7, 2, 7, 1, 7, 2, 8, 5, 9, 2, 3, 3, 7, 2, 4, 3, 6, 3, 7, 2, 6, 1, 10, 2, 4, 1, 7, 4, 9, 7, 9, 4, 8, 2, 5, 2, 7, 3, 7, 2, 10, 6, 9, 3, 8, 2, 6, 3, 10, 5, 8, 8, 9, 7, 8, 3, 9, 4, 6, 5, 5, 2, 10, 1, 9, 3, 7, 1, 9, 2, 6, 2, 3, 3, 10, 8, 10, 9, 9, 3, 10, 1, 9, 1, 5, 4, 5, 4, 4, 4, 8, 4, 6, 3, 6, 3, 8, 3, 9, 7, 8, 3, 6, 1, 10, 3, 10, 6, 10, 4, 5, 1, 4, 1, 7, 4, 10, 2, 9, 3, 9, 5, 9, 5, 10, 5, 5, 3, 8, 2, 10, 4, 5, 3, 8, 4, 8, 1, 6, 3, 7, 2, 8, 7, 10, 1, 9, 8, 9, 5, 5, 2, 9, 7, 9, 2, 5, 5, 8, 7, 9, 2, 8, 2, 9, 4, 6, 6, 10, 8, 9, 5, 8, 3, 5, 1, 9, 3, 7, 2, 10, 3, 5, 2, 6, 1, 10, 3, 8, 3, 9, 4, 5, 2, 10, 7, 9, 6, 6, 1, 8, 5, 6, 3, 8, 5, 9, 5, 9, 3, 5, 1, 6, 3, 6, 6, 10, 1, 9, 2, 6, 2, 9, 4, 8, 1, 9, 6, 7, 1, 7, 3, 7, 4, 10, 1, 7, 3, 6, 5, 7, 6, 7, 1, 6, 5, 5, 4, 10, 1, 6, 3, 6, 3, 10, 2, 7, 3, 6, 3, 6, 3, 4, 4, 8, 4, 8, 1, 3, 1, 10, 5, 10, 9, 10, 6, 9, 6, 8, 4, 8, 6, 8, 3, 6, 2, 7, 1, 10, 4, 5, 3, 8, 6, 10, 2, 9, 1, 3, 3, 10, 1, 10, 5, 10, 5, 7, 2, 8, 2, 8, 2, 8, 4, 9, 3, 10, 1, 10, 6, 8, 2, 10, 2, 10, 7, 10, 3, 5, 4, 5, 5, 7, 5, 9, 3, 7, 2, 6, 3, 4, 3, 4, 3, 10, 2, 5, 1, 8, 2, 6, 2, 5, 4, 6, 1, 9, 1, 9, 3, 7, 4, 8, 7, 10, 2, 9, 3, 6, 6, 8, 1, 8, 1, 8, 4, 10, 5, 7, 6, 10, 1, 7, 4, 8, 2, 6, 1, 9, 2, 10, 2, 8, 6, 6, 3, 5, 4, 10, 7, 10, 4, 8, 3, 10, 4, 8, 3, 7, 1, 9, 8, 8, 1, 5, 2, 10, 3, 7, 5, 10, 5, 8, 7, 9, 4, 6, 1, 9, 6, 9, 9, 9, 5, 7, 4, 8, 1, 7, 5, 6, 2, 7, 3, 7, 5, 8, 2, 8, 2, 10, 2, 6, 4, 4, 2, 7, 1, 6, 2, 6, 3, 6, 2, 6, 2, 4, 4, 9, 1, 6, 3, 10, 3, 5, 4, 8, 3, 7, 1, 9, 4, 8, 7, 7, 3, 10, 1, 6, 2, 7, 3, 5, 1, 9, 3, 9, 1, 10, 3, 7, 5, 6, 3, 7, 6, 6, 3, 7, 1, 6, 5, 8, 7, 9, 3, 8, 1, 5, 4, 8, 3, 5, 2, 8, 6, 9, 7, 7, 6, 7, 3, 9, 4, 7, 7, 10, 1, 8, 7, 10, 4, 8, 3, 10, 6, 10, 4, 6, 4, 10, 5, 9, 6, 6, 6, 6, 3, 8, 6, 9, 6, 10, 8, 10, 9, 10, 4, 10, 3, 7, 3, 4, 4, 10, 7, 7, 6, 8, 2, 10, 6, 10, 5, 10, 7, 8, 2, 7, 1, 7, 3, 4, 2, 7, 1, 7, 4, 10, 7, 10, 2, 6, 2, 8, 4, 9, 4, 8, 4, 10, 8, 9, 3, 9, 6, 9, 8, 9, 1, 8, 2, 3, 3, 10, 3, 5, 5, 5, 2, 10, 6, 8, 4, 6, 5, 6, 1, 9, 2, 5, 2, 3, 3, 6, 6, 6, 3, 9, 4, 7, 1, 10, 4, 10, 5, 9, 7, 9, 3, 8, 4, 10, 7, 10, 6, 9, 5, 7, 5, 6, 1, 9, 4, 9, 4, 8, 5, 9, 5, 7, 7, 8, 3, 7, 5, 5, 2, 10, 3, 3, 3, 7, 5, 8, 2, 6, 2, 9, 3, 5, 1, 8, 4, 7, 6, 7, 1, 6, 2, 4, 1, 4, 1, 5, 4, 5, 3, 10, 5, 10, 4, 6, 1, 9, 5, 7, 3, 10, 4, 8, 2, 7, 1, 2, 2, 7, 7, 10, 6, 9, 5, 10, 5, 10, 6, 6, 5, 10, 1, 9, 1, 8, 4, 9, 8, 8, 2, 4, 2, 3, 1, 10, 3, 6, 2, 10, 2, 9, 1, 9, 1, 9, 4, 10, 3, 5, 1, 9, 7, 8, 4, 10, 4, 9, 1, 6, 2, 6, 3, 5, 4, 8, 8, 8, 7, 8, 2, 8, 6, 7, 2, 10, 3, 5, 2, 8, 1, 4, 1, 7, 6, 8, 1, 3, 1, 6, 6, 10, 2, 10, 2, 9, 6, 8, 2, 10, 3, 10, 4, 10, 2, 9, 6, 9, 4, 8, 4, 9, 8, 9, 7, 9, 4, 10, 4, 6, 6, 10, 2, 7, 4, 7, 3, 7, 6, 9, 6, 10, 2, 9, 6, 10, 3, 9, 7, 9, 9, 10, 8, 9, 2, 8, 4, 4, 4, 9, 8, 9, 1, 7, 4, 10, 5, 6, 4, 6, 4, 9, 1, 10, 5, 7, 6, 10, 5, 8, 3, 7, 3, 8, 3, 10, 1, 9, 4, 8, 5, 10, 2, 3, 2, 4, 1, 4, 2, 9, 7, 9, 1, 10, 7, 8, 7, 10, 3, 6, 4, 4, 2, 9, 4, 10, 4, 9, 1, 9, 4, 8, 5, 8, 2, 5, 3, 8, 6, 8, 4, 6, 5, 7, 2, 9, 6, 8, 5, 6, 3, 10, 2, 10, 5, 10, 4, 10, 5, 9, 1, 7, 4, 9, 6, 8, 5, 6, 3, 7, 5, 10, 8, 8, 3, 10, 5, 10, 1, 10, 6, 7, 1, 4, 3, 8, 7, 10, 4, 8, 1, 5, 3, 8, 3, 5, 5, 5, 1, 10, 3, 8, 2, 7, 6, 8, 4, 6, 2, 7, 2, 9, 3, 9, 3, 6, 3, 5, 5, 8, 8, 9, 4, 6, 5, 6, 3, 6, 6, 10, 1, 6, 2, 7, 6, 8, 5, 6, 6, 10, 9, 9, 9, 10, 9, 10, 8, 10, 8, 8, 5, 7, 2, 2, 2, 5, 3, 4, 4, 5, 4, 8, 7, 8, 5, 8, 2, 8, 7, 10, 2, 3, 1, 2, 2, 9, 6, 9, 4, 10, 7, 9, 6, 6, 3, 7, 3, 6, 3, 5, 2, 9, 1, 6, 1, 6, 4, 6, 5, 7, 2, 9, 2, 10, 2, 3, 2, 10, 3, 6, 3, 10, 5, 10, 1, 9, 1, 3, 1, 6, 2, 5, 4, 9, 4, 8, 8, 8, 2, 3, 2, 3, 1, 10, 4, 5, 2, 9, 3, 5, 4, 8, 5, 7, 4, 10, 1, 6, 6, 9, 3, 8, 4, 7, 4, 8, 6, 9, 2, 8, 2, 3, 2, 6, 2, 6, 6, 6, 6, 10, 2, 9, 1, 7, 6, 7, 3, 6, 2, 6, 6, 10, 6, 9, 3, 7, 5, 10, 6, 7, 2, 10, 1, 7, 5, 6, 3, 7, 5, 7, 1, 5, 3, 7, 1, 6, 2, 8, 7, 8, 6, 8, 1, 8, 8, 8, 5, 10, 5, 10, 2, 7, 3, 7, 3, 6, 6, 6, 3, 4, 1, 10, 6, 9, 4, 9, 4, 9, 1, 10, 3, 9, 4, 10, 4, 7, 1, 9, 5, 7, 3, 9, 5, 9, 6, 10, 7, 8, 4, 5, 3, 8, 5, 6, 1, 8, 2, 6, 2, 10, 3, 7, 5, 7, 6, 9, 5, 8, 2, 9, 1, 8, 1, 8, 4, 10, 3, 9, 6, 9, 6, 6, 1, 10, 5, 9, 3, 7, 2, 7, 4, 8, 1, 5, 4, 10, 4, 6, 3, 10, 5, 9, 6, 10, 2, 10, 4, 5, 3, 6, 1, 10, 5, 8, 6, 7, 5, 10, 7, 7, 2, 4, 2, 3, 3, 10, 2, 4, 2, 9, 4, 9, 7, 8, 8, 10, 1, 5, 1, 3, 2, 7, 2, 7, 1, 4, 1, 8, 1, 5, 2, 6, 2, 10, 2, 10, 8, 9, 9, 9, 1, 10, 4, 6, 2, 10, 6, 9, 5, 9, 5, 9, 3, 8, 6, 7, 3, 8, 3, 5, 1, 4, 1, 9, 3, 9, 4, 5, 2, 9, 3, 5, 2, 7, 3, 6, 3, 10, 1, 2, 1, 9, 4, 5, 5, 10, 2, 10, 3, 8, 5, 5, 1, 10, 5, 8, 6, 9, 8, 9, 1, 3, 3, 9, 3, 8, 3, 5, 3, 8, 4, 10, 8, 8, 3, 6, 2, 10, 3, 5, 3, 10, 4, 8, 2, 8, 6, 7, 5, 7, 4, 5, 4, 9, 2, 10, 5, 6, 2, 10, 1, 4, 3, 8, 2, 6, 5, 8, 2, 6, 3, 6, 2, 8, 6, 9, 8, 10, 4, 10, 6, 6, 2, 4, 3, 7, 5, 8, 1, 8, 7, 10, 3, 8, 3, 8, 1, 8, 4, 8, 2, 8, 2, 7, 4, 7, 1, 10, 5, 10, 1, 10, 4, 5, 4, 5, 2, 10, 4, 10, 4, 10, 5, 10, 4, 10, 5, 7, 1, 4, 2, 7, 2, 9, 3, 7, 2, 7, 6, 8, 5, 6, 3, 6, 1, 7, 4, 8, 1, 5, 4, 5, 4, 6, 5, 6, 1, 6, 3, 7, 5, 8, 3, 6, 5, 8, 2, 6, 5, 10, 1, 10, 4, 7, 3, 7, 6, 10, 3, 7, 1, 10, 3, 10, 6, 7, 1, 2, 1, 10, 4, 10, 6, 8, 5, 9, 3, 9, 3, 7, 4, 5, 4, 5, 2, 10, 4, 7, 1, 5, 3, 9, 3, 10, 5, 7, 6, 9, 9, 10, 1, 8, 4, 5, 2, 8, 3, 8, 4, 6, 5, 8, 5, 5, 1, 6, 2, 9, 4, 8, 4, 6, 3, 5, 3, 10, 1, 10, 5, 9, 1, 6, 2, 10, 6, 9, 4, 6, 5, 8, 3, 6, 3, 7, 4, 8, 4, 6, 2, 9, 2, 6, 2, 4, 2, 6, 4, 4, 4, 7, 5, 7, 4, 7, 1, 9, 4, 10, 9, 10, 6, 7, 3, 9, 2, 7, 6, 6, 1, 3, 3, 3, 1, 9, 8, 9, 6, 10, 4, 7, 5, 9, 4, 9, 7, 10, 9, 10, 1, 7, 2, 7, 4, 7, 6, 8, 5, 6, 3, 9, 6, 10, 1, 6, 2, 5, 4, 7, 2, 8, 6, 7, 4, 6, 1, 5, 2, 6, 3, 9, 2, 6, 2, 4, 2, 5, 2, 6, 5, 6, 2, 6, 3, 8, 4, 10, 3, 9, 4, 6, 6, 9, 5, 8, 1, 8, 1, 7, 4, 9, 8, 9, 1, 5, 1, 7, 1, 5, 4, 10, 2, 9, 3, 10, 6, 9, 6, 7, 2, 9, 6, 8, 3, 6, 1, 5, 4, 5, 3, 10, 1, 8, 2, 8, 4, 9, 5, 10, 4, 10, 5, 7, 1, 7, 2, 8, 7, 9, 4, 5, 5, 8, 5, 6, 5, 10, 3, 8, 6, 7, 4, 6, 1, 10, 3, 10, 1, 10, 9, 10, 2, 10, 3, 10, 1, 5, 2, 5, 4, 10, 5, 9, 5, 5, 4, 8, 1, 4, 1, 3, 2, 3, 2, 6, 5, 10, 2, 6, 2, 8, 1, 8, 2, 10, 3, 8, 2, 9, 2, 9, 3, 9, 6, 8, 1, 6, 2, 6, 1, 7, 5, 9, 7, 9, 3, 7, 3, 5, 3, 10, 7, 9, 6, 6, 4, 10, 3, 7, 1, 4, 1, 10, 4, 10, 7, 9, 3, 3, 3, 6, 2, 8, 4, 5, 1, 8, 1, 5, 4, 6, 1, 8, 1, 8, 7, 10, 1, 8, 8, 10, 2, 8, 5, 7, 4, 10, 2, 6, 3, 3, 3, 10, 1, 7, 1, 10, 7, 9, 5, 8, 1, 3, 1, 5, 3, 9, 5, 9, 2, 9, 5, 8, 3, 5, 2, 9, 4, 6, 1, 10, 3, 6, 6, 8, 2, 7, 4, 9, 3, 7, 2, 8, 5, 9, 4, 9, 4, 5, 5, 9, 5, 10, 4, 5, 1, 9, 2, 7, 3, 8, 6, 8, 3, 9, 3, 6, 1, 5, 5, 6, 2, 7, 1, 6, 1, 9, 3, 8, 1, 8, 2, 9, 4, 7, 5, 6, 1, 7, 2, 6, 5, 9, 1, 8, 2, 6, 2, 7, 5, 7, 6, 7, 6, 10, 8, 9, 1, 3, 2, 9, 6, 8, 7, 9, 3, 8, 2, 4, 1, 6, 1, 8, 2, 9, 7, 8, 1, 8, 1, 7, 1, 9, 2, 10, 5, 10, 6, 7, 4, 7, 3, 10, 3, 9, 1, 2, 2, 9, 8, 9, 3, 8, 4, 10, 1, 7, 4, 8, 5, 6, 6, 10, 5, 10, 1, 9, 5, 10, 6, 8, 1, 8, 1, 6, 3, 8, 8, 9, 1, 6, 5, 10, 3, 10, 1, 6, 2, 10, 3, 8, 2, 6, 5, 5, 2, 7, 7, 10, 6, 7, 4, 6, 5, 10, 6, 10, 3, 10, 6, 7, 7, 9, 5, 9, 1, 8, 4, 9, 6, 10, 3, 8, 1, 6, 1, 9, 3, 10, 5, 9, 7, 7, 3, 9, 6, 10, 6, 8, 2, 10, 1, 10, 1, 8, 1, 10, 2, 8, 3, 5, 4, 8, 5, 10, 4, 8, 1, 3, 2, 9, 7, 10, 6, 8, 1, 9, 3, 10, 3, 7, 1, 2, 1, 7, 2, 10, 8, 10, 5, 7, 3, 8, 4, 7, 3, 6, 1, 5, 2, 6, 3, 9, 6, 9, 5, 9, 4, 7, 1, 8, 2, 5, 2, 8, 1, 8, 1, 6, 3, 5, 3, 5, 4, 6, 2, 8, 3, 8, 3, 4, 2, 6, 1, 7, 3, 7, 2, 6, 4, 10, 5, 10, 6, 8, 6, 10, 2, 4, 1, 6, 1, 8, 3, 8, 4, 5, 1, 6, 1, 10, 10, 10, 3, 10, 5, 10, 5, 6, 1, 6, 3, 9, 2, 5, 2, 7, 3, 9, 6, 9, 2, 6, 2, 8, 4, 10, 6, 10, 2, 7, 5, 9, 4, 8, 5, 8, 3, 5, 3, 8, 2, 10, 2, 9, 6, 8, 2, 5, 4, 9, 8, 8, 4, 8, 5, 9, 3, 6, 2, 7, 3, 6, 2, 8, 5, 9, 5, 5, 1, 6, 2, 8, 1, 8, 1, 6, 3, 10, 6, 6, 5, 9, 6, 6, 3, 8, 6, 7, 1, 4, 1, 10, 10, 10, 5, 10, 3, 9, 4, 8, 3, 9, 3, 10, 4, 8, 3, 6, 1, 8, 1, 10, 4, 5, 1, 9, 3, 10, 2, 9, 3, 6, 4, 10, 3, 8, 3, 7, 4, 8, 6, 8, 3, 5, 1, 9, 1, 4, 2, 8, 3, 7, 5, 7, 5, 8, 4, 9, 3, 4, 2, 5, 1, 6, 2, 10, 1, 8, 1, 5, 3, 7, 5, 9, 5, 7, 1, 8, 4, 8, 2, 4, 2, 10, 2, 10, 4, 8, 4, 9, 1, 5, 4, 9, 2, 10, 8, 8, 4, 6, 3, 8, 2, 10, 3, 3, 2, 4, 1, 5, 3, 10, 7, 9, 4, 7, 6, 10, 2, 5, 4, 5, 5, 9, 7, 10, 7, 9, 4, 7, 7, 7, 1, 10, 3, 10, 10, 10, 9, 10, 5, 8, 3, 3, 1, 3, 2, 7, 1, 7, 1, 9, 8, 10, 4, 9, 8, 9, 3, 7, 6, 8, 4, 7, 3, 10, 8, 10, 3, 10, 2, 9, 1, 10, 6, 10, 1, 9, 3, 7, 6, 7, 4, 4, 4, 4, 1, 9, 3, 7, 5, 6, 2, 2, 1, 8, 6, 8, 3, 5, 3, 6, 2, 8, 5, 10, 3, 7, 2, 10, 6, 10, 3, 10, 2, 5, 4, 9, 8, 10, 6, 8, 7, 8, 1, 10, 4, 6, 6, 9, 3, 6, 6, 8, 1, 10, 5, 9, 2, 4, 4, 7, 2, 9, 7, 8, 1, 8, 2, 7, 1, 4, 3, 9, 4, 10, 5, 6, 2, 5, 5, 6, 1, 5, 3, 8, 5, 7, 6, 9, 2, 10, 2, 9, 3, 10, 4, 8, 1, 9, 3, 7, 6, 9, 3, 9, 5, 8, 6, 9, 9, 10, 6, 10, 6, 10, 6, 9, 1, 3, 2, 10, 7, 7, 5, 7, 1, 10, 6, 8, 3, 10, 5, 9, 7, 10, 8, 10, 8, 10, 4, 7, 3, 7, 5, 7, 1, 6, 1, 10, 1, 6, 1, 7, 2, 8, 7, 10, 3, 9, 3, 7, 1, 7, 5, 9, 6, 10, 10, 10, 2, 6, 3, 8, 4, 6, 5, 10, 5, 10, 4, 8, 3, 9, 3, 4, 3, 7, 1, 9, 5, 7, 5, 7, 1, 5, 2, 8, 1, 5, 1, 8, 3, 8, 8, 9, 2, 8, 6, 7, 2, 5, 5, 6, 1, 9, 1, 3, 2, 7, 4, 9, 8, 10, 2, 9, 5, 8, 1, 7, 2, 9, 2, 8, 7, 10, 5, 6, 4, 7, 5, 6, 1, 9, 4, 10, 8, 8, 2, 9, 4, 9, 4, 9, 1, 7, 1, 1, 1, 9, 2, 6, 2, 5, 4, 10, 3, 10, 4, 6, 5, 9, 1, 9, 2, 8, 5, 7, 3, 10, 4, 8, 1, 6, 2, 6, 4, 7, 5, 10, 6, 10, 4, 7, 4, 8, 2, 9, 1, 4, 4, 10, 8, 9, 1, 10, 3, 8, 5, 9, 3, 5, 4, 5, 1, 5, 3, 7, 1, 7, 1, 9, 5, 7, 2, 8, 3, 7, 4, 8, 1, 9, 5, 7, 1, 10, 7, 8, 5, 6, 1, 9, 3, 8, 1, 2, 1, 3, 3, 4, 1, 3, 2, 8, 3, 10, 3, 10, 2, 6, 1, 5, 1, 4, 1, 8, 3, 10, 5, 8, 3, 10, 6, 9, 1, 10, 1, 6, 4, 8, 1, 8, 2, 7, 1, 10, 1, 1, 1, 7, 4, 8, 1, 6, 3, 7, 2, 3, 2, 8, 7, 9, 7, 8, 3, 7, 1, 5, 3, 8, 8, 10, 5, 9, 3, 9, 6, 10, 6, 8, 2, 8, 3, 6, 3, 8, 4, 9, 4, 5, 4, 7, 3, 9, 3, 9, 7, 10, 5, 8, 2, 9, 7, 9, 3, 5, 4, 9, 5, 10, 2, 10, 6, 9, 3, 8, 7, 10, 2, 9, 4, 7, 7, 8, 6, 7, 6, 10, 1, 7, 5, 9, 7, 8, 1, 10, 6, 8, 3, 10, 10, 10, 1, 9, 3, 10, 1, 8, 6, 8, 6, 9, 2, 7, 7, 7, 1, 6, 4, 10, 6, 8, 4, 7, 1, 6, 3, 10, 4, 5, 4, 6, 6, 8, 2, 7, 3, 3, 1, 4, 4, 8, 6, 7, 4, 7, 6, 6, 5, 9, 2, 10, 2, 10, 3, 6, 5, 10, 1, 10, 2, 7, 6, 9, 9, 9, 1, 9, 5, 7, 3, 5, 4, 8, 6, 9, 1, 7, 2, 10, 2, 5, 2, 4, 4, 10, 7, 10, 5, 9, 5, 10, 2, 7, 6, 10, 4, 9, 4, 5, 5, 9, 1, 2, 2, 5, 1, 8, 4, 9, 2, 10, 5, 8, 1, 5, 4, 8, 4, 7, 3, 5, 4, 8, 1, 8, 2, 5, 3, 8, 5, 7, 1, 7, 2, 5, 1, 5, 2, 8, 1, 8, 7, 10, 7, 9, 7, 8, 3, 5, 1, 4, 3, 6, 3, 9, 4, 8, 3, 6, 3, 9, 2, 7, 6, 6, 5, 8, 4, 8, 5, 8, 7, 10, 7, 7, 3, 6, 3, 9, 6, 7, 5, 5, 2, 9, 5, 8, 2, 9, 5, 10, 7, 8, 4, 5, 1, 9, 2, 6, 5, 9, 3, 8, 6, 10, 3, 6, 4, 10, 4, 7, 2, 5, 5, 6, 4, 9, 4, 9, 4, 7, 3, 9, 3, 6, 4, 4, 4, 10, 7, 9, 1, 7, 2, 6, 2, 8, 2, 4, 1, 6, 3, 4, 1, 10, 2, 6, 1, 9, 5, 6, 5, 7, 3, 10, 9, 10, 4, 10, 3, 10, 1, 8, 3, 10, 4, 9, 4, 8, 7, 9, 3, 6, 3, 8, 2, 6, 4, 8, 4, 10, 1, 9, 5, 9, 2, 7, 6, 10, 7, 8, 4, 8, 2, 9, 5, 8, 6, 8, 6, 9, 7, 8, 1, 7, 5, 7, 1, 7, 4, 9, 2, 8, 3, 10, 2, 7, 6, 9, 7, 8, 8, 8, 1, 9, 7, 8, 5, 7, 4, 6, 2, 8, 3, 7, 5, 9, 4, 7, 4, 9, 6, 10, 3, 10, 2, 10, 6, 10, 3, 7, 4, 10, 7, 9, 7, 10, 5, 8, 1, 10, 5, 9, 1, 6, 3, 9, 4, 9, 1, 6, 1, 7, 1, 4, 3, 3, 1, 10, 4, 9, 2, 9, 7, 7, 6, 9, 3, 3, 1, 9, 4, 9, 7, 9, 8, 10, 2, 8, 2, 4, 1, 10, 3, 6, 3, 7, 2, 5, 1, 10, 4, 10, 3, 6, 3, 10, 3, 10, 7, 8, 5, 9, 6, 9, 8, 10, 6, 7, 5, 10, 4, 8, 3, 9, 3, 8, 2, 9, 5, 10, 6, 8, 1, 4, 1, 6, 6, 6, 6, 9, 3, 9, 8, 9, 1, 8, 6, 8, 7, 10, 7, 8, 3, 4, 3, 6, 5, 7, 1, 7, 5, 6, 4, 6, 5, 7, 3, 10, 5, 10, 5, 9, 1, 8, 6, 8, 6, 9, 1, 7, 2, 9, 3, 7, 6, 7, 7, 8, 2, 10, 1, 9, 5, 8, 6, 7, 7, 10, 8, 8, 6, 7, 2, 9, 7, 9, 3, 4, 3, 9, 6, 7, 2, 8, 2, 10, 7, 8, 2, 8, 3, 7, 5, 9, 2, 6, 4, 6, 4, 10, 8, 10, 5, 5, 2, 5, 2, 4, 3, 10, 1, 8, 3, 8, 4, 9, 7, 10, 8, 10, 5, 8, 1, 6, 2, 7, 3, 9, 1, 7, 3, 10, 2, 10, 1, 9, 2, 8, 5, 10, 9, 10, 7, 10, 2, 5, 2, 3, 1, 10, 2, 7, 4, 8, 5, 7, 2, 10, 3, 6, 1, 3, 2, 8, 7, 8, 4, 9, 1, 10, 8, 10, 3, 8, 6, 8, 1, 10, 5, 7, 2, 6, 4, 7, 2, 9, 3, 9, 2, 7, 3, 6, 1, 3, 3, 10, 6, 8, 7, 9, 1, 7, 1, 7, 3, 8, 2, 8, 3, 8, 4, 7, 5, 7, 4, 7, 6, 9, 3, 8, 3, 9, 3, 9, 2, 5, 2, 3, 1, 4, 2, 4, 2, 5, 2, 10, 7, 9, 1, 9, 2, 9, 4, 9, 6, 10, 8, 8, 3, 9, 6, 8, 2, 7, 7, 9, 5, 10, 3, 8, 8, 10, 3, 5, 2, 4, 1, 9, 4, 10, 2, 7, 2, 8, 4, 10, 5, 9, 6, 10, 8, 8, 3, 6, 4, 10, 2, 5, 3, 9, 4, 10, 8, 9, 2, 5, 4, 7, 3, 5, 5, 7, 6, 10, 5, 8, 7, 9, 4, 10, 2, 9, 1, 9, 3, 10, 5, 8, 2, 7, 1, 8, 4, 10, 5, 9, 1, 7, 5, 6, 2, 6, 2, 5, 3, 10, 3, 9, 5, 9, 6, 8, 1, 8, 2, 4, 4, 9, 3, 8, 7, 9, 1, 4, 3, 4, 3, 8, 2, 10, 8, 9, 5, 8, 5, 7, 6, 10, 9, 9, 4, 6, 3, 10, 5, 10, 6, 8, 1, 6, 3, 4, 2, 10, 5, 6, 4, 9, 2, 5, 5, 10, 6, 8, 2, 7, 3, 10, 6, 10, 4, 6, 1, 6, 2, 9, 3, 5, 1, 9, 4, 6, 2, 10, 6, 9, 4, 7, 1, 7, 3, 8, 4, 8, 3, 9, 2, 7, 4, 8, 6, 7, 2, 10, 1, 3, 1, 5, 3, 3, 3, 5, 2, 6, 3, 7, 4, 9, 8, 9, 2, 4, 2, 4, 4, 6, 3, 8, 2, 10, 4, 5, 2, 8, 3, 8, 2, 10, 7, 9, 2, 9, 1, 8, 7, 7, 3, 8, 1, 8, 2, 8, 8, 9, 3, 4, 1, 10, 1, 3, 1, 3, 2, 3, 1, 9, 1, 7, 4, 10, 7, 10, 8, 9, 4, 10, 2, 9, 4, 5, 3, 6, 3, 9, 3, 10, 4, 10, 3, 7, 2, 6, 3, 10, 8, 9, 3, 8, 2, 9, 5, 6, 3, 6, 3, 6, 5, 9, 7, 9, 7, 9, 9, 10, 2, 9, 2, 2, 2, 10, 4, 7, 6, 10, 1, 9, 7, 8, 7, 8, 3, 6, 4, 10, 5, 7, 4, 7, 5, 6, 5, 10, 3, 8, 6, 8, 2, 10, 5, 8, 3, 7, 4, 7, 2, 4, 1, 9, 1, 9, 6, 8, 1, 9, 5, 10, 5, 10, 3, 9, 7, 10, 5, 7, 6, 10, 5, 5, 1, 9, 7, 10, 7, 10, 4, 7, 2, 8, 3, 5, 2, 5, 4, 10, 3, 5, 5, 8, 8, 9, 4, 8, 1, 8, 4, 7, 4, 5, 1, 6, 4, 6, 4, 10, 3, 8, 7, 8, 2, 6, 2, 7, 5, 10, 2, 5, 1, 9, 1, 9, 6, 8, 2, 10, 8, 9, 3, 7, 1, 7, 1, 6, 1, 5, 5, 10, 8, 10, 2, 8, 1, 7, 2, 6, 1, 4, 1, 3, 1, 10, 3, 8, 1, 5, 3, 5, 3, 10, 6, 8, 2, 8, 2, 7, 2, 8, 1, 6, 2, 6, 2, 10, 4, 10, 7, 10, 6, 8, 1, 7, 3, 10, 5, 6, 6, 8, 7, 8, 2, 10, 7, 8, 2, 3, 2, 8, 3, 9, 4, 9, 5, 8, 6, 6, 1, 9, 2, 10, 2, 10, 5, 9, 1, 1, 1, 6, 3, 4, 3, 5, 4, 7, 4, 5, 1, 10, 3, 5, 1, 10, 2, 10, 2, 10, 1, 5, 2, 8, 2, 4, 2, 10, 6, 7, 2, 8, 1, 7, 4, 9, 4, 6, 1, 8, 2, 6, 2, 6, 5, 10, 7, 10, 2, 5, 2, 5, 3, 7, 5, 10, 1, 5, 4, 5, 1, 4, 2, 9, 4, 7, 1, 9, 2, 10, 3, 6, 1, 3, 2, 8, 3, 7, 4, 7, 4, 5, 4, 7, 2, 9, 1, 7, 7, 7, 1, 5, 1, 7, 1, 4, 2, 4, 1, 7, 3, 6, 1, 7, 3, 10, 5, 7, 6, 6, 1, 4, 2, 9, 4, 5, 5, 9, 3, 8, 5, 10, 8, 10, 9, 9, 2, 8, 4, 9, 7, 8, 6, 7, 1, 4, 2, 9, 7, 8, 2, 7, 3, 9, 2, 10, 4, 10, 10, 10, 1, 6, 1, 5, 1, 2, 1, 9, 5, 5, 5, 9, 4, 10, 6, 10, 1, 4, 4, 8, 5, 6, 2, 10, 10, 10, 1, 9, 5, 8, 4, 9, 3, 5, 3, 5, 1, 10, 4, 7, 5, 5, 1, 10, 4, 10, 2, 10, 2, 8, 1, 8, 2, 8, 7, 7, 2, 8, 2, 9, 3, 6, 3, 7, 6, 7, 7, 10, 8, 10, 7, 8, 1, 8, 3, 9, 2, 8, 3, 10, 3, 6, 2, 8, 4, 8, 4, 8, 2, 6, 3, 6, 3, 9, 7, 10, 4, 9, 7, 8, 6, 9, 5, 8, 6, 9, 7, 10, 1, 10, 2, 7, 6, 6, 1, 9, 3, 7, 5, 6, 5, 6, 6, 6, 6, 9, 2, 7, 3, 6, 1, 8, 2, 8, 2, 7, 4, 9, 2, 10, 1, 7, 1, 6, 1, 6, 1, 4, 2, 8, 2, 9, 2, 5, 3, 10, 4, 8, 3, 5, 5, 10, 7, 8, 5, 10, 6, 9, 4, 7, 7, 10, 6, 10, 2, 8, 5, 10, 1, 9, 1, 7, 2, 5, 1, 10, 3, 7, 2, 8, 3, 10, 4, 9, 5, 7, 2, 6, 6, 7, 3, 5, 1, 6, 1, 9, 6, 8, 5, 6, 1, 6, 2, 9, 1, 5, 5, 9, 5, 8, 1, 10, 5, 6, 1, 6, 5, 8, 1, 5, 5, 10, 1, 10, 3, 4, 2, 7, 2, 9, 4, 7, 5, 8, 8, 10, 5, 10, 5, 9, 3, 7, 4, 9, 2, 6, 1, 8, 3, 6, 4, 10, 6, 8, 1, 7, 1, 4, 2, 7, 3, 10, 1, 9, 1, 8, 1, 8, 7, 10, 1, 9, 1, 10, 8, 9, 5, 8, 3, 9, 2, 4, 3, 5, 1, 5, 3, 10, 3, 6, 3, 6, 4, 7, 3, 7, 2, 9, 8, 8, 3, 6, 4, 6, 4, 10, 2, 10, 9, 10, 8, 10, 2, 9, 3, 4, 1, 2, 1, 10, 2, 9, 1, 5, 5, 10, 5, 8, 2, 9, 6, 7, 1, 3, 1, 8, 5, 8, 2, 8, 1, 5, 3, 10, 1, 9, 5, 10, 7, 8, 3, 4, 3, 10, 6, 10, 1, 9, 3, 10, 3, 5, 2, 7, 3, 6, 6, 8, 5, 8, 3, 8, 2, 4, 1, 10, 4, 6, 2, 10, 4, 5, 4, 10, 6, 6, 2, 7, 3, 7, 4, 8, 2, 7, 4, 6, 2, 10, 2, 4, 4, 10, 3, 7, 5, 9, 7, 9, 1, 3, 2, 8, 7, 10, 2, 8, 3, 7, 5, 10, 8, 10, 2, 3, 1, 7, 6, 9, 2, 8, 5, 9, 7, 9, 6, 8, 4, 5, 4, 9, 4, 9, 8, 9, 6, 7, 2, 7, 5, 10, 6, 9, 4, 8, 4, 4, 2, 8, 1, 9, 3, 10, 5, 7, 4, 8, 2, 9, 1, 8, 5, 6, 5, 5, 1, 9, 7, 10, 8, 9, 5, 10, 3, 10, 3, 9, 3, 7, 4, 8, 6, 9, 4, 7, 4, 10, 4, 6, 5, 6, 1, 10, 2, 7, 2, 10, 1, 9, 6, 8, 1, 8, 1, 5, 1, 6, 2, 4, 2, 9, 6, 10, 6, 7, 2, 3, 1, 4, 2, 5, 4, 10, 2, 7, 3, 7, 2, 8, 3, 6, 2, 10, 5, 5, 5, 8, 4, 8, 5, 9, 9, 9, 4, 5, 4, 8, 5, 7, 7, 9, 6, 9, 1, 8, 2, 5, 1, 9, 3, 7, 3, 10, 8, 10, 1, 10, 9, 10, 2, 10, 2, 6, 3, 7, 1, 7, 1, 10, 1, 6, 3, 8, 4, 5, 1, 10, 4, 10, 5, 10, 2, 6, 1, 5, 1, 8, 5, 8, 4, 6, 5, 6, 5, 7, 1, 6, 2, 8, 1, 2, 1, 9, 2, 10, 2, 3, 3, 9, 1, 8, 2, 10, 5, 7, 1, 6, 3, 8, 7, 9, 5, 7, 7, 9, 1, 3, 1, 2, 1, 5, 5, 9, 4, 8, 3, 6, 3, 4, 3, 10, 6, 9, 3, 6, 1, 4, 1, 9, 2, 10, 5, 7, 3, 10, 5, 8, 6, 10, 1, 7, 1, 7, 5, 7, 1, 8, 2, 7, 2, 9, 2, 8, 5, 9, 6, 7, 3, 7, 4, 7, 2, 7, 3, 9, 3, 7, 6, 7, 1, 4, 4, 5, 2, 6, 2, 3, 3, 10, 3, 8, 2, 6, 3, 6, 6, 8, 3, 6, 4, 9, 1, 7, 3, 6, 5, 9, 3, 7, 2, 10, 2, 9, 6, 8, 1, 2, 2, 3, 2, 10, 1, 7, 4, 7, 5, 6, 4, 10, 4, 8, 5, 8, 3, 8, 4, 6, 1, 10, 3, 8, 5, 9, 2, 6, 1, 5, 2, 10, 4, 8, 4, 9, 5, 6, 2, 9, 3, 7, 4, 5, 3, 10, 7, 10, 1, 8, 2, 10, 5, 8, 6, 9, 2, 8, 2, 10, 5, 8, 1, 5, 3, 5, 1, 8, 2, 6, 2, 8, 4, 6, 4, 5, 4, 6, 5, 10, 9, 10, 5, 10, 5, 6, 1, 10, 4, 9, 1, 9, 6, 7, 5, 7, 4, 9, 6, 9, 1, 7, 1, 9, 2, 9, 5, 7, 1, 8, 5, 10, 1, 2, 1, 4, 1, 10, 2, 6, 4, 8, 6, 6, 6, 7, 1, 10, 3, 9, 4, 8, 3, 4, 3, 9, 4, 7, 3, 7, 5, 6, 1, 6, 1, 8, 7, 9, 5, 9, 2, 5, 3, 9, 7, 10, 3, 8, 4, 9, 6, 7, 2, 6, 2, 4, 4, 10, 4, 6, 3, 5, 5, 10, 5, 10, 6, 7, 6, 9, 1, 9, 2, 8, 1, 9, 6, 10, 2, 8, 1, 8, 2, 9, 5, 7, 6, 10, 7, 10, 3, 8, 4, 9, 2, 9, 3, 7, 3, 6, 2, 4, 3, 6, 1, 3, 2, 8, 2, 10, 6, 9, 1, 8, 1, 4, 4, 8, 4, 6, 4, 10, 1, 9, 5, 8, 6, 10, 8, 8, 8, 9, 3, 9, 2, 8, 7, 9, 8, 10, 5, 8, 4, 7, 6, 10, 1, 9, 3, 7, 4, 4, 1, 9, 1, 6, 1, 10, 3, 10, 2, 9, 5, 7, 3, 4, 3, 5, 5, 10, 1, 10, 2, 8, 1, 7, 1, 9, 3, 5, 2, 10, 1, 7, 3, 7, 6, 9, 2, 10, 5, 10, 5, 9, 1, 7, 2, 9, 3, 4, 1, 7, 3, 10, 6, 9, 4, 6, 4, 6, 1, 7, 6, 7, 7, 9, 1, 8, 2, 7, 5, 7, 1, 5, 1, 8, 4, 9, 7, 10, 3, 9, 3, 10, 7, 10, 7, 8, 3, 6, 2, 9, 4, 5, 1, 5, 1, 5, 2, 3, 2, 9, 6, 7, 6, 8, 4, 7, 5, 5, 5, 7, 5, 5, 5, 6, 1, 4, 1, 3, 1, 6, 1, 8, 2, 5, 4, 7, 5, 10, 2, 10, 7, 10, 9, 9, 4, 8, 3, 6, 5, 10, 1, 9, 2, 9, 6, 8, 1, 7, 6, 8, 4, 10, 7, 9, 1, 8, 2, 9, 4, 4, 2, 8, 7, 7, 1, 3, 2, 10, 7, 8, 1, 6, 3, 9, 8, 9, 4, 6, 4, 7, 6, 6, 1, 6, 2, 4, 1, 9, 2, 5, 1, 6, 2, 9, 2, 2, 1, 6, 2, 9, 8, 10, 4, 7, 3, 8, 4, 10, 5, 6, 2, 9, 8, 10, 2, 3, 1, 9, 2, 8, 3, 7, 3, 9, 4, 6, 5, 9, 1, 7, 1, 6, 2, 3, 1, 10, 7, 10, 3, 9, 2, 8, 4, 8, 5, 10, 7, 9, 1, 4, 3, 7, 3, 4, 2, 8, 3, 7, 6, 10, 2, 7, 3, 8, 7, 9, 2, 2, 2, 5, 5, 10, 5, 10, 6, 9, 9, 9, 6, 8, 8, 10, 8, 8, 4, 8, 8, 9, 5, 10, 2, 6, 6, 7, 7, 8, 2, 9, 3, 6, 6, 9, 8, 10, 7, 8, 1, 10, 1, 8, 3, 8, 3, 4, 3, 9, 8, 10, 5, 7, 3, 9, 2, 6, 3, 8, 6, 10, 7, 10, 5, 8, 4, 6, 1, 3, 2, 5, 3, 4, 1, 7, 4, 10, 7, 10, 4, 10, 5, 8, 1, 7, 4, 8, 2, 10, 4, 10, 5, 8, 6, 10, 1, 8, 3, 9, 6, 8, 2, 5, 3, 10, 1, 4, 3, 7, 3, 10, 1, 8, 5, 8, 6, 10, 6, 10, 2, 8, 3, 3, 2, 5, 3, 6, 2, 3, 2, 10, 3, 9, 6, 10, 3, 5, 3, 10, 2, 7, 2, 7, 3, 10, 6, 9, 7, 10, 8, 10, 8, 10, 8, 10, 7, 9, 4, 9, 5, 7, 6, 10, 2, 5, 3, 7, 2, 8, 7, 7, 5, 10, 7, 10, 1, 7, 2, 4, 4, 10, 1, 2, 1, 7, 2, 6, 3, 5, 3, 7, 5, 6, 5, 10, 6, 9, 8, 10, 2, 9, 2, 7, 3, 6, 6, 10, 2, 6, 4, 7, 4, 5, 2, 6, 2, 7, 2, 10, 2, 8, 4, 7, 5, 5, 1, 9, 4, 6, 5, 7, 7, 9, 6, 10, 3, 9, 4, 6, 1, 6, 5, 10, 6, 8, 3, 5, 3, 8, 2, 9, 4, 10, 8, 10, 5, 8, 5, 8, 2, 10, 8, 8, 1, 6, 1, 10, 3, 7, 2, 8, 2, 8, 1, 10, 6, 10, 4, 10, 3, 10, 6, 7, 1, 8, 2, 10, 5, 5, 1, 10, 3, 10, 6, 8, 3, 8, 5, 9, 3, 10, 5, 7, 6, 10, 7, 8, 2, 7, 1, 4, 3, 6, 4, 10, 8, 10, 3, 8, 8, 9, 8, 9, 6, 8, 2, 7, 4, 6, 1, 6, 4, 5, 4, 9, 8, 9, 9, 10, 6, 9, 4, 7, 2, 8, 5, 7, 5, 10, 3, 9, 4, 9, 8, 9, 1, 5, 3, 6, 4, 9, 8, 9, 7, 9, 4, 10, 7, 9, 7, 10, 3, 5, 4, 10, 4, 10, 3, 3, 2, 9, 1, 7, 2, 3, 3, 9, 2, 6, 2, 6, 6, 10, 3, 9, 3, 6, 1, 6, 4, 8, 1, 3, 2, 8, 1, 10, 3, 9, 5, 5, 4, 5, 1, 4, 2, 8, 7, 8, 5, 8, 5, 8, 4, 7, 4, 10, 4, 10, 9, 10, 2, 10, 8, 10, 1, 10, 7, 10, 3, 9, 2, 10, 4, 5, 3, 3, 3, 4, 3, 10, 5, 8, 3, 6, 2, 3, 2, 9, 1, 9, 2, 8, 2, 7, 1, 7, 3, 10, 7, 10, 1, 8, 5, 10, 2, 7, 4, 8, 3, 5, 2, 9, 3, 8, 3, 8, 4, 9, 3, 6, 6, 10, 5, 9, 8, 8, 4, 9, 9, 10, 1, 5, 3, 6, 2, 4, 2, 8, 6, 6, 4, 10, 2, 10, 1, 10, 3, 8, 2, 5, 1, 3, 3, 8, 4, 7, 3, 9, 1, 5, 4, 7, 2, 10, 2, 10, 4, 6, 1, 3, 2, 5, 2, 4, 3, 4, 3, 9, 3, 6, 6, 10, 7, 8, 4, 10, 3, 7, 1, 10, 6, 7, 3, 5, 3, 10, 3, 10, 10, 10, 1, 10, 3, 8, 7, 10, 1, 2, 2, 10, 3, 7, 7, 10, 6, 9, 3, 6, 1, 6, 2, 8, 2, 8, 7, 8, 2, 8, 5, 10, 7, 10, 6, 10, 6, 8, 4, 9, 1, 9, 8, 8, 1, 8, 7, 8, 4, 7, 6, 8, 1, 8, 1, 10, 1, 3, 2, 9, 6, 10, 6, 8, 2, 5, 3, 8, 4, 9, 6, 9, 3, 8, 3, 6, 3, 7, 2, 8, 7, 7, 2, 5, 5, 6, 1, 8, 1, 9, 2, 5, 2, 9, 6, 10, 2, 8, 4, 8, 6, 7, 6, 7, 7, 9, 2, 10, 1, 6, 5, 8, 2, 9, 3, 9, 2, 5, 2, 10, 4, 6, 2, 3, 3, 9, 4, 5, 2, 5, 3, 8, 1, 3, 1, 4, 1, 9, 3, 10, 5, 10, 3, 6, 4, 9, 8, 9, 1, 5, 1, 1, 1, 7, 3, 7, 2, 5, 2, 2, 2, 7, 4, 9, 4, 9, 5, 10, 3, 6, 5, 8, 1, 9, 3, 5, 1, 8, 1, 5, 3, 10, 4, 9, 3, 6, 6, 7, 1, 3, 1, 8, 5, 8, 5, 8, 7, 10, 6, 9, 1, 9, 1, 7, 3, 6, 2, 8, 1, 7, 1, 10, 4, 9, 4, 10, 7, 10, 1, 9, 8, 10, 6, 8, 3, 9, 1, 7, 1, 6, 3, 10, 3, 7, 4, 10, 4, 7, 2, 3, 3, 4, 2, 9, 3, 10, 3, 9, 6, 10, 2, 6, 1, 10, 3, 7, 5, 7, 2, 5, 1, 9, 2, 10, 1, 4, 3, 10, 5, 5, 4, 8, 6, 10, 6, 9, 1, 10, 7, 9, 1, 6, 4, 5, 5, 9, 2, 8, 1, 9, 1, 6, 1, 3, 3, 3, 1, 7, 3, 6, 3, 7, 6, 6, 2, 5, 3, 7, 3, 6, 1, 5, 3, 5, 1, 4, 1, 7, 4, 8, 6, 9, 1, 8, 2, 6, 3, 8, 4, 5, 2, 8, 5, 7, 6, 9, 5, 10, 4, 10, 7, 10, 9, 10, 5, 8, 1, 5, 4, 5, 1, 10, 4, 5, 4, 6, 2, 8, 3, 8, 3, 6, 4, 9, 7, 9, 4, 10, 2, 3, 3, 9, 7, 10, 1, 8, 5, 6, 1, 4, 1, 10, 2, 8, 4, 9, 7, 8, 1, 6, 1, 5, 3, 4, 4, 8, 4, 7, 5, 9, 2, 8, 2, 5, 4, 8, 6, 8, 2, 7, 5, 6, 2, 5, 3, 4, 3, 10, 2, 6, 3, 8, 3, 5, 4, 9, 5, 6, 1, 7, 6, 10, 4, 6, 3, 6, 3, 5, 3, 7, 4, 9, 8, 10, 6, 9, 4, 7, 1, 6, 4, 7, 4, 5, 2, 4, 3, 7, 4, 7, 5, 7, 4, 7, 6, 7, 7, 10, 2, 6, 4, 5, 4, 6, 3, 8, 3, 10, 4, 6, 2, 5, 3, 10, 7, 9, 5, 7, 7, 9, 4, 8, 4, 10, 3, 6, 4, 10, 8, 10, 6, 10, 5, 6, 4, 6, 2, 6, 5, 6, 2, 6, 3, 6, 3, 8, 4, 7, 5, 8, 6, 9, 7, 9, 7, 7, 3, 5, 3, 8, 5, 9, 4, 8, 3, 6, 4, 8, 6, 10, 2, 7, 3, 10, 4, 7, 2, 3, 2, 8, 4, 7, 4, 7, 6, 9, 2, 8, 2, 10, 3, 8, 4, 6, 5, 9, 3, 8, 3, 8, 6, 7, 2, 3, 3, 6, 2, 4, 3, 7, 5, 9, 4, 9, 4, 7, 6, 7, 4, 10, 1, 4, 1, 10, 5, 8, 6, 10, 2, 8, 8, 10, 5, 7, 4, 5, 3, 3, 3, 3, 2, 3, 1, 3, 3, 10, 5, 10, 4, 10, 6, 10, 8, 10, 9, 10, 2, 3, 2, 5, 3, 10, 2, 10, 3, 10, 3, 10, 6, 9, 8, 10, 2, 10, 6, 10, 7, 8, 3, 8, 4, 5, 2, 10, 4, 7, 2, 6, 4, 5, 3, 10, 5, 10, 5, 9, 1, 5, 5, 9, 4, 8, 6, 7, 1, 6, 3, 9, 4, 9, 5, 10, 1, 5, 2, 2, 1, 8, 6, 7, 4, 5, 2, 7, 1, 10, 2, 10, 1, 7, 3, 6, 1, 10, 4, 7, 4, 7, 2, 3, 3, 8, 6, 7, 7, 9, 7, 8, 1, 5, 5, 10, 6, 8, 7, 10, 3, 7, 3, 10, 6, 9, 3, 9, 6, 8, 1, 6, 5, 7, 5, 6, 6, 9, 5, 9, 5, 7, 4, 7, 6, 10, 4, 7, 2, 6, 6, 8, 7, 7, 3, 7, 5, 6, 1, 10, 10, 10, 5, 7, 2, 8, 1, 7, 2, 9, 1, 9, 5, 7, 2, 9, 9, 10, 3, 5, 2, 2, 1, 7, 2, 7, 1, 9, 1, 5, 5, 5, 1, 5, 1, 8, 3, 5, 2, 7, 4, 5, 2, 7, 2, 7, 2, 4, 1, 6, 4, 10, 1, 4, 2, 9, 6, 8, 2, 9, 5, 9, 6, 9, 1, 10, 6, 9, 6, 10, 1, 9, 5, 8, 1, 4, 2, 7, 1, 3, 2, 8, 2, 4, 3, 8, 6, 10, 2, 7, 7, 8, 2, 10, 10, 10, 8, 10, 2, 10, 3, 6, 3, 9, 9, 10, 2, 7, 4, 4, 3, 9, 2, 6, 1, 10, 4, 10, 5, 9, 2, 8, 2, 7, 3, 4, 2, 9, 3, 9, 1, 4, 2, 2, 1, 10, 8, 10, 1, 5, 1, 3, 1, 10, 4, 10, 1, 7, 1, 7, 6, 9, 3, 7, 6, 6, 1, 7, 3, 9, 7, 10, 7, 8, 2, 4, 1, 5, 3, 9, 8, 8, 4, 7, 4, 7, 6, 6, 3, 5, 1, 7, 3, 9, 4, 5, 4, 7, 1, 10, 7, 8, 2, 4, 1, 8, 5, 6, 5, 6, 1, 9, 7, 10, 3, 4, 1, 9, 1, 5, 4, 8, 6, 10, 8, 8, 4, 5, 1, 9, 2, 6, 1, 8, 7, 8, 2, 8, 1, 7, 4, 6, 2, 4, 1, 6, 3, 9, 8, 9, 4, 9, 6, 10, 2, 10, 7, 9, 2, 10, 7, 10, 3, 8, 1, 10, 2, 9, 3, 8, 4, 6, 4, 4, 3, 9, 2, 8, 6, 6, 1, 10, 2, 3, 1, 8, 3, 6, 5, 7, 1, 10, 4, 8, 5, 8, 3, 7, 2, 9, 2, 9, 2, 7, 3, 8, 1, 7, 2, 7, 1, 6, 6, 9, 3, 10, 5, 9, 6, 8, 2, 8, 2, 5, 5, 9, 3, 7, 3, 5, 2, 4, 4, 5, 2, 5, 4, 9, 5, 9, 4, 7, 6, 6, 2, 5, 2, 4, 1, 9, 1, 5, 1, 6, 1, 7, 3, 9, 2, 5, 2, 8, 3, 6, 4, 9, 1, 4, 2, 7, 6, 7, 7, 8, 2, 3, 3, 10, 1, 7, 4, 9, 5, 8, 3, 7, 6, 9, 2, 5, 4, 10, 3, 7, 4, 10, 5, 10, 5, 9, 6, 10, 1, 8, 3, 5, 3, 10, 1, 5, 4, 4, 1, 9, 1, 9, 1, 6, 2, 8, 6, 9, 1, 6, 5, 9, 2, 5, 4, 6, 2, 8, 1, 8, 5, 6, 2, 5, 5, 8, 2, 8, 2, 3, 2, 10, 2, 4, 3, 8, 4, 6, 4, 8, 1, 8, 5, 9, 4, 8, 6, 9, 3, 9, 3, 9, 3, 6, 4, 9, 3, 7, 5, 9, 5, 6, 2, 10, 3, 10, 2, 10, 5, 9, 2, 10, 6, 9, 1, 10, 3, 9, 7, 10, 6, 10, 5, 8, 2, 10, 3, 6, 4, 6, 4, 10, 2, 7, 5, 7, 2, 2, 1, 5, 1, 3, 2, 10, 2, 4, 1, 6, 1, 9, 7, 7, 7, 9, 7, 8, 5, 7, 1, 6, 4, 6, 1, 5, 2, 4, 2, 8, 2, 5, 4, 5, 2, 9, 5, 6, 1, 10, 7, 10, 9, 9, 3, 6, 3, 10, 5, 7, 4, 5, 4, 7, 5, 9, 6, 10, 3, 6, 3, 5, 1, 7, 1, 10, 1, 7, 1, 10, 8, 9, 4, 5, 2, 8, 2, 10, 5, 7, 1, 5, 1, 10, 4, 9, 6, 10, 5, 9, 1, 5, 5, 9, 7, 8, 3, 9, 5, 10, 8, 10, 5, 7, 6, 10, 2, 6, 3, 6, 3, 9, 7, 9, 4, 9, 5, 10, 1, 8, 1, 10, 2, 7, 4, 7, 3, 6, 6, 10, 2, 10, 7, 10, 8, 10, 3, 9, 7, 9, 4, 10, 4, 7, 1, 10, 2, 10, 8, 9, 3, 5, 1, 4, 3, 8, 4, 8, 3, 5, 4, 6, 1, 8, 1, 8, 4, 6, 1, 8, 6, 10, 2, 7, 3, 10, 8, 9, 1, 5, 2, 10, 6, 8, 4, 5, 5, 7, 1, 8, 3, 6, 2, 9, 4, 8, 1, 8, 7, 9, 7, 8, 1, 10, 2, 6, 2, 9, 6, 7, 1, 4, 2, 9, 9, 9, 4, 9, 2, 5, 3, 8, 2, 3, 1, 6, 5, 8, 7, 8, 2, 8, 2, 10, 1, 10, 4, 8, 5, 8, 1, 7, 1, 10, 4, 9, 6, 6, 6, 9, 6, 8, 7, 7, 2, 10, 1, 6, 1, 9, 4, 6, 3, 6, 2, 3, 1, 8, 2, 9, 6, 7, 3, 4, 3, 7, 1, 5, 5, 8, 4, 6, 3, 5, 2, 4, 2, 9, 1, 6, 2, 5, 5, 7, 1, 8, 5, 8, 2, 9, 1, 3, 3, 3, 1, 5, 2, 8, 4, 5, 2, 3, 1, 4, 3, 8, 2, 8, 5, 6, 1, 5, 2, 10, 1, 9, 3, 7, 5, 5, 4, 9, 5, 7, 4, 6, 5, 9, 3, 3, 1, 9, 4, 9, 3, 6, 5, 9, 2, 9, 4, 10, 4, 9, 7, 8, 2, 2, 1, 6, 1, 8, 7, 7, 3, 8, 4, 9, 7, 9, 2, 5, 4, 8, 5, 7, 1, 5, 1, 9, 2, 5, 3, 10, 4, 6, 3, 10, 2, 9, 3, 6, 1, 10, 4, 10, 7, 7, 3, 8, 4, 7, 4, 8, 3, 6, 5, 7, 2, 5, 1, 8, 1, 9, 1, 7, 5, 10, 7, 8, 1, 3, 1, 9, 1, 10, 4, 8, 2, 8, 5, 6, 5, 7, 6, 7, 1, 7, 1, 8, 4, 10, 1, 5, 2, 8, 4, 7, 3, 7, 5, 10, 5, 5, 3, 6, 4, 10, 7, 9, 1, 7, 5, 7, 6, 10, 6, 7, 3, 3, 2, 6, 5, 8, 5, 8, 2, 6, 3, 4, 2, 8, 2, 10, 1, 7, 5, 8, 1, 9, 6, 7, 5, 9, 2, 7, 6, 8, 6, 7, 1, 3, 1, 7, 3, 8, 8, 8, 1, 7, 2, 8, 4, 8, 3, 8, 7, 10, 1, 7, 3, 7, 1, 6, 4, 7, 1, 7, 4, 7, 6, 9, 3, 9, 7, 10, 7, 9, 2, 8, 6, 6, 1, 8, 5, 6, 1, 6, 6, 10, 4, 10, 3, 10, 5, 7, 5, 10, 7, 9, 2, 10, 8, 9, 1, 8, 4, 8, 7, 8, 1, 8, 2, 6, 5, 7, 2, 6, 4, 6, 2, 7, 5, 7, 1, 7, 4, 6, 1, 8, 4, 10, 4, 10, 5, 9, 6, 9, 5, 8, 1, 8, 4, 6, 5, 7, 1, 5, 3, 10, 5, 7, 2, 6, 3, 9, 9, 9, 2, 8, 2, 7, 6, 8, 1, 9, 1, 6, 5, 7, 5, 5, 1, 7, 1, 9, 2, 8, 2, 6, 2, 6, 6, 7, 3, 5, 5, 9, 1, 8, 6, 7, 3, 7, 6, 8, 2, 8, 4, 6, 2, 4, 1, 9, 3, 3, 1, 10, 6, 8, 1, 9, 3, 4, 2, 10, 1, 8, 8, 8, 2, 9, 7, 8, 3, 5, 1, 6, 5, 6, 3, 8, 5, 6, 2, 7, 4, 5, 4, 6, 3, 10, 2, 10, 3, 9, 6, 10, 7, 8, 3, 9, 4, 8, 6, 8, 1, 8, 3, 8, 3, 5, 4, 10, 4, 9, 5, 6, 5, 9, 1, 6, 5, 8, 2, 6, 3, 7, 1, 10, 9, 10, 2, 3, 3, 10, 8, 9, 1, 3, 1, 9, 4, 10, 6, 6, 1, 10, 3, 4, 2, 10, 2, 10, 5, 9, 9, 10, 4, 8, 2, 8, 2, 3, 1, 7, 1, 4, 4, 10, 5, 10, 1, 5, 1, 8, 2, 8, 1, 8, 4, 10, 8, 10, 1, 10, 2, 8, 6, 10, 7, 9, 7, 8, 7, 8, 2, 5, 4, 8, 8, 10, 5, 6, 1, 6, 1, 5, 1, 5, 3, 8, 2, 6, 3, 8, 6, 9, 6, 9, 4, 8, 4, 7, 5, 8, 2, 7, 6, 6, 3, 5, 3, 5, 5, 10, 3, 9, 1, 8, 2, 6, 5, 8, 8, 9, 5, 7, 3, 10, 1, 5, 2, 2, 1, 4, 3, 6, 2, 7, 3, 5, 3, 9, 3, 10, 5, 7, 3, 7, 4, 8, 6, 9, 3, 5, 2, 5, 1, 9, 5, 7, 4, 10, 2, 5, 1, 6, 6, 8, 3, 7, 6, 9, 6, 9, 8, 9, 2, 6, 2, 8, 1, 5, 2, 9, 4, 7, 3, 6, 2, 4, 2, 10, 1, 8, 7, 9, 7, 8, 2, 10, 4, 7, 2, 3, 2, 7, 1, 9, 2, 6, 3, 9, 5, 8, 1, 6, 2, 9, 1, 10, 3, 10, 9, 9, 1, 8, 3, 9, 4, 10, 4, 10, 5, 8, 4, 10, 1, 8, 2, 10, 7, 9, 7, 10, 4, 6, 2, 10, 3, 4, 3, 9, 5, 5, 1, 8, 2, 6, 2, 7, 4, 10, 8, 10, 1, 9, 4, 9, 4, 9, 2, 8, 1, 6, 1, 7, 6, 7, 1, 9, 7, 10, 2, 10, 5, 9, 2, 6, 1, 6, 4, 9, 1, 8, 2, 8, 4, 10, 1, 3, 2, 9, 3, 10, 8, 10, 1, 5, 1, 9, 5, 10, 4, 6, 4, 10, 2, 9, 3, 5, 3, 3, 2, 9, 7, 8, 7, 8, 1, 4, 1, 5, 1, 10, 3, 4, 1, 9, 3, 5, 4, 4, 1, 10, 4, 10, 3, 7, 5, 7, 4, 6, 4, 10, 2, 8, 6, 8, 5, 9, 3, 5, 3, 7, 4, 8, 6, 8, 7, 7, 2, 9, 4, 8, 2, 7, 2, 6, 3, 5, 2, 7, 5, 8, 3, 10, 4, 10, 6, 8, 3, 8, 3, 9, 7, 8, 3, 7, 1, 5, 4, 10, 6, 10, 4, 6, 3, 10, 4, 7, 4, 5, 3, 8, 3, 5, 2, 7, 5, 6, 4, 10, 7, 10, 2, 9, 2, 9, 2, 8, 4, 5, 3, 3, 2, 9, 7, 8, 4, 7, 6, 9, 6, 6, 2, 7, 3, 9, 3, 6, 2, 4, 1, 5, 5, 9, 2, 6, 1, 8, 3, 9, 1, 8, 2, 10, 4, 7, 7, 7, 4, 9, 3, 7, 4, 6, 4, 7, 1, 9, 3, 4, 1, 8, 3, 6, 3, 8, 3, 6, 1, 9, 1, 10, 5, 10, 6, 7, 4, 6, 1, 10, 7, 10, 3, 9, 4, 9, 2, 7, 2, 9, 1, 7, 3, 9, 3, 10, 3, 8, 7, 8, 4, 10, 2, 7, 7, 10, 2, 6, 6, 7, 1, 6, 2, 3, 3, 10, 4, 7, 2, 7, 3, 10, 3, 7, 5, 10, 9, 10, 4, 5, 1, 10, 6, 7, 2, 7, 5, 10, 1, 5, 4, 7, 1, 5, 2, 8, 4, 5, 2, 10, 3, 10, 4, 9, 7, 8, 6, 7, 4, 8, 3, 8, 4, 6, 4, 5, 2, 9, 3, 6, 5, 6, 1, 10, 5, 8, 4, 9, 3, 4, 2, 7, 6, 6, 2, 9, 6, 7, 4, 9, 1, 8, 6, 8, 4, 10, 3, 7, 6, 9, 4, 10, 6, 10, 8, 8, 4, 5, 1, 10, 4, 10, 6, 7, 3, 5, 3, 7, 1, 8, 1, 9, 2, 6, 4, 10, 5, 6, 4, 10, 5, 6, 3, 8, 3, 5, 3, 6, 3, 5, 2, 7, 2, 3, 1, 10, 3, 8, 2, 9, 1, 5, 5, 9, 1, 9, 2, 8, 2, 9, 3, 9, 2, 6, 4, 10, 4, 10, 5, 9, 2, 10, 8, 10, 7, 10, 1, 8, 6, 10, 3, 10, 1, 8, 6, 8, 1, 8, 2, 10, 7, 10, 4, 9, 7, 10, 1, 7, 3, 4, 4, 8, 1, 9, 7, 8, 1, 4, 2, 9, 1, 7, 5, 9, 5, 6, 5, 10, 1, 5, 2, 4, 2, 8, 2, 9, 6, 7, 3, 7, 3, 4, 3, 8, 6, 6, 1, 9, 4, 7, 4, 6, 5, 10, 1, 8, 2, 8, 8, 9, 3, 8, 3, 7, 6, 6, 2, 4, 2, 10, 1, 6, 3, 4, 1, 3, 3, 5, 3, 9, 3, 10, 4, 10, 3, 10, 4, 9, 3, 10, 9, 10, 1, 7, 1, 6, 1, 8, 1, 8, 6, 7, 1, 5, 1, 7, 2, 7, 1, 9, 6, 10, 2, 10, 4, 9, 1, 8, 6, 7, 6, 6, 1, 7, 2, 8, 5, 9, 8, 9, 1, 4, 3, 6, 2, 5, 2, 9, 4, 8, 8, 10, 5, 8, 5, 5, 4, 5, 2, 7, 3, 4, 1, 5, 3, 10, 1, 10, 1, 9, 4, 10, 6, 10, 1, 2, 1, 5, 3, 10, 4, 8, 5, 9, 9, 9, 7, 10, 8, 10, 6, 8, 1, 10, 3, 5, 3, 8, 7, 7, 2, 10, 4, 9, 2, 10, 6, 7, 5, 10, 6, 9, 6, 10, 4, 10, 7, 8, 1, 10, 2, 7, 2, 9, 2, 9, 4, 7, 3, 3, 3, 8, 5, 9, 4, 7, 3, 5, 1, 9, 1, 8, 2, 7, 1, 8, 5, 10, 2, 5, 5, 6, 4, 10, 7, 8, 1, 4, 4, 10, 1, 5, 5, 10, 2, 6, 3, 5, 2, 5, 1, 4, 4, 4, 2, 8, 1, 4, 4, 8, 1, 7, 5, 7, 6, 8, 1, 8, 7, 7, 4, 7, 2, 10, 2, 3, 1, 3, 1, 4, 2, 6, 3, 6, 3, 10, 4, 5, 4, 7, 5, 9, 7, 7, 1, 2, 1, 5, 1, 10, 7, 8, 4, 7, 3, 7, 2, 9, 9, 10, 9, 10, 6, 10, 2, 5, 3, 9, 2, 7, 5, 8, 1, 9, 6, 7, 2, 5, 3, 9, 5, 5, 1, 10, 4, 6, 4, 4, 1, 7, 4, 10, 6, 10, 1, 7, 3, 6, 1, 8, 5, 8, 7, 10, 7, 9, 6, 8, 1, 6, 4, 6, 5, 9, 5, 7, 2, 7, 4, 7, 2, 6, 4, 8, 4, 5, 3, 9, 8, 8, 3, 8, 1, 10, 9, 10, 5, 6, 2, 3, 3, 6, 1, 8, 3, 10, 1, 6, 1, 8, 6, 8, 1, 8, 5, 7, 5, 10, 6, 10, 1, 6, 5, 8, 1, 9, 6, 7, 1, 9, 1, 6, 1, 8, 1, 9, 2, 8, 1, 4, 2, 10, 5, 9, 1, 10, 2, 8, 2, 10, 2, 9, 3, 6, 3, 9, 3, 4, 1, 9, 2, 7, 1, 8, 5, 5, 5, 10, 5, 9, 5, 7, 4, 9, 5, 10, 1, 8, 7, 10, 9, 10, 2, 10, 8, 10, 4, 7, 5, 9, 1, 7, 1, 9, 3, 9, 8, 9, 2, 10, 9, 10, 5, 9, 1, 10, 1, 6, 2, 8, 8, 9, 3, 8, 2, 7, 2, 9, 2, 6, 1, 6, 1, 4, 4, 10, 2, 10, 2, 5, 1, 10, 3, 7, 2, 6, 2, 9, 1, 4, 1, 5, 3, 9, 8, 9, 3, 10, 8, 10, 6, 7, 2, 10, 4, 6, 4, 4, 1, 6, 3, 8, 6, 9, 6, 9, 7, 10, 4, 10, 1, 10, 2, 3, 2, 7, 1, 4, 2, 9, 3, 8, 7, 10, 4, 6, 2, 6, 4, 8, 2, 8, 4, 8, 6, 6, 5, 10, 3, 5, 4, 10, 2, 8, 3, 6, 5, 6, 1, 5, 2, 8, 2, 6, 2, 9, 3, 6, 6, 9, 2, 10, 4, 9, 3, 10, 2, 9, 5, 8, 1, 5, 1, 10, 5, 10, 4, 10, 2, 6, 3, 6, 4, 6, 4, 5, 2, 5, 1, 7, 3, 6, 1, 9, 4, 6, 1, 7, 3, 6, 4, 4, 2, 9, 4, 9, 4, 6, 4, 6, 1, 8, 2, 7, 3, 8, 4, 9, 2, 6, 3, 9, 5, 8, 1, 5, 2, 8, 2, 7, 4, 6, 3, 8, 5, 10, 3, 7, 4, 10, 4, 9, 6, 8, 6, 8, 1, 9, 3, 9, 6, 10, 8, 10, 1, 6, 2, 6, 4, 7, 2, 6, 4, 9, 2, 9, 6, 8, 3, 6, 4, 7, 5, 9, 7, 8, 5, 10, 5, 6, 2, 7, 3, 6, 1, 2, 1, 9, 3, 8, 2, 5, 3, 5, 1, 5, 3, 4, 3, 5, 1, 9, 8, 9, 1, 7, 3, 7, 1, 5, 2, 3, 2, 10, 5, 10, 4, 8, 4, 7, 3, 9, 4, 7, 2, 6, 3, 9, 4, 7, 1, 6, 2, 4, 2, 6, 2, 9, 3, 4, 4, 9, 2, 4, 4, 5, 1, 8, 3, 6, 4, 6, 2, 2, 1, 10, 10, 10, 1, 6, 2, 6, 3, 7, 4, 9, 6, 9, 1, 10, 2, 6, 3, 7, 6, 10, 7, 8, 5, 6, 1, 3, 3, 9, 1, 4, 4, 10, 1, 10, 3, 7, 1, 9, 2, 5, 3, 9, 5, 9, 1, 6, 2, 6, 4, 8, 5, 7, 4, 8, 6, 6, 2, 5, 3, 10, 5, 7, 2, 10, 7, 8, 1, 8, 4, 10, 6, 9, 6, 10, 4, 7, 5, 7, 6, 7, 7, 7, 3, 9, 5, 9, 6, 8, 6, 10, 8, 10, 2, 9, 5, 7, 3, 10, 2, 10, 3, 6, 4, 10, 3, 10, 7, 7, 2, 10, 4, 9, 2, 10, 2, 7, 3, 7, 4, 7, 5, 10, 4, 5, 3, 10, 3, 9, 4, 8, 5, 10, 4, 7, 5, 10, 2, 8, 2, 8, 3, 8, 5, 10, 4, 5, 3, 10, 5, 8, 8, 10, 7, 9, 3, 4, 3, 5, 3, 10, 7, 10, 2, 8, 7, 9, 7, 8, 7, 7, 7, 9, 1, 10, 3, 7, 7, 10, 2, 10, 3, 8, 2, 8, 4, 9, 4, 6, 1, 5, 4, 7, 1, 10, 4, 7, 1, 7, 2, 3, 1, 7, 1, 8, 2, 8, 7, 10, 4, 9, 2, 10, 3, 5, 5, 6, 1, 8, 3, 4, 2, 10, 5, 10, 6, 9, 1, 8, 4, 7, 1, 9, 2, 5, 1, 8, 2, 10, 1, 3, 3, 10, 5, 8, 3, 10, 1, 7, 2, 9, 2, 3, 3, 8, 4, 5, 5, 6, 3, 10, 5, 7, 6, 8, 4, 9, 3, 10, 6, 10, 2, 6, 1, 9, 5, 8, 7, 7, 3, 10, 4, 8, 5, 7, 2, 6, 4, 4, 1, 5, 3, 10, 1, 9, 2, 5, 3, 9, 5, 10, 5, 8, 5, 10, 2, 7, 3, 9, 1, 9, 5, 6, 3, 8, 3, 10, 9, 9, 6, 7, 3, 3, 2, 7, 4, 8, 1, 7, 1, 8, 3, 8, 1, 9, 5, 9, 7, 10, 4, 8, 6, 9, 7, 9, 9, 10, 2, 6, 5, 6, 6, 9, 5, 6, 2, 8, 6, 10, 2, 10, 7, 8, 2, 5, 2, 10, 1, 7, 1, 4, 1, 7, 4, 6, 5, 10, 3, 7, 6, 10, 2, 10, 6, 6, 4, 7, 1, 10, 3, 9, 3, 7, 6, 10, 1, 10, 6, 10, 7, 9, 5, 10, 2, 9, 2, 5, 3, 7, 6, 10, 7, 10, 6, 10, 2, 8, 3, 6, 6, 7, 3, 8, 5, 8, 7, 7, 2, 10, 5, 10, 8, 9, 1, 10, 3, 7, 4, 6, 5, 6, 1, 7, 3, 5, 1, 4, 3, 10, 8, 9, 2, 8, 4, 10, 4, 6, 1, 9, 2, 2, 2, 9, 7, 9, 4, 7, 5, 10, 7, 8, 3, 6, 5, 7, 7, 10, 7, 8, 2, 4, 2, 3, 1, 2, 2, 10, 3, 4, 1, 4, 4, 6, 2, 6, 2, 7, 3, 10, 3, 7, 3, 6, 5, 9, 6, 6, 1, 6, 3, 10, 9, 9, 7, 8, 1, 10, 5, 9, 4, 10, 1, 10, 3, 6, 4, 8, 4, 6, 1, 8, 7, 9, 3, 8, 4, 5, 4, 5, 2, 8, 2, 3, 1, 3, 3, 9, 3, 10, 1, 10, 1, 7, 1, 9, 4, 7, 6, 10, 1, 9, 1, 8, 8, 8, 5, 5, 4, 7, 4, 10, 1, 7, 1, 6, 1, 3, 1, 9, 4, 9, 1, 10, 7, 10, 8, 9, 3, 9, 5, 9, 8, 9, 2, 9, 5, 8, 5, 10, 6, 9, 4, 9, 1, 8, 3, 8, 3, 5, 2, 7, 2, 4, 4, 10, 5, 9, 2, 9, 2, 10, 1, 5, 1, 7, 2, 3, 1, 9, 4, 8, 6, 9, 8, 9, 2, 5, 2, 4, 2, 4, 3, 3, 3, 10, 2, 6, 2, 3, 2, 10, 1, 7, 2, 7, 7, 9, 1, 8, 2, 8, 2, 4, 3, 5, 4, 6, 4, 5, 3, 4, 2, 8, 3, 10, 4, 5, 1, 4, 2, 4, 3, 6, 4, 5, 4, 7, 1, 4, 2, 8, 8, 10, 5, 9, 1, 2, 1, 10, 5, 9, 3, 4, 1, 10, 4, 9, 5, 7, 3, 10, 6, 8, 3, 8, 4, 6, 2, 10, 6, 8, 5, 8, 6, 9, 6, 8, 1, 6, 4, 6, 6, 8, 5, 7, 4, 10, 7, 8, 2, 7, 4, 5, 1, 10, 5, 10, 4, 8, 1, 7, 1, 4, 2, 4, 2, 4, 2, 5, 1, 4, 3, 10, 1, 5, 4, 9, 4, 5, 2, 7, 5, 7, 1, 5, 2, 6, 2, 4, 1, 10, 5, 8, 2, 8, 5, 9, 4, 9, 6, 10, 5, 8, 3, 5, 1, 9, 1, 4, 1, 7, 1, 4, 3, 10, 6, 9, 5, 10, 2, 7, 5, 8, 1, 8, 6, 8, 2, 8, 4, 10, 6, 7, 4, 6, 1, 10, 5, 10, 2, 7, 2, 7, 1, 5, 2, 5, 3, 9, 3, 5, 1, 8, 3, 4, 1, 5, 5, 9, 5, 6, 2, 10, 4, 10, 1, 5, 2, 6, 4, 10, 7, 8, 1, 8, 7, 8, 4, 8, 3, 9, 3, 7, 5, 8, 5, 6, 4, 5, 4, 8, 4, 8, 5, 7, 1, 7, 2, 9, 8, 8, 8, 10, 3, 8, 7, 8, 4, 6, 3, 8, 2, 7, 2, 4, 1, 9, 4, 9, 6, 7, 1, 10, 6, 7, 3, 7, 3, 7, 1, 8, 2, 9, 1, 6, 4, 7, 3, 6, 5, 10, 5, 8, 5, 7, 2, 3, 1, 9, 2, 5, 2, 10, 3, 9, 4, 9, 5, 10, 4, 8, 2, 6, 5, 7, 6, 10, 3, 7, 1, 9, 1, 3, 3, 8, 7, 7, 1, 6, 1, 9, 2, 10, 7, 10, 6, 8, 4, 7, 3, 8, 6, 9, 7, 9, 8, 9, 5, 6, 6, 9, 5, 9, 2, 8, 6, 9, 3, 9, 2, 7, 5, 10, 4, 9, 6, 6, 3, 9, 4, 8, 2, 9, 4, 4, 2, 4, 1, 8, 2, 8, 1, 6, 1, 9, 4, 9, 4, 9, 4, 5, 3, 10, 4, 9, 5, 7, 6, 8, 5, 6, 4, 6, 5, 10, 3, 9, 4, 9, 9, 10, 6, 8, 6, 7, 5, 8, 3, 8, 1, 2, 1, 5, 4, 8, 4, 9, 5, 9, 1, 5, 1, 7, 2, 4, 4, 9, 4, 7, 2, 4, 3, 10, 4, 7, 1, 5, 5, 9, 2, 7, 4, 6, 2, 3, 1, 4, 1, 8, 4, 8, 3, 9, 5, 9, 8, 8, 4, 6, 4, 10, 7, 9, 5, 8, 3, 7, 6, 10, 2, 7, 4, 6, 4, 9, 5, 5, 1, 10, 10, 10, 7, 10, 3, 9, 6, 10, 2, 9, 1, 9, 4, 8, 3, 9, 4, 9, 5, 8, 4, 8, 1, 8, 2, 5, 2, 3, 2, 9, 6, 7, 1, 4, 2, 3, 1, 10, 6, 9, 4, 7, 1, 9, 3, 4, 4, 6, 3, 4, 2, 10, 3, 7, 6, 10, 2, 10, 5, 10, 3, 9, 8, 9, 5, 9, 5, 9, 6, 8, 2, 10, 7, 9, 1, 8, 3, 5, 3, 5, 3, 8, 4, 10, 4, 9, 3, 7, 2, 6, 2, 7, 6, 10, 2, 9, 3, 7, 4, 9, 3, 8, 4, 9, 7, 9, 2, 8, 3, 5, 2, 10, 3, 9, 7, 9, 5, 7, 7, 9, 4, 9, 2, 5, 4, 9, 2, 9, 4, 10, 4, 10, 3, 9, 7, 8, 7, 9, 7, 10, 1, 9, 8, 9, 4, 10, 1, 6, 1, 9, 3, 4, 1, 10, 4, 7, 1, 7, 3, 7, 7, 9, 2, 8, 1, 4, 1, 10, 1, 3, 2, 10, 4, 8, 6, 8, 2, 7, 2, 7, 3, 5, 5, 9, 1, 6, 1, 5, 3, 6, 5, 10, 1, 7, 1, 2, 2, 9, 4, 9, 5, 7, 3, 7, 5, 6, 1, 8, 3, 10, 7, 9, 5, 8, 7, 10, 4, 10, 6, 10, 6, 10, 3, 10, 5, 7, 3, 6, 1, 6, 3, 9, 1, 7, 5, 8, 4, 7, 2, 10, 6, 10, 7, 8, 2, 5, 3, 4, 4, 8, 2, 10, 4, 8, 3, 10, 4, 8, 6, 9, 2, 4, 2, 10, 2, 8, 2, 10, 5, 7, 2, 8, 1, 6, 3, 10, 4, 9, 8, 8, 5, 9, 2, 8, 7, 8, 3, 7, 3, 5, 5, 10, 5, 10, 9, 10, 3, 10, 1, 10, 2, 9, 5, 6, 5, 8, 1, 8, 5, 6, 3, 4, 1, 5, 1, 9, 1, 5, 2, 4, 3, 3, 1, 8, 3, 3, 1, 10, 6, 9, 4, 7, 1, 6, 4, 9, 4, 9, 1, 4, 4, 7, 6, 10, 3, 10, 6, 9, 5, 9, 2, 10, 5, 8, 1, 5, 1, 5, 2, 4, 3, 3, 2, 9, 3, 8, 2, 10, 2, 10, 9, 9, 1, 10, 2, 9, 7, 7, 6, 10, 6, 7, 6, 6, 2, 8, 7, 10, 4, 5, 1, 9, 2, 3, 2, 3, 2, 8, 2, 9, 4, 9, 6, 6, 4, 5, 3, 10, 1, 9, 1, 5, 1, 9, 5, 7, 3, 5, 2, 10, 6, 9, 1, 8, 2, 8, 5, 8, 4, 8, 3, 6, 1, 9, 2, 7, 4, 9, 1, 2, 1, 10, 5, 6, 4, 8, 6, 8, 8, 8, 1, 4, 3, 5, 1, 4, 4, 5, 4, 9, 4, 6, 2, 10, 1, 9, 1, 5, 1, 9, 4, 7, 6, 9, 3, 9, 4, 10, 1, 6, 1, 6, 2, 9, 7, 8, 1, 7, 7, 10, 6, 9, 2, 10, 3, 7, 3, 7, 1, 10, 5, 7, 3, 9, 1, 5, 1, 5, 4, 10, 8, 10, 2, 7, 2, 7, 6, 7, 1, 6, 2, 8, 4, 7, 1, 3, 1, 4, 2, 8, 2, 8, 3, 7, 4, 5, 4, 10, 7, 7, 7, 7, 1, 9, 3, 8, 6, 7, 4, 10, 4, 10, 4, 5, 4, 10, 8, 9, 4, 7, 3, 9, 7, 9, 3, 10, 1, 9, 3, 5, 4, 9, 2, 4, 3, 9, 1, 10, 8, 9, 1, 9, 2, 7, 6, 10, 4, 8, 2, 7, 2, 6, 6, 10, 6, 9, 5, 7, 6, 6, 6, 9, 4, 8, 1, 7, 5, 10, 2, 10, 8, 9, 1, 8, 2, 8, 4, 10, 6, 9, 6, 10, 7, 10, 5, 9, 4, 6, 2, 4, 1, 7, 4, 8, 5, 8, 2, 7, 2, 3, 2, 6, 4, 7, 1, 1, 1, 5, 1, 8, 2, 5, 1, 7, 6, 9, 4, 9, 1, 7, 1, 3, 2, 9, 4, 9, 4, 7, 6, 9, 4, 7, 4, 6, 2, 8, 1, 9, 3, 3, 2, 10, 3, 8, 6, 8, 7, 8, 1, 8, 5, 10, 3, 9, 4, 9, 7, 10, 5, 10, 5, 6, 5, 9, 5, 10, 4, 7, 1, 9, 1, 10, 2, 5, 2, 9, 4, 8, 4, 9, 5, 6, 4, 6, 2, 9, 6, 10, 3, 10, 5, 6, 3, 9, 1, 10, 1, 6, 3, 7, 3, 7, 2, 6, 1, 7, 3, 3, 2, 8, 3, 8, 1, 5, 5, 7, 5, 5, 2, 9, 7, 8, 2, 7, 3, 4, 2, 4, 2, 8, 3, 6, 5, 8, 1, 8, 4, 10, 6, 8, 5, 10, 1, 5, 5, 8, 5, 6, 5, 8, 2, 4, 2, 9, 1, 10, 5, 10, 4, 7, 5, 7, 1, 10, 1, 5, 4, 5, 2, 10, 5, 7, 5, 8, 1, 7, 4, 9, 5, 10, 4, 7, 2, 7, 4, 10, 7, 7, 4, 10, 6, 10, 4, 9, 5, 9, 2, 3, 2, 3, 2, 9, 3, 4, 2, 7, 4, 9, 1, 7, 3, 6, 1, 7, 4, 6, 5, 9, 2, 5, 1, 4, 2, 8, 4, 10, 1, 3, 1, 6, 1, 7, 1, 8, 5, 7, 4, 7, 5, 9, 9, 10, 2, 10, 2, 5, 3, 6, 4, 9, 4, 10, 8, 8, 4, 9, 4, 9, 5, 9, 2, 6, 5, 6, 2, 10, 3, 10, 7, 10, 1, 4, 1, 6, 2, 7, 1, 7, 4, 5, 1, 9, 1, 2, 1, 10, 8, 8, 6, 7, 1, 8, 1, 2, 1, 4, 2, 7, 5, 7, 3, 7, 2, 6, 2, 6, 2, 10, 6, 9, 2, 10, 6, 7, 1, 9, 1, 9, 5, 7, 2, 9, 5, 5, 1, 4, 1, 3, 3, 8, 1, 5, 1, 8, 7, 7, 3, 9, 8, 10, 4, 7, 1, 10, 2, 9, 7, 9, 7, 8, 4, 9, 1, 7, 4, 7, 2, 8, 4, 7, 6, 7, 2, 8, 5, 9, 6, 9, 1, 6, 5, 6, 5, 9, 5, 7, 4, 9, 2, 6, 2, 4, 3, 3, 1, 9, 5, 10, 5, 9, 3, 4, 4, 5, 5, 7, 2, 6, 1, 6, 4, 8, 3, 10, 5, 8, 2, 5, 3, 9, 1, 9, 2, 8, 5, 8, 1, 7, 5, 5, 1, 8, 1, 6, 2, 5, 4, 8, 5, 7, 6, 10, 1, 8, 3, 9, 1, 10, 2, 9, 4, 7, 5, 7, 2, 6, 1, 9, 5, 7, 6, 10, 3, 10, 3, 6, 2, 9, 1, 5, 4, 9, 4, 9, 1, 9, 2, 7, 3, 10, 4, 10, 8, 10, 2, 8, 1, 10, 1, 7, 2, 6, 3, 5, 2, 10, 3, 8, 7, 9, 2, 9, 6, 7, 1, 9, 3, 6, 5, 5, 3, 8, 7, 10, 6, 8, 1, 10, 4, 5, 4, 5, 4, 6, 2, 5, 2, 9, 2, 9, 9, 10, 3, 9, 5, 7, 1, 8, 1, 3, 3, 9, 2, 8, 4, 10, 3, 10, 3, 8, 5, 9, 5, 10, 2, 9, 4, 7, 6, 9, 5, 6, 2, 4, 3, 8, 3, 6, 1, 9, 3, 7, 3, 6, 5, 8, 5, 9, 3, 9, 4, 5, 3, 5, 3, 6, 3, 9, 1, 9, 6, 6, 2, 4, 3, 9, 1, 8, 2, 7, 3, 4, 1, 8, 2, 2, 1, 10, 6, 8, 2, 7, 4, 6, 2, 6, 3, 6, 5, 9, 2, 9, 2, 5, 4, 10, 4, 9, 2, 6, 3, 9, 6, 9, 1, 9, 3, 6, 3, 10, 3, 9, 7, 9, 3, 10, 7, 10, 3, 8, 4, 8, 2, 8, 3, 8, 6, 9, 4, 6, 2, 5, 5, 6, 6, 10, 4, 7, 6, 7, 1, 9, 2, 6, 5, 6, 5, 10, 4, 8, 1, 7, 6, 7, 4, 10, 8, 10, 9, 9, 4, 7, 7, 7, 6, 10, 4, 5, 5, 7, 2, 9, 3, 7, 7, 7, 2, 8, 7, 8, 2, 7, 2, 7, 5, 8, 3, 9, 9, 10, 2, 7, 3, 8, 3, 9, 3, 8, 3, 9, 8, 9, 2, 7, 2, 3, 2, 10, 3, 8, 3, 8, 4, 5, 1, 7, 2, 9, 2, 6, 2, 9, 3, 4, 1, 6, 2, 9, 3, 8, 1, 8, 2, 9, 8, 10, 4, 9, 3, 6, 2, 10, 5, 6, 3, 10, 7, 8, 1, 9, 6, 6, 5, 10, 2, 6, 2, 4, 1, 9, 6, 7, 5, 6, 1, 5, 1, 8, 2, 4, 1, 9, 4, 10, 8, 9, 4, 5, 4, 7, 4, 10, 6, 7, 3, 7, 3, 4, 3, 7, 4, 7, 1, 9, 3, 6, 3, 8, 7, 7, 1, 9, 2, 9, 6, 8, 7, 10, 6, 8, 5, 8, 3, 9, 5, 10, 1, 7, 3, 9, 1, 4, 2, 7, 1, 2, 1, 7, 2, 6, 1, 9, 2, 9, 2, 4, 1, 5, 3, 3, 3, 6, 4, 6, 3, 6, 3, 4, 2, 6, 1, 9, 6, 10, 1, 8, 4, 8, 5, 6, 1, 4, 4, 8, 4, 5, 4, 10, 7, 8, 1, 8, 3, 6, 6, 10, 5, 10, 6, 8, 1, 6, 1, 6, 2, 7, 4, 10, 6, 10, 8, 10, 4, 5, 1, 9, 6, 10, 3, 4, 3, 5, 3, 10, 4, 7, 1, 2, 1, 2, 1, 4, 1, 6, 2, 4, 4, 9, 2, 8, 4, 5, 1, 6, 1, 4, 3, 7, 3, 8, 4, 7, 2, 7, 6, 10, 2, 9, 6, 9, 5, 7, 5, 10, 1, 7, 5, 8, 2, 6, 3, 10, 6, 10, 4, 9, 2, 5, 4, 5, 3, 3, 1, 6, 3, 4, 1, 7, 6, 6, 1, 4, 2, 6, 1, 7, 3, 9, 4, 7, 1, 4, 2, 3, 2, 9, 3, 6, 3, 7, 3, 6, 1, 5, 1, 4, 4, 10, 4, 8, 3, 7, 5, 9, 1, 10, 3, 10, 6, 7, 2, 6, 4, 8, 2, 7, 2, 3, 1, 3, 2, 6, 2, 8, 5, 6, 1, 3, 1, 10, 3, 10, 3, 8, 5, 8, 7, 7, 5, 10, 3, 6, 3, 6, 2, 6, 4, 6, 4, 4, 4, 9, 6, 9, 4, 9, 3, 6, 4, 7, 4, 8, 3, 9, 6, 7, 2, 7, 3, 10, 10, 10, 4, 9, 6, 7, 6, 9, 4, 10, 6, 8, 1, 8, 3, 7, 2, 8, 3, 7, 2, 10, 6, 10, 6, 6, 3, 8, 6, 9, 4, 6, 3, 10, 7, 7, 5, 5, 3, 3, 3, 10, 1, 4, 2, 6, 4, 9, 5, 8, 7, 9, 3, 7, 6, 8, 2, 9, 2, 6, 3, 9, 6, 9, 4, 5, 2, 5, 4, 9, 2, 8, 5, 7, 1, 7, 2, 6, 3, 7, 4, 8, 5, 10, 1, 8, 5, 9, 3, 6, 4, 9, 5, 6, 6, 10, 3, 10, 1, 9, 6, 10, 4, 6, 6, 6, 3, 3, 3, 10, 6, 10, 5, 10, 4, 9, 4, 9, 5, 6, 3, 5, 4, 7, 4, 7, 2, 6, 3, 10, 3, 10, 8, 10, 2, 5, 2, 10, 6, 10, 6, 7, 4, 9, 8, 8, 1, 7, 6, 9, 3, 8, 2, 5, 3, 4, 2, 6, 1, 8, 5, 5, 2, 5, 1, 9, 5, 9, 3, 5, 5, 5, 1, 9, 3, 7, 2, 3, 3, 3, 1, 3, 1, 2, 1, 9, 5, 7, 4, 8, 6, 10, 7, 9, 4, 9, 6, 8, 1, 10, 2, 6, 6, 6, 3, 6, 3, 8, 4, 10, 3, 7, 5, 5, 3, 7, 2, 9, 4, 9, 6, 9, 4, 8, 3, 6, 5, 7, 1, 8, 3, 6, 5, 5, 1, 5, 4, 5, 3, 10, 1, 9, 3, 10, 1, 8, 4, 9, 3, 10, 4, 8, 5, 9, 2, 9, 2, 10, 4, 6, 3, 6, 4, 6, 5, 8, 2, 6, 4, 7, 4, 8, 6, 9, 2, 7, 5, 10, 3, 6, 2, 10, 3, 8, 3, 10, 1, 9, 6, 8, 6, 9, 7, 10, 8, 10, 3, 9, 8, 9, 1, 5, 2, 10, 9, 10, 2, 7, 1, 10, 4, 8, 5, 10, 8, 10, 7, 10, 6, 7, 4, 9, 1, 8, 7, 8, 1, 8, 1, 9, 5, 9, 2, 8, 6, 8, 1, 5, 4, 5, 1, 6, 5, 8, 6, 7, 2, 8, 4, 6, 3, 10, 4, 9, 7, 9, 4, 8, 3, 4, 4, 8, 4, 9, 1, 10, 5, 10, 2, 9, 2, 10, 3, 6, 4, 6, 1, 8, 5, 7, 2, 8, 3, 9, 2, 10, 4, 8, 3, 9, 4, 9, 6, 9, 5, 10, 2, 8, 6, 9, 2, 6, 1, 4, 1, 10, 3, 10, 10, 10, 3, 9, 7, 8, 1, 10, 1, 1, 1, 7, 1, 1, 1, 9, 6, 9, 1, 9, 1, 4, 1, 8, 5, 7, 2, 4, 1, 2, 1, 2, 1, 5, 4, 10, 4, 6, 6, 10, 3, 8, 5, 9, 4, 6, 6, 10, 3, 8, 4, 7, 1, 5, 1, 3, 2, 6, 6, 8, 2, 6, 6, 9, 4, 10, 7, 10, 1, 9, 5, 6, 2, 9, 1, 7, 2, 5, 2, 3, 1, 10, 2, 10, 4, 10, 8, 9, 1, 8, 2, 10, 7, 8, 4, 10, 3, 6, 1, 4, 1, 7, 1, 6, 1, 8, 6, 10, 1, 7, 3, 9, 8, 9, 4, 8, 4, 10, 2, 7, 5, 9, 4, 6, 1, 9, 2, 10, 1, 6, 1, 10, 4, 8, 3, 8, 7, 8, 3, 5, 3, 8, 6, 7, 6, 6, 1, 8, 6, 7, 1, 8, 1, 2, 2, 10, 3, 10, 5, 9, 6, 8, 5, 7, 2, 6, 1, 10, 2, 8, 5, 10, 1, 4, 2, 7, 2, 7, 2, 9, 4, 8, 6, 10, 6, 8, 4, 9, 6, 8, 4, 8, 3, 9, 7, 8, 5, 5, 5, 8, 1, 7, 2, 7, 7, 7, 1, 10, 3, 8, 7, 10, 6, 8, 2, 3, 2, 6, 5, 7, 5, 10, 9, 9, 5, 8, 3, 7, 3, 8, 2, 7, 4, 10, 6, 9, 6, 7, 2, 10, 1, 7, 1, 10, 4, 8, 2, 10, 1, 7, 1, 4, 4, 9, 4, 6, 3, 7, 5, 5, 1, 10, 2, 9, 5, 6, 1, 10, 1, 8, 1, 5, 2, 7, 2, 9, 3, 8, 3, 10, 6, 7, 2, 5, 3, 9, 8, 10, 4, 8, 5, 10, 5, 7, 3, 9, 1, 9, 1, 7, 3, 4, 1, 8, 2, 6, 4, 10, 5, 6, 6, 9, 2, 10, 2, 6, 5, 10, 5, 6, 5, 8, 5, 10, 3, 7, 2, 3, 2, 6, 6, 8, 5, 6, 3, 5, 3, 3, 1, 5, 2, 4, 4, 10, 1, 6, 1, 10, 5, 9, 7, 9, 3, 8, 2, 6, 5, 8, 6, 9, 3, 7, 3, 8, 6, 7, 1, 4, 3, 7, 3, 6, 1, 7, 1, 10, 8, 9, 5, 8, 5, 7, 4, 9, 1, 9, 4, 6, 6, 9, 1, 5, 3, 10, 5, 9, 8, 8, 6, 9, 8, 8, 1, 9, 4, 6, 4, 10, 7, 8, 1, 9, 6, 9, 1, 7, 3, 7, 2, 8, 4, 7, 6, 7, 4, 10, 1, 6, 3, 8, 3, 7, 1, 7, 2, 5, 5, 9, 1, 7, 6, 6, 6, 10, 3, 9, 7, 7, 5, 8, 6, 8, 7, 9, 3, 10, 1, 6, 4, 5, 3, 8, 2, 3, 1, 4, 3, 9, 1, 5, 3, 7, 2, 10, 5, 8, 7, 8, 1, 10, 8, 10, 4, 7, 2, 4, 2, 4, 3, 7, 6, 9, 1, 7, 3, 8, 4, 6, 1, 5, 1, 8, 3, 10, 5, 8, 3, 10, 2, 9, 1, 8, 6, 8, 2, 5, 2, 10, 7, 9, 8, 10, 2, 9, 3, 6, 3, 4, 4, 6, 1, 6, 2, 4, 2, 4, 3, 8, 6, 10, 3, 5, 4, 8, 4, 8, 1, 8, 4, 10, 7, 9, 1, 3, 1, 9, 3, 6, 1, 8, 1, 9, 3, 8, 4, 5, 4, 7, 1, 8, 6, 10, 5, 7, 1, 10, 3, 8, 4, 7, 2, 9, 1, 8, 1, 8, 4, 7, 6, 8, 2, 6, 1, 5, 1, 8, 3, 5, 2, 10, 4, 7, 6, 7, 2, 9, 4, 6, 2, 10, 2, 9, 3, 5, 3, 9, 3, 7, 3, 7, 5, 6, 1, 7, 2, 5, 4, 9, 6, 8, 1, 5, 3, 3, 3, 8, 2, 2, 1, 3, 1, 5, 4, 10, 7, 9, 5, 9, 3, 9, 4, 10, 9, 10, 2, 6, 1, 10, 3, 8, 3, 9, 3, 10, 7, 10, 6, 9, 2, 4, 3, 8, 3, 6, 6, 7, 4, 6, 1, 5, 1, 10, 4, 7, 1, 7, 1, 8, 7, 8, 4, 6, 4, 8, 3, 6, 4, 10, 1, 8, 1, 8, 2, 10, 2, 8, 4, 7, 3, 9, 6, 10, 2, 10, 2, 9, 4, 10, 3, 10, 3, 7, 5, 10, 3, 4, 1, 10, 3, 10, 7, 9, 5, 5, 3, 4, 4, 8, 1, 10, 6, 7, 1, 3, 1, 8, 3, 7, 3, 9, 2, 5, 2, 7, 7, 9, 3, 8, 3, 5, 2, 5, 4, 10, 6, 10, 2, 9, 6, 10, 1, 6, 1, 7, 1, 4, 1, 10, 5, 10, 3, 6, 4, 8, 1, 10, 4, 7, 5, 8, 2, 7, 1, 6, 3, 9, 7, 9, 1, 6, 4, 4, 1, 9, 3, 9, 2, 9, 3, 7, 6, 8, 7, 8, 1, 3, 1, 3, 3, 10, 7, 7, 1, 7, 5, 8, 6, 9, 3, 10, 3, 8, 5, 7, 1, 8, 5, 5, 5, 10, 7, 9, 2, 8, 4, 10, 2, 9, 4, 6, 2, 4, 2, 10, 6, 10, 4, 9, 3, 8, 4, 7, 3, 5, 1, 7, 4, 10, 6, 7, 5, 8, 6, 6, 2, 8, 2, 9, 3, 10, 7, 7, 4, 4, 4, 9, 4, 8, 1, 9, 2, 8, 4, 4, 1, 5, 3, 8, 3, 8, 6, 9, 2, 8, 4, 10, 2, 10, 4, 10, 7, 9, 7, 10, 9, 9, 1, 8, 3, 6, 5, 9, 1, 8, 3, 9, 4, 10, 6, 8, 3, 10, 5, 10, 2, 8, 4, 9, 7, 8, 3, 5, 1, 9, 1, 6, 3, 10, 6, 10, 4, 9, 1, 9, 5, 6, 1, 10, 9, 10, 1, 10, 3, 4, 3, 9, 4, 8, 2, 8, 4, 9, 7, 8, 4, 7, 4, 6, 4, 10, 7, 8, 2, 5, 3, 3, 1, 9, 2, 10, 2, 4, 1, 9, 1, 9, 3, 7, 7, 7, 1, 6, 5, 7, 7, 9, 5, 8, 5, 10, 2, 7, 6, 9, 3, 6, 4, 8, 3, 7, 6, 9, 3, 7, 4, 10, 1, 9, 4, 6, 3, 7, 4, 7, 3, 7, 2, 6, 2, 9, 1, 7, 4, 6, 4, 10, 7, 9, 8, 9, 7, 10, 8, 9, 9, 10, 1, 7, 2, 10, 1, 7, 1, 4, 1, 8, 8, 8, 1, 9, 6, 9, 8, 10, 7, 7, 3, 9, 2, 8, 4, 7, 2, 10, 3, 5, 4, 7, 4, 7, 1, 4, 1, 1, 1, 10, 5, 8, 3, 6, 5, 10, 6, 8, 3, 9, 7, 10, 1, 8, 7, 10, 2, 10, 4, 8, 1, 10, 3, 6, 2, 5, 2, 6, 5, 5, 1, 5, 4, 9, 2, 3, 1, 9, 5, 10, 6, 10, 1, 10, 4, 6, 4, 9, 3, 5, 4, 8, 1, 5, 5, 7, 1, 6, 2, 5, 1, 3, 1, 4, 3, 8, 2, 7, 1, 6, 5, 10, 4, 7, 2, 3, 2, 10, 8, 9, 2, 7, 4, 5, 1, 4, 2, 10, 5, 6, 1, 3, 1, 2, 2, 5, 3, 7, 1, 6, 2, 9, 2, 8, 5, 6, 1, 4, 1, 10, 2, 3, 1, 9, 2, 9, 6, 7, 3, 10, 5, 5, 1, 8, 4, 10, 2, 10, 7, 9, 2, 8, 1, 6, 3, 10, 4, 9, 2, 8, 5, 9, 2, 8, 2, 9, 5, 10, 1, 8, 2, 6, 4, 10, 4, 6, 5, 9, 5, 7, 1, 8, 2, 9, 6, 8, 2, 4, 1, 10, 2, 8, 4, 10, 4, 8, 5, 8, 3, 9, 4, 9, 1, 6, 3, 10, 1, 9, 5, 10, 7, 8, 4, 5, 4, 5, 4, 10, 2, 8, 5, 9, 1, 6, 3, 7, 6, 7, 3, 6, 4, 6, 5, 9, 3, 10, 6, 7, 2, 4, 1, 6, 2, 3, 3, 9, 4, 8, 4, 8, 5, 10, 1, 9, 4, 8, 4, 10, 6, 7, 1, 10, 4, 5, 3, 8, 6, 7, 3, 6, 2, 8, 5, 9, 5, 6, 3, 6, 5, 9, 7, 8, 1, 3, 2, 10, 3, 7, 5, 7, 6, 9, 7, 8, 2, 6, 1, 4, 1, 9, 2, 7, 2, 8, 3, 8, 4, 10, 5, 10, 4, 6, 2, 9, 4, 10, 2, 4, 2, 8, 1, 6, 3, 7, 5, 5, 3, 8, 4, 9, 6, 8, 2, 9, 4, 5, 5, 8, 1, 9, 1, 8, 3, 7, 4, 9, 4, 10, 3, 10, 2, 5, 1, 5, 3, 9, 2, 7, 3, 5, 3, 10, 1, 6, 4, 4, 1, 9, 7, 10, 2, 8, 6, 9, 4, 7, 6, 10, 6, 9, 5, 8, 5, 9, 4, 8, 3, 10, 4, 6, 3, 4, 3, 9, 7, 8, 2, 6, 3, 9, 1, 6, 3, 4, 4, 7, 4, 5, 3, 6, 4, 7, 2, 9, 5, 9, 5, 8, 4, 6, 6, 8, 7, 10, 5, 6, 1, 6, 5, 10, 3, 9, 2, 6, 4, 8, 2, 8, 5, 8, 7, 10, 5, 8, 3, 7, 3, 6, 6, 7, 1, 8, 7, 9, 2, 10, 8, 9, 9, 10, 7, 10, 6, 9, 2, 9, 1, 6, 2, 9, 3, 8, 1, 10, 4, 6, 1, 9, 6, 10, 9, 10, 8, 9, 6, 9, 3, 7, 2, 5, 4, 5, 3, 4, 4, 7, 3, 5, 2, 9, 1, 8, 4, 7, 1, 3, 3, 5, 4, 10, 4, 6, 1, 7, 3, 10, 3, 10, 5, 5, 3, 10, 5, 9, 3, 9, 6, 8, 4, 5, 1, 7, 6, 6, 6, 6, 5, 8, 6, 8, 5, 10, 1, 10, 1, 10, 4, 9, 7, 10, 4, 9, 2, 7, 1, 10, 2, 7, 2, 6, 5, 8, 8, 9, 1, 8, 6, 7, 3, 9, 8, 9, 1, 7, 4, 10, 6, 8, 4, 10, 2, 6, 1, 6, 2, 5, 5, 8, 3, 3, 2, 10, 3, 10, 3, 5, 1, 6, 2, 4, 2, 3, 3, 9, 5, 8, 3, 6, 1, 4, 4, 10, 7, 10, 6, 8, 1, 9, 1, 7, 2, 6, 1, 9, 1, 8, 2, 3, 2, 7, 3, 7, 5, 5, 5, 7, 4, 10, 6, 8, 6, 7, 2, 7, 5, 8, 7, 10, 2, 10, 1, 7, 7, 9, 6, 8, 3, 10, 7, 7, 5, 7, 4, 9, 2, 10, 1, 7, 4, 7, 6, 6, 1, 1, 1, 4, 2, 10, 3, 8, 3, 6, 1, 6, 1, 6, 1, 9, 2, 6, 2, 9, 6, 9, 6, 6, 4, 9, 5, 8, 2, 9, 3, 7, 2, 3, 3, 3, 1, 8, 2, 10, 5, 7, 3, 8, 3, 5, 3, 4, 1, 9, 2, 10, 2, 8, 6, 9, 1, 2, 2, 2, 2, 10, 1, 9, 1, 10, 5, 9, 8, 8, 8, 10, 5, 7, 3, 8, 5, 6, 1, 4, 1, 5, 3, 6, 3, 8, 3, 9, 1, 9, 1, 9, 4, 8, 3, 7, 3, 4, 4, 10, 2, 8, 5, 10, 1, 6, 2, 7, 3, 8, 4, 7, 2, 6, 2, 3, 3, 8, 2, 10, 9, 10, 7, 10, 3, 10, 5, 10, 10, 10, 8, 10, 4, 4, 4, 5, 4, 5, 3, 9, 5, 10, 10, 10, 2, 8, 7, 9, 2, 7, 6, 7, 6, 8, 1, 4, 1, 10, 3, 8, 4, 9, 4, 10, 3, 5, 4, 7, 3, 6, 3, 10, 5, 8, 6, 10, 4, 10, 3, 8, 5, 8, 3, 8, 6, 10, 7, 9, 1, 4, 3, 7, 6, 7, 2, 10, 3, 6, 1, 6, 5, 6, 4, 6, 4, 9, 5, 9, 1, 8, 5, 6, 1, 4, 4, 7, 2, 5, 1, 9, 3, 10, 6, 7, 3, 4, 1, 10, 1, 6, 2, 10, 6, 9, 9, 9, 7, 7, 3, 10, 1, 7, 3, 8, 5, 8, 1, 10, 1, 5, 3, 7, 3, 6, 5, 8, 1, 5, 2, 9, 8, 9, 2, 10, 5, 7, 7, 9, 7, 10, 1, 3, 1, 9, 5, 10, 4, 9, 8, 10, 9, 10, 7, 10, 8, 9, 5, 6, 3, 10, 3, 6, 2, 7, 3, 8, 3, 8, 4, 10, 3, 8, 3, 7, 1, 3, 1, 9, 7, 9, 5, 8, 4, 6, 4, 5, 1, 8, 2, 4, 2, 4, 2, 9, 5, 8, 1, 7, 1, 6, 2, 10, 1, 9, 8, 9, 4, 9, 1, 9, 1, 8, 2, 7, 5, 7, 1, 9, 3, 8, 3, 7, 3, 6, 2, 8, 3, 10, 6, 9, 3, 10, 1, 5, 3, 6, 4, 10, 2, 7, 3, 8, 5, 6, 2, 9, 1, 4, 4, 10, 6, 9, 3, 8, 5, 8, 2, 7, 5, 10, 7, 10, 3, 7, 1, 7, 3, 10, 2, 9, 7, 8, 1, 10, 2, 9, 2, 8, 3, 7, 3, 6, 4, 10, 5, 9, 3, 5, 3, 8, 1, 6, 4, 8, 6, 7, 2, 10, 5, 8, 7, 7, 1, 7, 6, 10, 3, 9, 3, 9, 1, 10, 4, 10, 7, 10, 1, 7, 3, 4, 1, 7, 5, 8, 3, 7, 2, 9, 7, 8, 7, 8, 1, 7, 2, 8, 7, 10, 9, 9, 2, 10, 7, 8, 4, 6, 3, 7, 1, 8, 2, 6, 1, 5, 3, 4, 4, 8, 5, 6, 1, 6, 4, 6, 1, 4, 2, 5, 1, 10, 3, 10, 9, 9, 1, 7, 2, 9, 3, 8, 6, 10, 1, 7, 6, 10, 1, 5, 4, 9, 6, 7, 6, 7, 6, 10, 3, 9, 2, 10, 4, 5, 2, 5, 1, 9, 3, 4, 1, 9, 1, 7, 1, 9, 1, 8, 5, 10, 6, 10, 1, 10, 4, 7, 5, 7, 3, 8, 5, 8, 3, 7, 3, 7, 2, 7, 1, 10, 6, 6, 2, 10, 2, 10, 4, 7, 4, 9, 4, 9, 7, 10, 6, 8, 2, 7, 4, 7, 4, 9, 1, 7, 7, 9, 1, 8, 7, 10, 1, 8, 4, 7, 2, 9, 4, 5, 2, 7, 2, 7, 2, 6, 1, 3, 1, 8, 4, 10, 3, 5, 1, 10, 1, 8, 2, 8, 1, 8, 6, 6, 4, 5, 4, 10, 3, 7, 3, 6, 3, 10, 3, 4, 1, 7, 3, 9, 1, 8, 5, 8, 1, 8, 3, 10, 3, 7, 3, 6, 3, 5, 2, 5, 2, 7, 2, 7, 2, 5, 2, 3, 2, 3, 2, 5, 3, 6, 4, 6, 2, 10, 8, 9, 3, 8, 2, 7, 1, 10, 2, 6, 3, 7, 5, 7, 2, 7, 3, 8, 6, 7, 2, 5, 2, 3, 3, 3, 1, 6, 4, 5, 2, 7, 4, 6, 3, 8, 2, 8, 2, 8, 5, 8, 7, 10, 1, 6, 4, 10, 5, 10, 3, 9, 4, 10, 6, 6, 1, 6, 4, 6, 1, 8, 4, 8, 1, 6, 3, 6, 3, 8, 3, 7, 6, 7, 3, 10, 3, 9, 4, 6, 4, 10, 1, 9, 4, 7, 5, 10, 2, 7, 2, 6, 1, 5, 4, 10, 8, 10, 2, 10, 5, 8, 3, 6, 1, 4, 1, 3, 2, 7, 4, 7, 5, 9, 6, 8, 7, 10, 2, 7, 1, 7, 3, 5, 2, 5, 1, 5, 2, 2, 2, 4, 2, 8, 4, 9, 2, 6, 2, 4, 2, 7, 3, 7, 3, 5, 4, 8, 4, 9, 1, 10, 9, 10, 4, 10, 3, 8, 1, 7, 5, 8, 7, 8, 3, 5, 1, 9, 3, 8, 1, 4, 2, 4, 2, 3, 3, 8, 3, 8, 1, 5, 1, 6, 2, 10, 5, 8, 2, 9, 3, 6, 5, 7, 2, 8, 1, 6, 2, 7, 1, 6, 1, 9, 5, 9, 1, 7, 3, 8, 5, 7, 2, 10, 3, 7, 4, 10, 2, 7, 5, 6, 3, 7, 3, 5, 2, 3, 2, 10, 1, 8, 5, 8, 1, 6, 5, 7, 5, 8, 4, 6, 1, 2, 2, 9, 8, 9, 8, 9, 7, 9, 1, 9, 3, 7, 4, 10, 7, 7, 5, 9, 7, 8, 4, 10, 1, 10, 6, 8, 3, 9, 7, 10, 9, 10, 3, 9, 6, 7, 5, 7, 4, 9, 4, 9, 2, 9, 3, 8, 1, 8, 1, 6, 2, 5, 1, 8, 2, 7, 4, 4, 1, 10, 1, 8, 3, 7, 2, 10, 5, 7, 4, 7, 6, 9, 2, 7, 2, 6, 3, 9, 2, 6, 3, 4, 2, 9, 3, 10, 7, 9, 6, 10, 1, 5, 4, 9, 1, 8, 6, 10, 6, 10, 8, 8, 3, 8, 7, 8, 6, 9, 2, 6, 1, 7, 5, 10, 1, 6, 3, 5, 4, 10, 8, 9, 9, 10, 7, 7, 4, 7, 3, 7, 6, 6, 5, 7, 1, 9, 1, 9, 8, 9, 3, 8, 2, 4, 1, 8, 6, 6, 1, 6, 2, 10, 5, 7, 4, 9, 6, 8, 3, 9, 3, 10, 10, 10, 5, 10, 4, 9, 3, 7, 6, 6, 2, 5, 2, 6, 4, 5, 4, 7, 5, 7, 3, 4, 4, 5, 5, 9, 2, 5, 1, 7, 2, 2, 1, 5, 2, 8, 5, 9, 1, 2, 1, 2, 2, 9, 4, 8, 4, 5, 2, 8, 2, 6, 3, 7, 2, 10, 4, 5, 3, 7, 4, 10, 5, 10, 3, 7, 1, 9, 4, 6, 3, 4, 2, 10, 4, 10, 4, 8, 3, 10, 5, 9, 2, 8, 2, 7, 6, 7, 1, 7, 5, 5, 4, 5, 5, 10, 8, 9, 5, 9, 6, 9, 2, 6, 3, 9, 7, 8, 2, 9, 4, 8, 1, 7, 3, 5, 1, 6, 5, 9, 3, 10, 7, 9, 4, 6, 2, 9, 5, 9, 7, 8, 5, 8, 6, 6, 1, 3, 1, 6, 2, 9, 5, 7, 2, 9, 4, 7, 5, 6, 4, 10, 5, 7, 6, 8, 7, 8, 7, 8, 5, 7, 4, 7, 6, 10, 7, 9, 3, 6, 5, 7, 6, 10, 6, 8, 5, 5, 2, 7, 2, 9, 1, 9, 7, 9, 5, 7, 4, 7, 4, 6, 4, 6, 2, 4, 1, 9, 6, 10, 8, 9, 3, 9, 3, 9, 2, 10, 3, 9, 2, 8, 7, 8, 4, 8, 5, 9, 5, 5, 4, 7, 1, 3, 1, 5, 4, 6, 5, 10, 3, 9, 3, 5, 2, 5, 2, 10, 3, 4, 3, 6, 5, 10, 6, 7, 3, 7, 5, 7, 1, 5, 4, 7, 5, 7, 4, 7, 1, 3, 1, 4, 2, 9, 2, 9, 3, 7, 2, 7, 4, 9, 5, 7, 2, 4, 1, 2, 1, 8, 5, 7, 2, 10, 4, 10, 7, 8, 1, 8, 3, 8, 2, 7, 5, 10, 4, 6, 5, 8, 8, 10, 2, 10, 4, 9, 8, 10, 2, 5, 2, 6, 3, 6, 2, 7, 2, 9, 2, 7, 1, 7, 5, 7, 4, 5, 1, 10, 8, 9, 4, 10, 2, 8, 1, 9, 2, 5, 1, 9, 4, 10, 5, 7, 1, 10, 3, 6, 4, 9, 3, 5, 2, 5, 3, 9, 1, 4, 1, 10, 2, 9, 7, 8, 5, 7, 6, 7, 2, 10, 5, 10, 2, 9, 2, 6, 3, 8, 2, 4, 1, 8, 1, 7, 6, 10, 3, 9, 2, 3, 2, 10, 5, 10, 8, 10, 7, 9, 1, 5, 2, 7, 4, 7, 6, 9, 3, 7, 1, 6, 3, 7, 2, 10, 3, 5, 3, 9, 7, 8, 3, 7, 5, 9, 2, 4, 2, 4, 4, 4, 1, 8, 5, 10, 4, 6, 4, 9, 5, 7, 6, 10, 2, 10, 5, 7, 3, 3, 1, 6, 5, 6, 3, 5, 2, 10, 3, 9, 6, 10, 2, 8, 2, 9, 6, 10, 4, 9, 7, 10, 8, 8, 1, 10, 3, 8, 2, 8, 5, 5, 1, 3, 2, 4, 2, 10, 5, 10, 2, 10, 7, 9, 3, 10, 2, 9, 4, 7, 1, 7, 5, 7, 4, 7, 4, 9, 4, 6, 2, 10, 9, 10, 3, 7, 7, 10, 6, 9, 4, 9, 8, 9, 4, 9, 1, 6, 1, 2, 2, 8, 8, 9, 6, 7, 4, 5, 4, 9, 6, 8, 2, 6, 4, 6, 1, 5, 4, 6, 5, 8, 4, 9, 3, 6, 4, 7, 1, 10, 3, 10, 1, 9, 6, 9, 7, 9, 3, 9, 3, 8, 2, 9, 9, 10, 5, 5, 1, 6, 4, 9, 3, 4, 4, 10, 5, 6, 2, 6, 1, 6, 5, 10, 4, 8, 1, 5, 5, 6, 5, 8, 7, 8, 5, 8, 2, 6, 6, 7, 3, 7, 6, 10, 3, 8, 5, 10, 3, 9, 3, 8, 1, 10, 3, 8, 2, 9, 6, 7, 6, 7, 4, 8, 5, 10, 3, 5, 4, 10, 4, 9, 3, 7, 4, 7, 3, 8, 2, 7, 5, 7, 2, 10, 3, 7, 2, 4, 2, 5, 1, 6, 3, 5, 4, 7, 1, 8, 1, 7, 1, 5, 3, 9, 7, 9, 3, 5, 2, 4, 2, 3, 3, 9, 2, 5, 3, 9, 2, 9, 5, 5, 4, 9, 4, 6, 5, 9, 1, 5, 4, 4, 4, 7, 4, 8, 4, 9, 3, 6, 1, 2, 1, 7, 1, 5, 4, 8, 6, 8, 5, 6, 3, 9, 1, 6, 4, 9, 2, 7, 6, 10, 5, 9, 3, 10, 1, 8, 3, 10, 6, 10, 10, 10, 9, 10, 7, 9, 7, 8, 2, 10, 6, 9, 7, 10, 8, 10, 6, 10, 6, 9, 2, 10, 6, 10, 9, 9, 8, 9, 3, 8, 5, 9, 3, 7, 6, 10, 3, 4, 3, 9, 3, 8, 6, 9, 4, 10, 2, 8, 2, 9, 8, 10, 3, 9, 7, 8, 6, 8, 2, 9, 3, 5, 1, 8, 7, 10, 2, 6, 3, 9, 2, 5, 4, 7, 2, 4, 3, 8, 5, 6, 5, 9, 4, 9, 5, 8, 4, 4, 1, 7, 3, 9, 3, 10, 1, 5, 1, 10, 1, 6, 2, 8, 4, 9, 5, 9, 3, 7, 6, 9, 6, 10, 3, 8, 2, 7, 1, 7, 2, 7, 7, 9, 5, 7, 2, 10, 3, 8, 6, 7, 3, 9, 7, 8, 5, 5, 3, 7, 5, 10, 5, 10, 1, 8, 7, 8, 2, 8, 1, 9, 4, 5, 5, 9, 1, 3, 2, 9, 2, 4, 2, 9, 2, 10, 2, 9, 5, 9, 1, 10, 6, 9, 4, 8, 2, 9, 3, 9, 4, 8, 2, 10, 8, 10, 8, 10, 3, 9, 1, 10, 5, 9, 4, 6, 6, 10, 6, 8, 7, 10, 4, 10, 2, 9, 7, 8, 1, 5, 1, 9, 2, 7, 4, 7, 1, 2, 1, 9, 2, 7, 2, 6, 3, 6, 3, 10, 2, 9, 4, 7, 5, 10, 1, 9, 4, 7, 4, 10, 5, 5, 5, 9, 2, 8, 4, 4, 2, 6, 5, 10, 4, 10, 4, 7, 4, 8, 5, 9, 8, 9, 8, 10, 4, 9, 4, 4, 2, 9, 5, 8, 2, 6, 4, 6, 3, 7, 4, 6, 3, 5, 3, 8, 3, 8, 4, 8, 1, 7, 2, 8, 2, 10, 6, 9, 8, 10, 4, 9, 2, 9, 7, 8, 7, 7, 1, 10, 5, 8, 5, 8, 2, 7, 4, 6, 5, 8, 2, 6, 3, 7, 2, 4, 2, 9, 1, 7, 4, 9, 5, 7, 2, 5, 4, 10, 1, 8, 2, 10, 1, 8, 5, 9, 5, 9, 4, 10, 5, 9, 2, 8, 6, 6, 1, 9, 1, 9, 1, 7, 1, 8, 1, 10, 10, 10, 8, 9, 4, 7, 5, 7, 3, 5, 3, 9, 5, 10, 1, 3, 1, 5, 1, 3, 3, 9, 3, 9, 1, 5, 2, 8, 2, 6, 4, 9, 3, 8, 1, 7, 3, 8, 3, 6, 1, 10, 2, 9, 5, 6, 1, 6, 2, 7, 1, 8, 6, 9, 3, 10, 2, 8, 2, 8, 6, 9, 7, 10, 7, 9, 1, 6, 3, 8, 5, 7, 2, 6, 5, 10, 8, 10, 8, 9, 3, 5, 1, 9, 1, 8, 4, 7, 6, 10, 2, 2, 1, 5, 3, 6, 3, 10, 4, 10, 9, 9, 2, 6, 4, 6, 5, 6, 5, 8, 6, 6, 4, 7, 1, 4, 2, 7, 5, 8, 2, 8, 4, 5, 2, 8, 6, 6, 1, 8, 3, 9, 1, 7, 2, 5, 1, 5, 1, 2, 1, 10, 9, 9, 2, 9, 8, 10, 4, 9, 6, 8, 7, 10, 1, 10, 4, 8, 2, 9, 7, 9, 1, 4, 3, 9, 3, 9, 2, 5, 1, 9, 1, 8, 3, 4, 4, 7, 4, 6, 6, 10, 3, 3, 2, 9, 7, 8, 1, 9, 3, 3, 3, 10, 6, 8, 5, 10, 8, 9, 2, 8, 3, 5, 1, 8, 3, 10, 1, 10, 6, 9, 6, 7, 6, 6, 4, 5, 5, 8, 3, 8, 1, 7, 6, 10, 5, 10, 2, 10, 1, 9, 6, 8, 2, 6, 1, 3, 1, 7, 2, 9, 1, 7, 4, 6, 6, 10, 3, 7, 3, 6, 5, 9, 7, 8, 3, 8, 2, 9, 2, 10, 1, 8, 1, 9, 3, 9, 5, 8, 8, 8, 3, 6, 3, 7, 2, 10, 4, 10, 7, 10, 4, 4, 2, 7, 1, 9, 6, 10, 5, 5, 2, 10, 7, 8, 1, 6, 4, 8, 2, 10, 1, 4, 4, 10, 2, 6, 4, 5, 1, 6, 3, 5, 1, 6, 3, 3, 2, 8, 4, 8, 1, 6, 4, 8, 2, 7, 4, 5, 2, 8, 5, 9, 7, 10, 6, 6, 1, 8, 5, 6, 1, 9, 2, 8, 4, 5, 3, 5, 4, 5, 4, 10, 2, 4, 2, 7, 2, 7, 2, 6, 3, 7, 1, 7, 2, 9, 2, 7, 4, 5, 1, 8, 2, 4, 3, 6, 5, 6, 2, 7, 6, 7, 1, 10, 5, 9, 4, 9, 3, 6, 4, 8, 4, 6, 1, 7, 5, 7, 3, 7, 3, 9, 1, 8, 4, 5, 4, 8, 8, 10, 4, 8, 2, 5, 4, 7, 3, 3, 3, 7, 4, 5, 2, 9, 8, 10, 2, 10, 6, 8, 6, 6, 3, 8, 6, 9, 2, 6, 1, 7, 2, 3, 1, 6, 3, 10, 2, 5, 5, 8, 2, 9, 8, 10, 1, 3, 3, 6, 2, 9, 3, 8, 3, 10, 3, 8, 3, 4, 4, 10, 5, 9, 9, 9, 9, 10, 4, 9, 5, 10, 6, 9, 5, 7, 2, 7, 5, 10, 3, 9, 5, 7, 3, 6, 3, 10, 6, 7, 1, 4, 1, 7, 2, 9, 4, 7, 2, 4, 2, 4, 4, 10, 4, 7, 4, 9, 5, 9, 5, 10, 5, 10, 2, 3, 1, 7, 5, 6, 5, 10, 6, 9, 7, 7, 3, 10, 5, 6, 1, 8, 7, 8, 2, 5, 4, 6, 2, 5, 5, 9, 8, 9, 3, 8, 2, 9, 6, 8, 6, 7, 6, 9, 6, 6, 1, 8, 7, 7, 1, 8, 1, 5, 1, 10, 5, 6, 1, 7, 4, 8, 5, 6, 4, 9, 1, 8, 3, 6, 2, 7, 5, 7, 2, 6, 3, 8, 4, 10, 6, 9, 7, 9, 6, 7, 3, 6, 1, 9, 3, 8, 3, 9, 2, 9, 8, 9, 4, 8, 1, 9, 1, 7, 1, 6, 4, 9, 5, 10, 1, 5, 2, 5, 4, 8, 8, 8, 1, 2, 2, 9, 7, 8, 1, 3, 2, 6, 2, 6, 1, 2, 2, 8, 1, 4, 3, 6, 5, 8, 2, 7, 4, 5, 2, 10, 3, 7, 6, 9, 4, 9, 5, 6, 2, 5, 5, 9, 7, 10, 7, 8, 8, 10, 2, 8, 1, 7, 5, 8, 3, 6, 6, 8, 4, 10, 6, 10, 2, 3, 2, 9, 1, 9, 4, 7, 3, 3, 2, 2, 1, 10, 5, 10, 2, 5, 2, 10, 2, 7, 4, 8, 4, 6, 2, 8, 7, 9, 1, 9, 8, 9, 1, 8, 4, 6, 3, 7, 2, 8, 2, 6, 4, 10, 9, 10, 9, 10, 6, 10, 8, 10, 5, 7, 3, 10, 2, 8, 3, 8, 5, 6, 1, 10, 2, 9, 8, 8, 4, 10, 2, 10, 1, 6, 3, 6, 3, 5, 3, 3, 1, 10, 2, 10, 7, 9, 7, 7, 1, 9, 3, 5, 4, 9, 4, 5, 1, 4, 3, 9, 3, 9, 3, 8, 5, 9, 2, 3, 2, 9, 1, 6, 2, 7, 1, 9, 3, 5, 4, 8, 5, 7, 2, 9, 4, 8, 5, 10, 2, 9, 1, 5, 5, 10, 4, 8, 6, 9, 7, 8, 4, 5, 4, 9, 2, 5, 2, 8, 1, 8, 4, 6, 1, 6, 1, 7, 4, 8, 1, 6, 3, 7, 5, 5, 3, 5, 5, 8, 6, 7, 3, 10, 3, 3, 1, 10, 3, 8, 5, 9, 3, 6, 6, 8, 6, 9, 3, 6, 4, 10, 1, 8, 4, 4, 4, 10, 3, 8, 6, 6, 2, 10, 6, 8, 3, 5, 4, 8, 2, 7, 4, 5, 2, 6, 1, 10, 4, 9, 5, 8, 3, 7, 6, 6, 1, 8, 1, 7, 2, 10, 3, 4, 2, 8, 1, 10, 4, 10, 2, 9, 2, 10, 1, 7, 2, 10, 1, 7, 2, 10, 7, 8, 3, 7, 6, 9, 3, 8, 6, 7, 2, 10, 6, 9, 4, 8, 5, 8, 3, 7, 4, 8, 6, 9, 4, 10, 6, 7, 1, 5, 1, 5, 2, 6, 1, 3, 1, 5, 4, 10, 8, 10, 7, 8, 6, 10, 3, 7, 3, 6, 2, 5, 4, 7, 2, 4, 2, 3, 1, 4, 3, 5, 2, 6, 5, 10, 4, 6, 4, 6, 4, 9, 2, 9, 6, 9, 7, 8, 1, 7, 2, 5, 2, 4, 4, 8, 2, 7, 6, 9, 2, 9, 3, 9, 2, 9, 5, 7, 3, 4, 2, 4, 3, 6, 1, 9, 7, 9, 3, 10, 4, 9, 3, 4, 3, 7, 3, 9, 2, 4, 1, 4, 3, 4, 3, 8, 7, 8, 5, 10, 1, 6, 2, 4, 2, 9, 1, 3, 1, 10, 3, 8, 3, 8, 1, 9, 8, 8, 4, 8, 1, 7, 1, 3, 1, 6, 1, 10, 2, 3, 1, 9, 3, 7, 2, 5, 3, 7, 3, 4, 2, 3, 2, 4, 3, 5, 1, 8, 5, 10, 6, 6, 6, 7, 2, 5, 3, 10, 6, 10, 1, 4, 3, 7, 1, 9, 4, 5, 2, 9, 6, 8, 8, 10, 8, 8, 2, 9, 5, 10, 1, 9, 2, 3, 3, 5, 4, 9, 8, 9, 9, 10, 4, 5, 2, 3, 1, 9, 6, 10, 6, 7, 4, 5, 1, 9, 1, 4, 1, 10, 3, 6, 4, 9, 5, 10, 1, 9, 4, 9, 3, 10, 5, 9, 2, 6, 5, 7, 2, 10, 9, 10, 2, 10, 4, 6, 4, 9, 2, 10, 6, 10, 3, 6, 2, 9, 2, 6, 3, 10, 5, 10, 4, 10, 3, 7, 4, 9, 2, 5, 5, 9, 3, 6, 5, 8, 2, 8, 2, 10, 5, 5, 1, 7, 1, 5, 4, 10, 1, 10, 3, 8, 1, 9, 7, 9, 1, 9, 2, 4, 3, 7, 2, 10, 4, 10, 2, 6, 2, 8, 4, 7, 6, 8, 1, 4, 1, 2, 1, 4, 1, 8, 3, 9, 4, 8, 1, 5, 3, 3, 3, 9, 2, 8, 2, 9, 8, 10, 6, 9, 2, 7, 4, 6, 6, 7, 3, 8, 5, 6, 2, 7, 5, 5, 1, 4, 1, 8, 5, 6, 5, 10, 4, 7, 6, 7, 1, 9, 2, 5, 4, 8, 2, 8, 1, 9, 2, 9, 3, 8, 5, 10, 1, 7, 4, 5, 1, 8, 4, 8, 3, 5, 2, 8, 1, 5, 5, 6, 1, 8, 2, 3, 1, 9, 2, 9, 2, 8, 2, 8, 4, 7, 5, 7, 6, 8, 7, 9, 6, 6, 5, 9, 6, 7, 6, 7, 5, 8, 3, 4, 2, 8, 4, 6, 1, 6, 4, 8, 4, 10, 5, 10, 8, 10, 3, 9, 8, 8, 2, 8, 5, 10, 3, 4, 1, 5, 4, 9, 1, 5, 5, 7, 2, 10, 2, 2, 1, 9, 2, 8, 4, 8, 3, 10, 5, 8, 2, 5, 4, 9, 3, 8, 4, 10, 2, 3, 1, 4, 1, 7, 2, 4, 2, 8, 3, 6, 4, 7, 5, 6, 3, 4, 2, 3, 1, 7, 6, 10, 7, 8, 7, 10, 5, 10, 7, 10, 2, 9, 7, 10, 5, 9, 6, 8, 3, 8, 7, 9, 1, 4, 1, 8, 3, 5, 3, 9, 5, 8, 1, 6, 1, 4, 1, 10, 2, 4, 2, 5, 4, 6, 4, 10, 3, 4, 2, 7, 3, 10, 9, 10, 1, 9, 7, 8, 6, 7, 5, 9, 6, 9, 4, 10, 1, 7, 5, 8, 1, 7, 5, 5, 2, 7, 4, 8, 5, 6, 1, 8, 3, 10, 7, 10, 7, 9, 5, 8, 5, 10, 1, 10, 8, 9, 2, 9, 4, 9, 4, 5, 2, 9, 3, 7, 5, 6, 2, 5, 4, 6, 1, 6, 2, 6, 1, 7, 6, 6, 1, 9, 2, 10, 1, 8, 6, 7, 4, 8, 2, 10, 6, 9, 7, 8, 3, 10, 4, 8, 1, 9, 6, 9, 7, 10, 4, 4, 1, 6, 4, 7, 5, 10, 2, 8, 6, 6, 4, 10, 4, 8, 4, 4, 2, 9, 2, 6, 3, 6, 3, 8, 3, 5, 3, 4, 1, 5, 5, 6, 1, 4, 1, 10, 2, 9, 3, 6, 3, 4, 4, 8, 1, 8, 6, 7, 2, 7, 5, 6, 2, 10, 1, 10, 1, 4, 3, 9, 3, 5, 3, 3, 1, 8, 8, 9, 2, 10, 3, 9, 4, 7, 1, 5, 2, 10, 1, 10, 7, 8, 1, 9, 6, 7, 3, 8, 5, 8, 1, 10, 7, 7, 2, 10, 2, 9, 7, 9, 1, 4, 2, 8, 3, 7, 3, 4, 4, 7, 6, 10, 4, 10, 2, 7, 1, 5, 1, 7, 4, 10, 6, 7, 7, 10, 5, 9, 7, 8, 2, 8, 2, 7, 3, 8, 1, 10, 5, 9, 7, 7, 2, 5, 3, 4, 3, 3, 3, 9, 5, 8, 1, 9, 2, 10, 3, 5, 2, 8, 5, 6, 5, 5, 3, 10, 3, 7, 4, 9, 7, 10, 2, 7, 1, 10, 2, 5, 3, 10, 3, 10, 4, 10, 4, 9, 5, 8, 5, 7, 7, 10, 2, 9, 2, 8, 4, 7, 2, 7, 5, 9, 5, 8, 1, 6, 2, 5, 4, 9, 7, 8, 4, 8, 5, 8, 4, 5, 2, 10, 9, 9, 5, 9, 4, 7, 6, 7, 2, 3, 2, 10, 5, 9, 1, 10, 1, 7, 4, 9, 6, 8, 2, 7, 2, 6, 1, 10, 2, 9, 1, 9, 4, 5, 5, 10, 3, 8, 6, 10, 9, 10, 5, 8, 2, 8, 1, 4, 1, 7, 4, 10, 5, 8, 1, 4, 1, 5, 2, 8, 5, 10, 2, 4, 3, 4, 1, 9, 3, 10, 5, 9, 7, 10, 7, 8, 4, 9, 2, 7, 3, 10, 3, 5, 1, 8, 4, 9, 2, 7, 5, 7, 1, 7, 4, 10, 5, 8, 3, 7, 1, 9, 5, 6, 3, 10, 4, 8, 4, 8, 4, 8, 3, 8, 6, 6, 1, 3, 1, 5, 3, 8, 3, 8, 2, 5, 4, 9, 5, 6, 6, 6, 4, 6, 5, 10, 2, 8, 3, 5, 2, 7, 4, 5, 2, 2, 1, 7, 3, 8, 5, 10, 2, 8, 1, 7, 4, 7, 3, 8, 3, 8, 6, 8, 6, 6, 3, 9, 2, 8, 4, 7, 1, 6, 5, 7, 6, 9, 2, 8, 5, 9, 4, 7, 3, 10, 4, 6, 1, 2, 1, 5, 2, 7, 3, 7, 4, 10, 2, 8, 4, 4, 4, 10, 5, 8, 6, 10, 4, 5, 3, 9, 6, 7, 5, 8, 8, 9, 7, 8, 1, 6, 1, 9, 1, 7, 1, 10, 6, 8, 3, 10, 2, 9, 1, 6, 4, 9, 4, 4, 2, 9, 2, 6, 1, 8, 1, 5, 4, 8, 3, 4, 3, 9, 4, 6, 1, 2, 2, 2, 1, 8, 5, 10, 6, 10, 8, 9, 1, 8, 2, 10, 4, 6, 1, 10, 2, 7, 3, 5, 2, 8, 1, 4, 1, 3, 2, 9, 7, 9, 7, 7, 4, 10, 6, 6, 1, 3, 1, 10, 2, 8, 6, 9, 4, 8, 3, 9, 3, 4, 3, 10, 2, 3, 2, 6, 1, 7, 4, 5, 1, 10, 6, 6, 5, 10, 2, 7, 7, 7, 3, 10, 3, 5, 4, 6, 3, 6, 2, 10, 4, 8, 2, 8, 2, 6, 2, 4, 1, 6, 5, 10, 1, 9, 2, 7, 4, 5, 3, 10, 4, 9, 3, 10, 1, 5, 4, 8, 5, 8, 3, 6, 4, 10, 6, 9, 3, 6, 6, 10, 4, 7, 6, 10, 1, 8, 1, 10, 4, 7, 5, 5, 1, 6, 4, 6, 5, 5, 5, 8, 4, 7, 1, 9, 7, 9, 2, 2, 2, 9, 1, 9, 4, 7, 4, 8, 7, 9, 3, 7, 4, 10, 4, 7, 2, 8, 5, 10, 2, 10, 2, 3, 1, 9, 2, 8, 2, 7, 5, 9, 8, 9, 4, 9, 8, 10, 1, 10, 7, 10, 4, 10, 5, 8, 1, 7, 2, 8, 2, 9, 4, 10, 1, 5, 3, 6, 4, 9, 6, 9, 3, 5, 4, 8, 3, 6, 2, 5, 5, 8, 3, 6, 1, 9, 1, 6, 2, 10, 5, 7, 5, 10, 8, 10, 4, 10, 8, 10, 1, 7, 2, 9, 3, 7, 1, 10, 3, 10, 2, 7, 3, 7, 5, 10, 1, 8, 3, 6, 3, 3, 1, 3, 2, 8, 1, 7, 2, 6, 1, 7, 3, 7, 5, 8, 1, 7, 2, 10, 1, 3, 1, 5, 2, 10, 4, 9, 1, 9, 6, 7, 7, 10, 1, 5, 4, 8, 4, 9, 1, 2, 1, 10, 4, 8, 1, 2, 2, 8, 3, 10, 4, 7, 2, 7, 2, 5, 3, 5, 3, 6, 3, 8, 7, 8, 3, 9, 7, 7, 6, 9, 1, 8, 3, 4, 1, 10, 6, 8, 2, 7, 1, 6, 4, 10, 4, 10, 6, 8, 2, 5, 3, 9, 4, 10, 5, 8, 1, 9, 6, 8, 7, 9, 4, 5, 1, 5, 4, 8, 4, 7, 4, 7, 1, 3, 2, 10, 3, 7, 2, 8, 2, 7, 5, 6, 3, 7, 3, 8, 7, 7, 1, 9, 4, 7, 1, 8, 5, 9, 6, 9, 4, 4, 1, 8, 3, 3, 1, 10, 2, 10, 5, 5, 2, 10, 2, 10, 3, 9, 5, 7, 1, 6, 1, 6, 2, 8, 3, 7, 2, 10, 2, 6, 2, 6, 5, 9, 2, 8, 3, 10, 3, 8, 5, 9, 5, 7, 4, 9, 2, 9, 2, 4, 3, 9, 6, 10, 8, 10, 7, 7, 1, 7, 1, 6, 2, 6, 5, 6, 3, 6, 1, 6, 4, 4, 1, 5, 1, 10, 3, 7, 1, 9, 3, 8, 7, 9, 7, 10, 4, 10, 4, 4, 2, 10, 1, 6, 6, 8, 7, 10, 2, 8, 1, 10, 2, 8, 4, 10, 2, 8, 2, 4, 2, 5, 1, 7, 1, 6, 6, 8, 2, 8, 3, 6, 1, 2, 1, 5, 2, 6, 4, 10, 3, 7, 7, 10, 6, 9, 1, 5, 1, 7, 4, 8, 2, 5, 1, 8, 6, 10, 7, 9, 1, 10, 1, 5, 4, 10, 9, 10, 1, 5, 2, 10, 2, 9, 2, 5, 4, 8, 1, 7, 1, 10, 5, 7, 2, 10, 2, 9, 4, 10, 1, 5, 5, 10, 7, 10, 8, 9, 5, 8, 5, 7, 5, 10, 1, 4, 1, 7, 3, 9, 1, 7, 6, 10, 7, 8, 2, 10, 3, 9, 3, 7, 3, 9, 3, 6, 1, 5, 1, 9, 1, 8, 8, 9, 5, 10, 6, 7, 2, 7, 7, 10, 4, 10, 2, 9, 7, 10, 9, 9, 1, 9, 3, 10, 3, 6, 1, 6, 5, 7, 6, 8, 1, 2, 2, 6, 2, 9, 4, 9, 3, 8, 1, 7, 2, 7, 3, 10, 4, 7, 2, 7, 2, 7, 2, 10, 1, 9, 1, 8, 5, 5, 3, 10, 5, 5, 2, 6, 3, 10, 9, 9, 5, 7, 7, 10, 6, 9, 6, 8, 2, 9, 5, 6, 2, 5, 3, 9, 8, 10, 5, 7, 2, 10, 6, 8, 1, 6, 2, 9, 2, 9, 1, 10, 6, 7, 6, 10, 8, 9, 4, 9, 4, 10, 6, 10, 4, 9, 7, 10, 3, 8, 4, 5, 1, 4, 3, 4, 1, 8, 1, 3, 2, 9, 3, 7, 2, 4, 4, 5, 4, 7, 2, 4, 4, 10, 6, 7, 1, 9, 3, 3, 1, 5, 3, 6, 3, 7, 4, 10, 1, 10, 8, 9, 3, 10, 5, 8, 7, 7, 2, 10, 6, 8, 6, 7, 6, 9, 3, 7, 4, 9, 3, 7, 7, 10, 5, 8, 1, 7, 2, 6, 1, 5, 5, 7, 1, 6, 4, 7, 2, 10, 3, 6, 5, 6, 3, 9, 6, 8, 1, 9, 1, 6, 5, 5, 2, 5, 2, 8, 2, 2, 2, 6, 2, 5, 4, 10, 2, 7, 2, 8, 1, 7, 3, 9, 4, 8, 3, 8, 6, 7, 3, 7, 4, 8, 3, 10, 2, 4, 3, 8, 3, 5, 4, 8, 2, 10, 5, 9, 1, 8, 5, 7, 1, 5, 2, 10, 1, 9, 1, 7, 2, 10, 7, 7, 1, 4, 3, 5, 3, 8, 3, 10, 8, 9, 8, 9, 3, 8, 6, 10, 1, 1, 1, 7, 4, 10, 4, 9, 4, 8, 5, 9, 2, 6, 1, 4, 1, 10, 3, 8, 1, 7, 2, 10, 3, 6, 1, 7, 3, 5, 3, 6, 2, 7, 2, 9, 6, 7, 2, 3, 1, 5, 4, 6, 4, 8, 2, 7, 5, 5, 2, 7, 4, 7, 4, 10, 2, 8, 5, 7, 3, 9, 6, 10, 4, 4, 1, 10, 2, 8, 7, 9, 8, 9, 6, 8, 1, 4, 2, 9, 7, 10, 2, 10, 5, 8, 5, 8, 2, 6, 3, 9, 3, 8, 4, 9, 8, 9, 7, 10, 9, 9, 3, 10, 6, 9, 5, 9, 5, 8, 2, 6, 4, 10, 8, 10, 4, 9, 3, 6, 4, 7, 2, 10, 4, 7, 1, 9, 1, 7, 2, 9, 3, 9, 3, 3, 3, 8, 6, 8, 1, 8, 1, 3, 3, 9, 4, 10, 3, 8, 4, 7, 2, 6, 1, 3, 2, 6, 2, 8, 2, 8, 4, 9, 1, 6, 5, 10, 2, 5, 2, 6, 2, 5, 3, 5, 4, 8, 5, 6, 1, 4, 2, 9, 2, 8, 4, 10, 5, 8, 5, 8, 6, 7, 5, 7, 6, 10, 6, 10, 9, 10, 8, 9, 2, 10, 1, 8, 7, 8, 6, 7, 1, 5, 4, 7, 1, 9, 4, 7, 7, 10, 1, 6, 1, 8, 1, 9, 3, 5, 4, 9, 2, 4, 2, 9, 7, 9, 7, 7, 2, 10, 5, 9, 4, 8, 6, 9, 1, 8, 7, 8, 3, 10, 8, 9, 6, 7, 4, 10, 5, 10, 3, 10, 4, 8, 7, 7, 3, 5, 3, 10, 3, 9, 1, 8, 1, 10, 7, 7, 2, 5, 2, 5, 4, 9, 4, 8, 1, 10, 4, 4, 4, 9, 1, 9, 4, 8, 5, 7, 4, 7, 2, 8, 2, 8, 1, 5, 3, 4, 2, 10, 6, 9, 4, 5, 1, 3, 3, 7, 1, 5, 2, 4, 3, 10, 2, 10, 1, 10, 4, 9, 2, 5, 2, 8, 2, 10, 5, 7, 1, 9, 1, 8, 5, 6, 4, 10, 3, 4, 1, 5, 4, 8, 1, 8, 7, 9, 9, 10, 5, 5, 2, 8, 2, 4, 3, 6, 3, 5, 2, 4, 1, 7, 6, 8, 7, 10, 4, 7, 4, 7, 4, 6, 4, 5, 4, 8, 3, 6, 4, 6, 1, 6, 4, 6, 6, 9, 6, 9, 6, 6, 2, 5, 3, 8, 3, 7, 2, 10, 4, 10, 4, 6, 5, 10, 3, 8, 5, 10, 1, 7, 2, 4, 3, 5, 2, 5, 1, 3, 3, 10, 3, 7, 5, 6, 1, 10, 1, 9, 3, 6, 2, 6, 4, 5, 1, 9, 2, 7, 6, 7, 6, 9, 6, 7, 1, 7, 3, 5, 2, 7, 5, 9, 2, 6, 3, 7, 1, 7, 5, 6, 5, 9, 3, 8, 3, 7, 5, 7, 5, 7, 4, 9, 1, 9, 1, 10, 4, 8, 3, 9, 1, 7, 2, 7, 3, 7, 4, 8, 2, 9, 2, 7, 4, 7, 7, 10, 7, 9, 2, 7, 5, 7, 1, 5, 2, 10, 4, 10, 5, 10, 2, 5, 4, 8, 4, 10, 1, 5, 1, 7, 2, 9, 5, 10, 5, 6, 1, 4, 3, 5, 3, 8, 2, 7, 3, 8, 3, 7, 6, 10, 6, 8, 2, 7, 5, 10, 2, 5, 3, 8, 1, 7, 3, 6, 4, 8, 4, 9, 7, 9, 2, 8, 5, 7, 5, 8, 2, 6, 6, 8, 3, 10, 4, 6, 3, 8, 4, 7, 2, 9, 3, 10, 8, 10, 5, 10, 7, 8, 3, 7, 2, 6, 2, 2, 2, 6, 4, 6, 3, 6, 6, 9, 4, 8, 4, 10, 1, 6, 6, 8, 3, 6, 1, 6, 3, 8, 3, 4, 1, 7, 4, 10, 1, 10, 5, 7, 4, 4, 2, 9, 4, 7, 2, 10, 6, 10, 8, 10, 1, 9, 7, 8, 4, 4, 4, 8, 2, 4, 2, 3, 2, 4, 2, 9, 7, 8, 4, 8, 8, 10, 1, 7, 2, 7, 3, 8, 1, 10, 7, 9, 1, 7, 5, 6, 1, 4, 3, 8, 2, 8, 7, 7, 5, 9, 6, 9, 3, 8, 6, 8, 2, 9, 3, 10, 6, 8, 4, 6, 2, 5, 2, 8, 1, 9, 3, 6, 4, 10, 2, 8, 2, 10, 2, 7, 3, 10, 9, 10, 5, 7, 3, 5, 5, 7, 7, 7, 1, 8, 3, 10, 3, 5, 3, 10, 2, 8, 5, 8, 3, 9, 3, 10, 1, 9, 5, 10, 5, 10, 1, 3, 3, 3, 1, 4, 2, 7, 2, 5, 1, 9, 4, 8, 6, 8, 4, 5, 2, 5, 4, 6, 3, 7, 4, 7, 3, 7, 1, 6, 1, 6, 4, 6, 6, 10, 4, 7, 5, 8, 7, 7, 4, 7, 7, 9, 6, 7, 1, 6, 1, 2, 1, 8, 2, 10, 4, 7, 2, 8, 5, 10, 7, 10, 4, 9, 6, 6, 3, 3, 1, 9, 2, 4, 3, 9, 2, 10, 5, 10, 3, 9, 1, 2, 2, 10, 3, 7, 6, 9, 1, 8, 2, 10, 3, 7, 3, 10, 3, 5, 4, 10, 3, 10, 3, 4, 1, 10, 6, 8, 4, 8, 1, 9, 6, 8, 1, 10, 1, 10, 5, 9, 1, 9, 1, 9, 6, 9, 3, 5, 3, 8, 6, 6, 2, 4, 2, 6, 3, 3, 2, 6, 4, 6, 1, 5, 2, 9, 4, 7, 3, 10, 4, 10, 7, 9, 4, 9, 5, 8, 1, 6, 1, 6, 4, 8, 4, 7, 3, 6, 1, 10, 3, 8, 4, 8, 5, 7, 1, 10, 3, 7, 4, 9, 1, 7, 4, 8, 4, 9, 6, 8, 3, 3, 1, 10, 7, 9, 3, 10, 4, 9, 2, 8, 2, 8, 1, 8, 1, 10, 6, 9, 1, 2, 2, 10, 1, 9, 3, 7, 6, 7, 5, 6, 4, 8, 3, 6, 1, 9, 1, 8, 6, 9, 6, 10, 7, 10, 1, 9, 1, 10, 4, 8, 2, 6, 5, 6, 4, 10, 3, 9, 1, 7, 1, 5, 2, 5, 1, 9, 2, 10, 2, 3, 1, 5, 4, 8, 2, 9, 3, 7, 4, 10, 2, 8, 2, 5, 3, 9, 1, 6, 3, 7, 3, 7, 4, 8, 2, 9, 7, 8, 5, 8, 2, 7, 3, 9, 1, 4, 1, 9, 2, 5, 5, 6, 2, 8, 3, 3, 3, 6, 4, 10, 6, 10, 3, 10, 2, 8, 2, 3, 2, 7, 3, 5, 3, 9, 4, 10, 5, 8, 3, 4, 1, 8, 2, 4, 3, 8, 1, 4, 3, 8, 3, 4, 2, 7, 4, 7, 5, 7, 3, 4, 2, 5, 2, 10, 4, 8, 2, 6, 1, 5, 1, 2, 1, 8, 6, 9, 2, 5, 2, 9, 2, 6, 5, 6, 3, 7, 5, 7, 4, 6, 1, 9, 4, 6, 3, 10, 5, 9, 3, 5, 2, 10, 8, 9, 2, 5, 2, 8, 3, 9, 4, 10, 7, 7, 4, 6, 5, 10, 6, 8, 7, 9, 2, 9, 2, 10, 8, 9, 7, 10, 1, 8, 4, 9, 1, 8, 2, 9, 3, 7, 5, 9, 7, 10, 4, 8, 7, 8, 4, 9, 4, 6, 3, 10, 2, 6, 4, 5, 4, 7, 3, 5, 2, 6, 3, 10, 9, 9, 2, 9, 4, 10, 5, 6, 6, 7, 3, 8, 3, 5, 2, 9, 3, 7, 1, 9, 5, 8, 6, 10, 1, 8, 7, 9, 5, 8, 1, 7, 1, 4, 1, 6, 5, 8, 4, 8, 3, 7, 2, 10, 3, 10, 4, 7, 5, 8, 2, 4, 3, 4, 1, 4, 1, 7, 2, 8, 1, 7, 5, 7, 1, 6, 3, 8, 5, 8, 6, 7, 2, 3, 1, 9, 1, 6, 4, 10, 2, 8, 4, 10, 1, 5, 2, 7, 1, 4, 3, 9, 2, 3, 1, 7, 2, 10, 2, 7, 1, 8, 2, 4, 2, 7, 2, 9, 4, 10, 1, 7, 6, 9, 7, 8, 4, 6, 1, 5, 4, 7, 2, 10, 5, 7, 1, 8, 2, 10, 6, 7, 1, 5, 4, 5, 4, 5, 3, 5, 2, 6, 3, 4, 2, 7, 5, 9, 3, 9, 6, 8, 1, 6, 1, 8, 1, 5, 5, 6, 1, 7, 4, 5, 2, 9, 4, 9, 2, 8, 3, 9, 8, 9, 6, 10, 2, 10, 1, 9, 2, 9, 1, 4, 2, 6, 4, 5, 5, 10, 1, 4, 2, 6, 2, 7, 3, 4, 1, 10, 3, 5, 3, 6, 1, 6, 1, 9, 4, 9, 3, 8, 2, 8, 3, 7, 1, 3, 1, 2, 1, 8, 3, 7, 2, 6, 3, 4, 2, 8, 6, 9, 8, 9, 1, 10, 3, 10, 2, 6, 3, 6, 5, 10, 2, 9, 4, 8, 1, 10, 7, 10, 4, 7, 2, 6, 1, 10, 3, 8, 4, 5, 4, 7, 3, 9, 3, 10, 6, 7, 1, 8, 3, 6, 1, 7, 2, 8, 7, 8, 5, 8, 7, 10, 4, 7, 5, 8, 3, 8, 6, 9, 3, 9, 7, 10, 6, 10, 9, 10, 3, 10, 1, 3, 2, 8, 5, 9, 2, 8, 3, 8, 4, 5, 2, 10, 6, 7, 2, 8, 2, 7, 4, 9, 5, 7, 7, 10, 3, 9, 1, 9, 3, 7, 4, 7, 3, 7, 1, 4, 1, 5, 1, 3, 2, 9, 4, 9, 3, 6, 5, 9, 1, 8, 1, 3, 2, 10, 2, 9, 1, 8, 6, 6, 3, 9, 1, 9, 1, 9, 1, 3, 1, 10, 1, 4, 2, 3, 3, 8, 4, 9, 5, 7, 1, 5, 2, 7, 3, 9, 5, 9, 4, 6, 5, 9, 1, 8, 3, 7, 2, 10, 8, 9, 5, 9, 4, 9, 5, 9, 6, 9, 3, 4, 1, 7, 3, 6, 1, 5, 4, 9, 1, 5, 3, 7, 2, 4, 4, 7, 2, 7, 1, 3, 3, 7, 3, 6, 4, 10, 7, 8, 4, 5, 3, 10, 5, 10, 1, 5, 4, 10, 2, 8, 3, 7, 3, 9, 5, 6, 1, 10, 8, 9, 2, 8, 8, 10, 2, 4, 2, 6, 2, 7, 2, 6, 1, 7, 5, 7, 1, 3, 1, 10, 2, 4, 3, 5, 4, 10, 6, 10, 2, 10, 2, 6, 4, 5, 3, 10, 1, 8, 3, 5, 4, 7, 5, 10, 2, 8, 3, 10, 3, 9, 6, 7, 1, 7, 1, 9, 1, 5, 5, 7, 3, 10, 4, 8, 6, 9, 1, 5, 4, 8, 1, 5, 5, 7, 7, 7, 2, 5, 5, 7, 4, 8, 4, 7, 2, 6, 1, 8, 6, 7, 3, 5, 4, 10, 2, 7, 6, 9, 2, 10, 5, 10, 4, 6, 3, 4, 1, 10, 6, 7, 3, 7, 6, 10, 3, 8, 5, 10, 6, 10, 2, 4, 2, 4, 1, 6, 4, 6, 4, 5, 1, 10, 5, 6, 4, 9, 7, 10, 2, 4, 1, 10, 2, 10, 3, 4, 3, 8, 1, 7, 4, 8, 1, 6, 3, 5, 2, 8, 4, 10, 1, 8, 6, 10, 4, 7, 3, 10, 7, 9, 5, 6, 6, 7, 1, 4, 3, 8, 4, 10, 6, 8, 7, 10, 1, 4, 4, 7, 3, 6, 4, 9, 5, 10, 2, 9, 1, 10, 3, 9, 1, 5, 4, 10, 5, 9, 1, 7, 2, 9, 3, 7, 4, 5, 2, 9, 4, 6, 2, 10, 4, 7, 3, 8, 2, 6, 5, 8, 7, 9, 9, 9, 2, 7, 4, 6, 5, 8, 4, 9, 4, 7, 2, 9, 3, 4, 1, 8, 6, 8, 1, 6, 4, 7, 3, 6, 1, 6, 5, 10, 7, 9, 2, 6, 2, 3, 1, 6, 5, 7, 1, 10, 2, 8, 4, 7, 4, 6, 5, 8, 8, 9, 1, 10, 1, 5, 2, 5, 2, 7, 1, 7, 5, 7, 1, 8, 3, 7, 2, 5, 4, 10, 5, 10, 3, 7, 4, 6, 5, 7, 1, 6, 4, 8, 3, 6, 6, 8, 3, 4, 1, 6, 2, 8, 3, 9, 5, 10, 2, 7, 5, 7, 3, 6, 1, 4, 1, 5, 2, 9, 2, 10, 1, 10, 1, 5, 3, 5, 1, 5, 3, 8, 3, 4, 2, 9, 4, 5, 4, 6, 5, 6, 2, 9, 2, 3, 1, 8, 1, 5, 2, 5, 3, 10, 3, 6, 2, 9, 4, 5, 1, 10, 2, 8, 1, 9, 4, 9, 2, 8, 3, 5, 4, 6, 5, 6, 4, 8, 3, 10, 6, 7, 1, 8, 3, 9, 2, 6, 1, 9, 3, 8, 3, 5, 1, 5, 3, 10, 7, 7, 1, 9, 8, 9, 2, 6, 1, 6, 3, 4, 4, 10, 6, 10, 7, 8, 3, 8, 3, 6, 2, 10, 5, 6, 4, 9, 7, 8, 4, 10, 5, 7, 5, 6, 3, 5, 1, 9, 1, 10, 3, 4, 1, 9, 2, 10, 3, 10, 1, 9, 4, 9, 4, 8, 1, 9, 1, 6, 1, 8, 4, 6, 5, 9, 6, 9, 7, 9, 1, 4, 1, 9, 3, 8, 7, 9, 4, 10, 2, 9, 3, 7, 2, 3, 2, 10, 3, 5, 3, 9, 3, 9, 4, 6, 1, 3, 3, 8, 1, 8, 3, 8, 3, 8, 8, 10, 7, 9, 4, 9, 6, 8, 4, 8, 2, 10, 3, 10, 3, 10, 3, 9, 2, 6, 3, 6, 3, 8, 6, 9, 3, 8, 3, 8, 3, 8, 7, 8, 2, 10, 7, 9, 2, 9, 5, 10, 5, 9, 2, 10, 4, 10, 1, 7, 6, 8, 5, 10, 2, 9, 1, 8, 4, 9, 1, 6, 1, 8, 8, 9, 2, 10, 1, 5, 3, 7, 5, 7, 1, 10, 1, 7, 2, 5, 2, 3, 1, 2, 2, 8, 6, 9, 8, 9, 9, 10, 3, 10, 1, 8, 4, 7, 7, 10, 1, 8, 5, 10, 2, 9, 2, 8, 3, 9, 1, 8, 8, 9, 2, 3, 1, 7, 3, 9, 6, 9, 3, 5, 5, 9, 3, 6, 3, 10, 3, 10, 8, 9, 4, 7, 6, 9, 1, 10, 1, 7, 2, 6, 3, 10, 4, 10, 8, 9, 2, 7, 1, 10, 5, 5, 3, 4, 2, 3, 1, 7, 4, 7, 4, 6, 3, 7, 3, 7, 6, 10, 4, 9, 2, 3, 2, 7, 2, 8, 1, 6, 3, 9, 4, 9, 2, 8, 2, 4, 1, 5, 3, 5, 2, 5, 1, 10, 2, 10, 2, 9, 7, 10, 8, 9, 4, 9, 6, 9, 2, 7, 2, 10, 4, 8, 3, 6, 5, 9, 3, 8, 2, 6, 5, 7, 1, 2, 2, 7, 3, 6, 2, 3, 2, 9, 2, 5, 3, 9, 7, 9, 9, 10, 7, 8, 2, 5, 1, 5, 1, 5, 4, 9, 1, 7, 2, 10, 7, 7, 3, 6, 2, 9, 4, 9, 2, 8, 5, 7, 2, 10, 5, 9, 1, 10, 4, 7, 2, 6, 3, 7, 1, 10, 5, 8, 2, 7, 3, 10, 8, 10, 5, 10, 7, 10, 4, 9, 7, 8, 2, 5, 3, 10, 2, 5, 4, 8, 2, 8, 4, 10, 8, 9, 4, 10, 5, 9, 6, 7, 2, 9, 5, 7, 1, 10, 5, 5, 5, 10, 5, 7, 1, 10, 8, 10, 2, 9, 6, 9, 6, 8, 4, 8, 3, 4, 4, 8, 1, 5, 1, 9, 1, 8, 1, 5, 4, 9, 5, 8, 2, 9, 3, 4, 3, 9, 4, 9, 6, 7, 2, 10, 2, 8, 1, 7, 1, 9, 4, 10, 6, 10, 6, 9, 5, 6, 3, 6, 2, 7, 2, 7, 6, 7, 2, 8, 4, 9, 7, 7, 1, 3, 1, 10, 7, 8, 1, 9, 1, 6, 4, 8, 1, 10, 4, 8, 6, 8, 6, 7, 4, 5, 2, 4, 3, 7, 1, 10, 7, 7, 3, 8, 1, 8, 2, 9, 8, 9, 1, 4, 1, 7, 1, 7, 5, 8, 7, 7, 2, 8, 1, 8, 4, 9, 2, 7, 2, 6, 4, 6, 1, 5, 4, 9, 2, 8, 2, 9, 7, 10, 3, 7, 5, 8, 3, 5, 2, 7, 5, 8, 7, 10, 7, 9, 4, 9, 1, 6, 4, 5, 2, 5, 1, 9, 3, 9, 2, 6, 3, 10, 4, 9, 5, 7, 4, 6, 3, 6, 4, 5, 1, 1, 1, 6, 6, 10, 3, 9, 1, 9, 8, 9, 1, 9, 1, 8, 2, 6, 3, 7, 4, 9, 3, 10, 2, 5, 1, 6, 3, 10, 1, 10, 6, 8, 7, 10, 2, 7, 6, 6, 4, 6, 5, 9, 4, 10, 6, 8, 7, 8, 4, 7, 3, 10, 4, 8, 3, 4, 2, 10, 8, 10, 2, 5, 2, 3, 3, 9, 3, 7, 4, 5, 2, 8, 3, 8, 7, 8, 6, 9, 2, 9, 5, 9, 2, 9, 5, 9, 1, 6, 1, 8, 4, 10, 5, 9, 2, 8, 3, 8, 4, 10, 2, 8, 5, 7, 2, 7, 6, 7, 3, 6, 5, 8, 3, 7, 3, 3, 2, 4, 2, 8, 3, 9, 6, 7, 6, 9, 1, 7, 2, 6, 5, 8, 2, 9, 5, 9, 3, 7, 4, 6, 1, 9, 7, 9, 3, 10, 7, 9, 3, 9, 4, 7, 5, 6, 5, 6, 6, 10, 4, 5, 1, 8, 6, 9, 5, 8, 1, 8, 3, 7, 1, 6, 4, 5, 3, 10, 7, 7, 7, 9, 7, 7, 2, 9, 8, 9, 3, 7, 4, 10, 6, 9, 1, 5, 2, 3, 1, 8, 1, 8, 4, 5, 5, 7, 6, 8, 5, 9, 4, 7, 1, 4, 4, 7, 3, 8, 3, 4, 3, 5, 3, 10, 2, 8, 2, 5, 1, 9, 7, 10, 6, 9, 2, 4, 4, 6, 2, 7, 6, 8, 7, 8, 7, 8, 5, 10, 3, 5, 1, 5, 2, 9, 3, 4, 3, 9, 7, 8, 2, 8, 1, 5, 3, 7, 2, 10, 5, 10, 7, 8, 7, 9, 6, 7, 7, 9, 6, 9, 1, 7, 1, 4, 2, 2, 2, 6, 5, 9, 6, 10, 8, 10, 4, 6, 3, 6, 2, 9, 1, 7, 7, 8, 7, 9, 1, 10, 5, 7, 6, 8, 5, 9, 2, 9, 1, 10, 5, 7, 7, 7, 1, 7, 3, 7, 5, 8, 3, 8, 5, 7, 6, 7, 7, 8, 4, 10, 9, 9, 4, 9, 9, 10, 1, 7, 1, 9, 4, 7, 5, 8, 6, 9, 4, 9, 7, 9, 2, 8, 4, 8, 6, 9, 2, 9, 2, 8, 4, 9, 1, 7, 4, 8, 7, 8, 1, 8, 6, 7, 1, 6, 1, 6, 3, 7, 6, 9, 1, 6, 1, 10, 6, 9, 2, 7, 3, 9, 7, 9, 4, 6, 2, 10, 5, 5, 2, 8, 2, 9, 3, 7, 1, 3, 2, 10, 6, 10, 7, 9, 5, 6, 3, 8, 5, 8, 5, 7, 1, 3, 3, 10, 6, 7, 1, 7, 6, 9, 5, 6, 1, 10, 3, 8, 4, 9, 4, 10, 6, 9, 3, 10, 2, 10, 6, 8, 2, 8, 3, 8, 4, 10, 4, 10, 9, 9, 2, 8, 5, 8, 2, 3, 2, 8, 3, 8, 8, 10, 1, 3, 1, 4, 4, 7, 1, 7, 1, 8, 4, 9, 6, 8, 1, 8, 6, 8, 1, 5, 5, 8, 7, 8, 3, 8, 3, 8, 5, 6, 5, 6, 1, 4, 3, 8, 1, 8, 6, 8, 4, 7, 4, 9, 4, 9, 1, 8, 8, 10, 3, 9, 4, 7, 3, 8, 2, 7, 5, 8, 4, 6, 4, 7, 1, 10, 5, 9, 2, 10, 2, 9, 2, 8, 1, 6, 5, 9, 3, 6, 5, 8, 6, 9, 2, 8, 2, 6, 5, 10, 5, 10, 2, 6, 5, 10, 1, 8, 5, 6, 3, 10, 3, 8, 3, 10, 4, 4, 1, 10, 7, 10, 7, 9, 3, 8, 3, 9, 9, 10, 2, 8, 7, 8, 7, 9, 5, 9, 7, 9, 3, 9, 1, 10, 2, 10, 3, 8, 4, 9, 1, 10, 7, 9, 2, 8, 5, 7, 2, 5, 2, 3, 1, 3, 1, 10, 3, 8, 3, 6, 3, 10, 6, 6, 2, 10, 3, 3, 3, 10, 2, 7, 4, 9, 5, 9, 8, 9, 3, 9, 2, 7, 3, 9, 2, 10, 5, 9, 8, 10, 3, 8, 5, 7, 1, 7, 1, 6, 1, 5, 2, 10, 4, 7, 5, 10, 5, 8, 1, 4, 2, 6, 2, 9, 2, 10, 7, 10, 4, 6, 4, 8, 2, 10, 2, 3, 1, 4, 1, 7, 1, 9, 7, 8, 1, 7, 3, 6, 1, 9, 2, 8, 1, 5, 2, 6, 6, 10, 3, 10, 1, 2, 1, 9, 2, 9, 1, 6, 4, 5, 4, 5, 5, 10, 2, 4, 3, 6, 2, 3, 3, 10, 8, 8, 4, 5, 4, 5, 4, 9, 7, 9, 7, 9, 1, 9, 1, 6, 2, 9, 2, 8, 5, 5, 2, 9, 9, 10, 4, 10, 3, 7, 6, 10, 8, 10, 1, 10, 2, 7, 1, 10, 7, 8, 3, 5, 3, 3, 1, 7, 1, 10, 3, 10, 5, 6, 2, 9, 3, 7, 3, 9, 2, 9, 1, 6, 1, 3, 1, 6, 3, 9, 3, 9, 4, 9, 5, 9, 5, 6, 3, 8, 2, 10, 5, 10, 2, 10, 6, 10, 4, 8, 4, 7, 4, 4, 1, 5, 4, 9, 2, 10, 2, 10, 5, 8, 6, 10, 1, 10, 3, 7, 4, 7, 2, 7, 3, 6, 2, 6, 1, 4, 2, 9, 5, 9, 1, 7, 2, 8, 3, 3, 3, 9, 7, 10, 1, 6, 6, 8, 3, 6, 1, 2, 2, 6, 2, 8, 3, 4, 4, 9, 4, 4, 2, 10, 2, 4, 4, 7, 3, 10, 5, 10, 3, 9, 2, 9, 6, 7, 1, 6, 1, 3, 1, 8, 7, 9, 1, 8, 4, 8, 5, 8, 2, 6, 2, 9, 4, 10, 5, 8, 5, 10, 1, 4, 2, 4, 2, 8, 6, 7, 4, 8, 5, 10, 2, 9, 5, 8, 8, 10, 8, 10, 2, 9, 1, 5, 3, 9, 4, 6, 2, 6, 4, 9, 7, 10, 5, 9, 3, 8, 1, 10, 2, 9, 8, 8, 3, 8, 4, 8, 4, 10, 4, 6, 1, 9, 5, 10, 8, 9, 8, 9, 9, 10, 1, 10, 4, 8, 1, 6, 4, 6, 5, 8, 1, 9, 5, 9, 6, 10, 5, 8, 3, 9, 3, 10, 1, 8, 6, 7, 4, 9, 6, 10, 2, 5, 4, 10, 4, 10, 4, 9, 4, 4, 2, 6, 4, 10, 4, 7, 6, 7, 5, 8, 3, 8, 2, 5, 1, 9, 6, 6, 1, 2, 2, 5, 2, 3, 2, 3, 1, 1, 1, 4, 1, 8, 4, 6, 2, 5, 3, 3, 2, 2, 2, 10, 1, 4, 4, 9, 2, 3, 2, 7, 3, 10, 8, 8, 1, 10, 3, 10, 2, 8, 4, 7, 4, 8, 6, 9, 6, 8, 1, 10, 1, 8, 2, 7, 4, 10, 2, 3, 3, 10, 1, 10, 2, 4, 3, 7, 2, 6, 4, 5, 5, 7, 4, 7, 6, 10, 9, 9, 3, 7, 1, 10, 2, 9, 2, 9, 4, 5, 1, 10, 4, 8, 4, 9, 2, 4, 1, 10, 5, 6, 2, 9, 2, 8, 5, 7, 6, 8, 4, 7, 1, 7, 6, 10, 9, 10, 2, 5, 2, 6, 5, 10, 7, 8, 7, 7, 1, 10, 2, 5, 3, 10, 1, 6, 3, 7, 2, 9, 2, 9, 1, 9, 2, 10, 4, 8, 5, 10, 1, 10, 7, 10, 6, 8, 1, 6, 6, 10, 7, 9, 5, 9, 2, 6, 3, 5, 4, 10, 1, 10, 6, 9, 8, 8, 5, 9, 3, 9, 3, 4, 2, 7, 1, 6, 4, 10, 5, 8, 4, 6, 1, 7, 2, 10, 5, 10, 4, 7, 2, 4, 2, 5, 3, 4, 3, 8, 4, 7, 2, 9, 1, 8, 2, 8, 2, 4, 2, 10, 1, 8, 4, 7, 2, 6, 4, 7, 1, 4, 2, 9, 8, 10, 5, 9, 4, 7, 1, 5, 1, 2, 1, 2, 1, 10, 5, 8, 4, 10, 3, 9, 6, 8, 6, 6, 3, 6, 3, 6, 4, 9, 2, 10, 2, 5, 5, 9, 7, 8, 2, 9, 4, 9, 2, 7, 2, 8, 4, 6, 2, 8, 4, 6, 1, 10, 1, 7, 3, 8, 7, 7, 3, 5, 2, 9, 1, 9, 5, 6, 1, 6, 2, 7, 5, 6, 5, 8, 3, 10, 1, 9, 4, 6, 2, 9, 2, 6, 6, 10, 3, 10, 4, 7, 5, 8, 1, 6, 1, 5, 5, 10, 1, 8, 3, 8, 1, 9, 5, 9, 2, 10, 6, 7, 2, 10, 4, 6, 2, 10, 5, 10, 5, 9, 7, 9, 6, 10, 4, 9, 8, 9, 3, 10, 1, 6, 6, 10, 4, 9, 8, 9, 5, 6, 2, 10, 5, 9, 7, 10, 8, 9, 1, 5, 4, 10, 6, 9, 2, 5, 4, 8, 6, 7, 3, 4, 4, 7, 2, 8, 2, 7, 5, 9, 6, 10, 8, 8, 4, 10, 4, 9, 5, 9, 1, 5, 5, 10, 6, 9, 6, 9, 2, 7, 6, 10, 1, 4, 2, 3, 2, 9, 3, 7, 1, 5, 3, 10, 7, 10, 6, 9, 4, 10, 1, 7, 1, 10, 2, 6, 4, 10, 1, 7, 6, 10, 8, 9, 1, 10, 5, 10, 7, 8, 4, 8, 5, 7, 2, 3, 3, 8, 2, 9, 3, 4, 1, 7, 1, 9, 1, 10, 1, 10, 7, 9, 5, 7, 4, 10, 7, 10, 5, 5, 2, 7, 3, 9, 8, 8, 1, 9, 3, 10, 4, 9, 7, 10, 4, 7, 3, 5, 1, 6, 3, 8, 3, 6, 2, 9, 4, 9, 2, 5, 5, 10, 7, 9, 3, 4, 2, 3, 1, 10, 3, 5, 4, 7, 1, 5, 4, 8, 4, 6, 6, 6, 2, 6, 1, 10, 9, 9, 2, 10, 4, 5, 5, 7, 4, 9, 2, 6, 2, 10, 2, 9, 1, 6, 1, 5, 4, 9, 7, 8, 4, 9, 1, 6, 2, 4, 1, 8, 3, 5, 3, 5, 4, 8, 3, 6, 4, 9, 5, 6, 4, 5, 1, 5, 2, 4, 3, 9, 6, 7, 2, 8, 4, 9, 1, 10, 4, 7, 3, 8, 4, 6, 1, 9, 1, 10, 2, 3, 1, 10, 3, 10, 9, 9, 7, 7, 5, 10, 4, 10, 6, 9, 4, 5, 3, 8, 4, 8, 3, 3, 2, 10, 4, 7, 1, 9, 2, 8, 6, 10, 7, 9, 5, 10, 7, 8, 2, 8, 4, 6, 4, 5, 2, 7, 5, 6, 3, 8, 3, 9, 7, 10, 5, 10, 3, 4, 1, 7, 7, 10, 3, 10, 4, 10, 4, 8, 4, 5, 2, 10, 5, 7, 5, 10, 6, 10, 1, 7, 5, 6, 4, 7, 1, 9, 2, 6, 3, 6, 4, 7, 5, 6, 2, 9, 1, 7, 4, 8, 5, 10, 7, 10, 1, 9, 2, 7, 6, 10, 8, 10, 2, 7, 6, 6, 5, 5, 3, 10, 9, 10, 5, 9, 5, 8, 1, 9, 2, 6, 3, 8, 6, 8, 3, 8, 4, 9, 3, 9, 1, 7, 3, 8, 1, 5, 4, 9, 3, 10, 6, 10, 10, 10, 1, 8, 3, 8, 5, 7, 4, 7, 2, 7, 3, 6, 1, 4, 1, 10, 4, 5, 1, 10, 3, 9, 6, 6, 1, 7, 3, 10, 1, 5, 4, 10, 1, 3, 3, 7, 2, 7, 5, 6, 1, 6, 3, 10, 4, 7, 6, 6, 4, 6, 1, 6, 2, 10, 1, 5, 2, 5, 3, 7, 3, 9, 1, 7, 4, 8, 4, 6, 4, 6, 1, 5, 5, 9, 5, 10, 2, 8, 4, 6, 4, 10, 6, 7, 3, 10, 1, 4, 3, 7, 6, 8, 5, 6, 4, 8, 7, 7, 1, 7, 4, 7, 3, 5, 4, 6, 6, 10, 6, 9, 1, 9, 2, 9, 6, 9, 6, 10, 2, 3, 3, 5, 5, 7, 3, 7, 5, 10, 7, 10, 2, 5, 1, 8, 4, 10, 8, 10, 1, 8, 5, 9, 5, 8, 4, 6, 1, 5, 3, 6, 2, 5, 2, 9, 3, 6, 2, 9, 3, 7, 5, 10, 1, 8, 4, 9, 3, 9, 5, 9, 7, 8, 3, 7, 5, 5, 5, 10, 4, 5, 4, 5, 5, 10, 4, 6, 1, 10, 2, 9, 5, 10, 8, 9, 9, 10, 2, 6, 4, 4, 1, 2, 2, 5, 4, 8, 3, 9, 6, 8, 4, 7, 1, 9, 4, 10, 5, 6, 4, 9, 3, 5, 4, 9, 1, 9, 1, 8, 5, 8, 7, 9, 2, 6, 1, 7, 3, 6, 2, 4, 3, 10, 2, 8, 8, 10, 8, 10, 7, 9, 7, 10, 3, 5, 1, 6, 4, 9, 8, 9, 2, 9, 1, 9, 6, 10, 2, 9, 2, 9, 8, 10, 3, 8, 5, 7, 1, 8, 1, 9, 4, 9, 1, 1, 1, 8, 2, 10, 8, 9, 2, 10, 1, 5, 4, 10, 6, 10, 4, 8, 1, 6, 4, 6, 6, 9, 5, 7, 5, 8, 2, 8, 3, 8, 1, 6, 2, 8, 3, 8, 3, 5, 3, 5, 3, 10, 1, 7, 5, 7, 4, 10, 8, 9, 4, 9, 6, 6, 1, 4, 1, 7, 1, 6, 5, 9, 7, 8, 7, 10, 1, 6, 2, 6, 1, 7, 5, 10, 2, 5, 2, 6, 5, 5, 3, 5, 3, 4, 3, 9, 5, 8, 4, 8, 1, 8, 1, 9, 4, 4, 1, 10, 2, 9, 3, 9, 1, 5, 1, 8, 2, 7, 3, 9, 5, 6, 6, 9, 1, 8, 1, 8, 6, 6, 1, 6, 3, 5, 2, 6, 4, 7, 4, 7, 2, 9, 3, 4, 3, 7, 3, 5, 2, 4, 2, 8, 3, 7, 4, 5, 3, 9, 6, 6, 5, 8, 1, 6, 5, 8, 6, 8, 4, 10, 4, 6, 1, 2, 2, 9, 4, 10, 10, 10, 1, 10, 5, 7, 3, 7, 4, 5, 3, 8, 4, 9, 1, 6, 2, 3, 2, 4, 4, 4, 4, 9, 9, 9, 1, 5, 3, 9, 4, 9, 2, 9, 8, 9, 4, 6, 5, 8, 2, 5, 5, 6, 2, 4, 2, 9, 5, 10, 1, 10, 4, 8, 1, 8, 1, 8, 5, 9, 6, 10, 1, 7, 2, 6, 1, 9, 4, 6, 5, 7, 5, 6, 2, 3, 2, 5, 2, 3, 1, 6, 1, 10, 7, 10, 7, 9, 3, 5, 4, 5, 5, 6, 2, 10, 1, 9, 2, 6, 1, 4, 2, 7, 4, 6, 1, 1, 1, 4, 1, 7, 3, 9, 1, 9, 6, 10, 1, 5, 1, 6, 4, 5, 2, 7, 2, 8, 8, 10, 4, 9, 6, 7, 1, 5, 2, 5, 4, 5, 4, 9, 4, 7, 4, 6, 1, 7, 2, 6, 4, 6, 5, 8, 2, 7, 3, 8, 1, 8, 3, 8, 2, 10, 5, 9, 4, 8, 5, 9, 6, 10, 1, 9, 2, 9, 2, 4, 1, 9, 2, 10, 2, 6, 3, 7, 2, 5, 4, 9, 4, 10, 3, 9, 6, 10, 4, 9, 8, 10, 7, 9, 1, 7, 2, 5, 1, 6, 1, 7, 7, 7, 1, 6, 2, 8, 5, 9, 1, 4, 2, 3, 1, 4, 2, 7, 2, 9, 4, 8, 3, 9, 2, 7, 1, 9, 7, 7, 1, 7, 1, 7, 5, 8, 3, 4, 2, 7, 3, 8, 2, 3, 1, 9, 2, 10, 2, 7, 2, 4, 3, 10, 4, 4, 1, 5, 1, 9, 6, 10, 8, 8, 3, 9, 7, 8, 2, 7, 3, 9, 1, 8, 1, 10, 6, 9, 5, 7, 4, 9, 4, 5, 1, 8, 4, 7, 4, 8, 2, 9, 3, 7, 4, 9, 4, 9, 5, 8, 2, 4, 3, 6, 4, 7, 1, 10, 3, 7, 2, 5, 1, 3, 2, 5, 2, 5, 2, 9, 3, 6, 3, 3, 2, 5, 4, 10, 7, 9, 3, 9, 5, 9, 4, 10, 9, 9, 1, 6, 2, 8, 2, 10, 5, 7, 2, 9, 5, 7, 6, 9, 4, 10, 6, 9, 3, 8, 5, 9, 6, 9, 3, 6, 2, 9, 2, 6, 3, 7, 3, 8, 5, 7, 5, 6, 4, 10, 2, 9, 7, 9, 2, 10, 8, 9, 1, 7, 4, 6, 1, 9, 7, 9, 5, 8, 3, 9, 5, 7, 3, 9, 6, 7, 5, 9, 6, 7, 3, 10, 3, 9, 1, 8, 1, 10, 2, 5, 2, 7, 4, 10, 3, 10, 9, 9, 1, 7, 2, 7, 2, 10, 4, 8, 3, 9, 2, 7, 6, 7, 1, 6, 5, 10, 1, 8, 3, 6, 4, 7, 4, 9, 2, 10, 4, 7, 5, 8, 3, 8, 6, 9, 7, 8, 6, 7, 3, 4, 1, 8, 3, 9, 8, 9, 1, 9, 7, 8, 4, 9, 9, 10, 3, 4, 1, 6, 3, 6, 3, 9, 4, 8, 5, 7, 2, 10, 2, 9, 3, 9, 5, 10, 2, 10, 7, 8, 2, 9, 4, 9, 7, 8, 1, 10, 2, 3, 2, 10, 6, 10, 2, 9, 3, 8, 1, 8, 7, 8, 1, 10, 7, 8, 5, 8, 5, 7, 1, 8, 8, 8, 2, 6, 2, 9, 5, 8, 5, 7, 6, 7, 2, 7, 6, 7, 1, 8, 6, 9, 8, 8, 5, 5, 5, 9, 6, 8, 2, 4, 3, 10, 2, 5, 4, 5, 1, 9, 2, 10, 3, 5, 1, 2, 1, 10, 5, 10, 2, 10, 7, 7, 6, 8, 3, 10, 7, 7, 3, 4, 2, 8, 3, 10, 2, 8, 7, 7, 1, 7, 4, 8, 5, 10, 2, 8, 4, 7, 2, 4, 1, 7, 1, 7, 4, 9, 6, 10, 1, 10, 2, 6, 3, 9, 1, 6, 4, 4, 3, 5, 3, 5, 4, 9, 3, 7, 6, 6, 2, 10, 3, 6, 3, 10, 4, 9, 1, 5, 1, 7, 1, 7, 6, 6, 4, 9, 6, 8, 8, 10, 4, 9, 3, 8, 5, 9, 1, 5, 5, 10, 5, 10, 6, 7, 2, 9, 1, 8, 4, 10, 3, 8, 1, 5, 1, 5, 3, 4, 1, 4, 4, 6, 3, 4, 2, 4, 2, 6, 6, 10, 9, 10, 3, 10, 6, 9, 2, 3, 1, 6, 1, 4, 3, 7, 3, 8, 1, 7, 5, 8, 3, 5, 2, 5, 3, 10, 6, 9, 3, 10, 6, 9, 1, 3, 2, 10, 5, 9, 8, 10, 9, 10, 5, 8, 1, 9, 6, 9, 8, 9, 1, 10, 3, 9, 2, 4, 1, 1, 1, 8, 2, 8, 3, 10, 2, 5, 2, 10, 4, 4, 1, 4, 1, 10, 6, 7, 2, 10, 4, 8, 5, 7, 6, 7, 3, 7, 5, 5, 2, 7, 6, 9, 5, 10, 2, 10, 1, 6, 4, 5, 5, 8, 2, 8, 3, 4, 3, 7, 6, 7, 1, 8, 4, 10, 2, 4, 1, 8, 1, 3, 1, 9, 2, 9, 5, 8, 2, 7, 3, 7, 2, 10, 5, 8, 1, 7, 2, 2, 2, 10, 2, 6, 2, 6, 2, 3, 1, 8, 4, 6, 3, 8, 1, 5, 2, 4, 2, 9, 4, 10, 3, 5, 3, 9, 6, 9, 1, 8, 4, 8, 5, 9, 1, 8, 5, 8, 3, 6, 6, 9, 6, 7, 4, 8, 3, 10, 2, 7, 3, 9, 5, 10, 4, 9, 3, 7, 3, 5, 1, 8, 1, 4, 2, 10, 5, 9, 9, 9, 3, 8, 7, 9, 4, 8, 3, 4, 2, 3, 1, 5, 2, 9, 1, 10, 1, 8, 3, 9, 1, 7, 4, 6, 6, 10, 7, 10, 7, 10, 5, 10, 7, 7, 3, 8, 5, 6, 2, 6, 4, 5, 5, 10, 7, 7, 3, 10, 4, 5, 1, 8, 3, 6, 6, 8, 4, 9, 7, 8, 3, 10, 6, 7, 2, 7, 3, 5, 1, 4, 2, 6, 5, 9, 7, 7, 3, 8, 4, 8, 7, 8, 2, 4, 2, 4, 3, 8, 6, 9, 8, 8, 4, 10, 7, 10, 8, 9, 8, 9, 3, 7, 5, 6, 4, 6, 6, 10, 3, 3, 2, 5, 3, 7, 4, 5, 4, 6, 2, 6, 5, 6, 1, 9, 4, 8, 2, 8, 6, 9, 2, 7, 1, 6, 3, 9, 1, 9, 1, 7, 3, 7, 1, 10, 2, 9, 5, 7, 1, 10, 2, 6, 5, 8, 2, 8, 5, 6, 2, 4, 4, 10, 2, 9, 2, 9, 3, 10, 4, 8, 2, 9, 4, 10, 4, 8, 4, 5, 5, 10, 5, 5, 3, 5, 2, 9, 4, 9, 4, 9, 5, 7, 1, 5, 4, 6, 4, 9, 4, 6, 3, 8, 5, 9, 2, 6, 1, 9, 1, 4, 1, 7, 2, 3, 1, 8, 2, 7, 3, 5, 1, 5, 1, 2, 1, 7, 2, 6, 3, 8, 4, 10, 3, 9, 2, 6, 2, 9, 5, 7, 7, 9, 8, 10, 8, 10, 5, 9, 4, 9, 7, 8, 1, 8, 2, 6, 5, 6, 1, 6, 1, 8, 1, 5, 4, 5, 1, 8, 4, 10, 5, 9, 1, 9, 9, 10, 2, 9, 3, 8, 1, 7, 1, 1, 1, 10, 6, 10, 1, 9, 7, 9, 1, 8, 2, 6, 2, 10, 4, 10, 2, 9, 1, 8, 6, 10, 1, 6, 4, 6, 2, 10, 2, 7, 1, 6, 1, 10, 7, 9, 1, 10, 2, 9, 4, 10, 2, 4, 2, 8, 1, 9, 3, 4, 4, 8, 3, 9, 7, 8, 7, 10, 3, 7, 3, 10, 1, 6, 3, 6, 3, 5, 4, 4, 4, 10, 5, 9, 8, 8, 4, 7, 4, 9, 4, 6, 3, 8, 2, 5, 2, 10, 4, 8, 5, 9, 3, 8, 7, 7, 6, 6, 1, 6, 1, 7, 4, 10, 7, 9, 3, 9, 1, 3, 2, 8, 5, 6, 6, 8, 1, 2, 1, 7, 7, 7, 1, 9, 6, 8, 5, 9, 7, 10, 7, 8, 1, 7, 4, 10, 2, 7, 1, 6, 5, 6, 4, 10, 4, 10, 3, 8, 5, 10, 8, 9, 1, 6, 2, 5, 3, 9, 6, 7, 1, 10, 3, 9, 7, 10, 6, 7, 5, 6, 1, 6, 4, 4, 4, 9, 7, 9, 3, 10, 6, 9, 5, 7, 3, 8, 8, 10, 2, 9, 6, 10, 2, 10, 5, 10, 1, 6, 4, 10, 4, 6, 2, 9, 2, 6, 4, 5, 4, 10, 1, 10, 3, 8, 7, 8, 4, 8, 1, 3, 2, 7, 5, 10, 4, 8, 1, 10, 2, 7, 7, 7, 3, 8, 8, 10, 1, 9, 1, 8, 8, 10, 7, 9, 7, 10, 5, 10, 4, 10, 3, 7, 4, 7, 2, 5, 3, 5, 5, 9, 3, 8, 6, 8, 7, 10, 3, 5, 5, 7, 4, 8, 6, 10, 7, 8, 1, 10, 3, 9, 4, 10, 3, 10, 3, 9, 4, 7, 5, 9, 5, 10, 3, 5, 2, 5, 1, 8, 5, 9, 7, 10, 5, 5, 2, 6, 2, 7, 5, 10, 1, 7, 2, 7, 5, 6, 2, 8, 4, 7, 7, 9, 7, 9, 2, 4, 1, 9, 2, 10, 5, 5, 5, 10, 3, 10, 8, 10, 5, 10, 3, 7, 6, 8, 1, 6, 5, 9, 8, 8, 4, 10, 4, 10, 1, 8, 8, 10, 1, 9, 1, 7, 2, 5, 3, 5, 4, 9, 6, 7, 5, 10, 1, 7, 4, 7, 5, 9, 7, 9, 1, 9, 5, 9, 5, 9, 1, 3, 2, 5, 2, 10, 3, 4, 3, 4, 3, 3, 2, 6, 3, 9, 5, 6, 2, 9, 2, 4, 2, 9, 4, 9, 4, 10, 6, 9, 1, 6, 4, 5, 5, 6, 2, 5, 1, 4, 1, 7, 2, 7, 6, 9, 2, 5, 2, 5, 1, 4, 1, 3, 2, 7, 1, 7, 1, 10, 1, 10, 3, 7, 3, 7, 2, 5, 2, 4, 3, 10, 7, 9, 7, 8, 8, 9, 6, 10, 2, 10, 6, 7, 6, 7, 4, 7, 1, 7, 2, 8, 4, 6, 6, 8, 1, 5, 1, 8, 3, 10, 1, 4, 1, 7, 1, 9, 4, 9, 3, 10, 8, 10, 2, 8, 2, 6, 2, 10, 3, 9, 3, 6, 1, 9, 8, 9, 7, 8, 5, 7, 3, 9, 2, 5, 3, 6, 4, 9, 4, 6, 5, 7, 1, 4, 3, 7, 3, 8, 7, 10, 5, 8, 2, 8, 1, 5, 3, 10, 8, 9, 2, 9, 6, 8, 4, 6, 6, 8, 3, 10, 1, 7, 5, 10, 9, 10, 3, 5, 3, 9, 1, 10, 4, 10, 5, 8, 2, 10, 6, 10, 2, 10, 6, 10, 2, 8, 3, 8, 1, 10, 3, 5, 4, 8, 4, 7, 2, 6, 2, 10, 1, 10, 7, 8, 1, 4, 2, 10, 4, 10, 9, 10, 5, 5, 3, 9, 3, 5, 1, 4, 2, 8, 2, 9, 4, 9, 4, 6, 2, 7, 5, 8, 2, 9, 1, 9, 2, 6, 4, 8, 1, 8, 2, 5, 1, 10, 6, 7, 3, 4, 1, 5, 3, 8, 3, 7, 4, 9, 6, 10, 7, 9, 2, 6, 5, 9, 4, 8, 1, 7, 2, 8, 4, 7, 4, 10, 2, 10, 8, 9, 4, 6, 2, 9, 4, 4, 1, 9, 3, 9, 3, 9, 5, 7, 6, 10, 6, 8, 2, 7, 5, 8, 5, 8, 5, 10, 3, 8, 6, 10, 1, 7, 5, 9, 5, 10, 2, 5, 1, 6, 2, 10, 3, 8, 3, 10, 8, 8, 3, 10, 3, 9, 3, 8, 2, 7, 4, 9, 1, 3, 2, 7, 6, 9, 3, 8, 1, 10, 3, 10, 1, 6, 5, 9, 6, 8, 5, 8, 5, 10, 4, 6, 1, 7, 4, 10, 4, 10, 2, 10, 3, 6, 2, 3, 3, 9, 2, 10, 3, 8, 4, 7, 4, 8, 4, 9, 4, 7, 1, 9, 6, 8, 2, 4, 1, 10, 1, 3, 2, 3, 3, 9, 8, 9, 2, 9, 6, 9, 5, 8, 1, 8, 1, 8, 4, 7, 5, 10, 5, 8, 2, 8, 4, 10, 5, 8, 6, 10, 2, 10, 3, 9, 1, 6, 3, 8, 1, 10, 8, 10, 3, 8, 1, 7, 4, 10, 4, 5, 2, 6, 3, 4, 1, 6, 6, 8, 7, 10, 5, 7, 3, 5, 4, 5, 3, 9, 4, 4, 2, 10, 7, 8, 5, 8, 4, 10, 7, 8, 2, 3, 1, 8, 3, 7, 6, 6, 5, 9, 6, 10, 2, 5, 3, 3, 3, 7, 7, 9, 1, 3, 2, 7, 1, 8, 5, 8, 3, 7, 5, 7, 2, 8, 4, 8, 4, 5, 4, 9, 4, 10, 2, 9, 4, 6, 2, 4, 3, 10, 1, 7, 2, 6, 4, 6, 4, 8, 2, 8, 1, 8, 5, 6, 6, 10, 6, 9, 6, 8, 3, 7, 1, 5, 2, 9, 3, 6, 3, 7, 6, 9, 4, 8, 2, 3, 3, 10, 5, 9, 4, 9, 6, 10, 1, 10, 2, 6, 5, 7, 3, 7, 1, 5, 5, 6, 6, 8, 2, 4, 2, 10, 1, 7, 4, 7, 4, 9, 3, 9, 4, 7, 4, 10, 10, 10, 7, 9, 4, 6, 6, 8, 4, 7, 3, 7, 5, 5, 4, 7, 4, 10, 8, 9, 3, 8, 8, 8, 4, 6, 1, 8, 1, 7, 2, 4, 3, 10, 3, 9, 7, 8, 7, 10, 7, 7, 1, 8, 1, 5, 1, 8, 2, 8, 3, 7, 2, 9, 4, 10, 5, 9, 8, 10, 3, 8, 2, 8, 2, 5, 3, 10, 7, 8, 1, 3, 1, 3, 2, 2, 2, 3, 1, 10, 4, 9, 4, 4, 1, 9, 1, 6, 2, 3, 2, 9, 2, 4, 1, 7, 6, 7, 6, 10, 4, 10, 4, 6, 5, 6, 2, 9, 7, 9, 4, 4, 4, 4, 4, 9, 1, 1, 1, 4, 2, 10, 2, 8, 6, 8, 7, 10, 6, 9, 5, 8, 1, 6, 5, 8, 6, 10, 6, 8, 4, 9, 6, 6, 2, 4, 2, 9, 8, 10, 2, 10, 4, 9, 3, 4, 2, 10, 1, 8, 2, 5, 4, 8, 5, 10, 6, 10, 1, 10, 4, 10, 4, 8, 5, 5, 4, 9, 1, 5, 1, 4, 2, 7, 1, 6, 2, 8, 2, 5, 5, 5, 2, 8, 5, 7, 4, 9, 5, 9, 2, 9, 2, 9, 6, 8, 6, 7, 3, 5, 3, 10, 1, 9, 1, 10, 2, 8, 6, 8, 2, 7, 2, 10, 4, 7, 1, 8, 4, 9, 6, 7, 5, 8, 2, 6, 5, 6, 3, 7, 6, 6, 1, 8, 7, 7, 3, 5, 3, 8, 3, 7, 3, 7, 1, 5, 1, 8, 4, 9, 2, 5, 2, 9, 2, 8, 1, 5, 1, 3, 3, 5, 4, 7, 6, 9, 1, 10, 6, 7, 1, 10, 4, 10, 9, 10, 8, 9, 1, 7, 1, 8, 1, 7, 1, 9, 1, 5, 5, 8, 5, 9, 8, 10, 2, 8, 2, 5, 5, 8, 4, 6, 3, 10, 5, 6, 2, 10, 8, 9, 1, 10, 7, 8, 7, 7, 1, 8, 7, 9, 2, 9, 4, 9, 3, 9, 6, 8, 5, 8, 3, 10, 1, 6, 2, 5, 1, 9, 6, 10, 4, 8, 5, 9, 4, 8, 4, 10, 7, 8, 2, 10, 8, 10, 1, 4, 2, 3, 2, 10, 6, 6, 1, 5, 2, 9, 4, 10, 1, 7, 5, 9, 5, 10, 1, 6, 2, 10, 2, 7, 3, 8, 4, 4, 3, 6, 2, 7, 5, 7, 4, 6, 4, 6, 4, 8, 3, 8, 4, 9, 6, 10, 10, 10, 4, 10, 5, 9, 3, 10, 8, 10, 4, 7, 2, 8, 6, 7, 3, 4, 1, 10, 4, 8, 7, 8, 1, 9, 3, 5, 2, 9, 5, 9, 3, 8, 5, 7, 6, 10, 5, 7, 4, 7, 1, 5, 3, 10, 2, 5, 4, 10, 7, 9, 2, 10, 4, 6, 3, 10, 2, 9, 2, 9, 3, 10, 4, 9, 7, 9, 1, 8, 5, 7, 1, 10, 2, 6, 5, 7, 6, 8, 4, 8, 7, 9, 3, 7, 4, 7, 3, 6, 4, 8, 1, 8, 6, 8, 1, 7, 5, 7, 5, 7, 3, 9, 4, 8, 3, 7, 5, 7, 1, 9, 1, 9, 3, 9, 5, 7, 6, 10, 1, 4, 3, 9, 2, 8, 3, 4, 1, 7, 1, 7, 6, 10, 2, 10, 7, 8, 1, 5, 3, 9, 1, 4, 3, 3, 2, 10, 4, 8, 5, 7, 3, 7, 5, 10, 6, 9, 2, 6, 2, 7, 2, 10, 2, 5, 1, 8, 5, 10, 2, 6, 4, 6, 2, 9, 2, 10, 3, 7, 4, 4, 1, 5, 1, 3, 2, 9, 2, 9, 7, 9, 7, 8, 1, 7, 2, 4, 3, 4, 3, 7, 1, 10, 2, 8, 7, 9, 7, 9, 7, 7, 1, 10, 6, 10, 1, 8, 3, 10, 3, 9, 3, 7, 2, 7, 4, 4, 2, 8, 5, 10, 5, 8, 2, 7, 1, 9, 6, 8, 4, 10, 1, 9, 1, 5, 4, 10, 7, 9, 5, 9, 5, 7, 4, 10, 2, 10, 9, 9, 1, 9, 1, 10, 7, 9, 5, 8, 8, 10, 1, 10, 1, 9, 5, 8, 2, 4, 3, 7, 1, 8, 2, 9, 1, 3, 1, 8, 1, 8, 3, 8, 4, 8, 5, 9, 1, 8, 1, 10, 8, 10, 1, 2, 1, 7, 2, 10, 3, 6, 4, 10, 8, 9, 9, 9, 4, 8, 2, 8, 3, 5, 3, 10, 1, 9, 2, 10, 5, 6, 3, 4, 3, 7, 3, 3, 3, 6, 5, 10, 2, 10, 2, 8, 7, 9, 8, 10, 1, 10, 6, 8, 2, 7, 3, 8, 1, 5, 1, 10, 2, 4, 1, 4, 3, 10, 6, 10, 2, 10, 2, 8, 1, 5, 3, 6, 3, 6, 3, 7, 4, 6, 6, 7, 4, 7, 5, 10, 4, 8, 3, 9, 3, 9, 3, 8, 5, 9, 4, 6, 1, 3, 2, 6, 2, 8, 3, 5, 3, 9, 3, 10, 3, 6, 3, 7, 1, 7, 2, 8, 6, 10, 8, 9, 4, 10, 2, 5, 3, 8, 4, 10, 2, 9, 2, 10, 6, 10, 5, 8, 2, 7, 1, 5, 3, 9, 4, 5, 4, 7, 4, 9, 2, 7, 2, 3, 2, 10, 3, 9, 2, 10, 3, 10, 6, 8, 3, 6, 3, 10, 4, 10, 5, 10, 7, 8, 2, 6, 1, 7, 3, 6, 1, 7, 1, 4, 2, 8, 4, 6, 3, 10, 3, 5, 3, 4, 3, 5, 4, 9, 1, 7, 4, 8, 5, 7, 2, 4, 1, 4, 4, 5, 5, 10, 7, 9, 2, 9, 4, 10, 3, 4, 4, 10, 7, 9, 8, 8, 1, 4, 1, 8, 1, 6, 1, 9, 2, 6, 2, 6, 2, 9, 5, 6, 4, 9, 7, 9, 8, 9, 5, 8, 1, 10, 6, 9, 2, 9, 5, 7, 3, 4, 2, 5, 2, 4, 2, 3, 3, 8, 2, 10, 2, 8, 3, 5, 3, 10, 3, 4, 3, 10, 5, 10, 5, 7, 1, 7, 1, 9, 4, 7, 3, 4, 1, 9, 2, 6, 3, 8, 3, 3, 3, 9, 5, 10, 8, 9, 3, 7, 4, 10, 2, 9, 6, 8, 5, 8, 6, 9, 1, 6, 5, 10, 7, 8, 3, 4, 2, 5, 1, 10, 3, 9, 3, 8, 5, 8, 5, 10, 2, 8, 4, 6, 5, 8, 4, 5, 1, 8, 5, 10, 5, 7, 5, 7, 1, 8, 6, 9, 3, 9, 5, 6, 3, 6, 5, 8, 5, 9, 2, 7, 4, 7, 2, 8, 1, 9, 5, 6, 3, 7, 3, 5, 5, 7, 5, 6, 2, 6, 6, 9, 6, 10, 6, 9, 1, 3, 2, 9, 2, 4, 1, 9, 1, 8, 3, 9, 1, 7, 4, 10, 2, 10, 3, 5, 1, 7, 1, 9, 5, 10, 3, 10, 6, 9, 5, 9, 2, 10, 3, 10, 2, 3, 2, 4, 3, 5, 3, 4, 4, 9, 8, 8, 8, 10, 2, 7, 4, 7, 4, 5, 4, 10, 3, 10, 5, 9, 5, 10, 3, 9, 1, 10, 1, 9, 3, 10, 7, 10, 6, 9, 8, 10, 1, 5, 3, 6, 4, 10, 5, 10, 8, 9, 1, 10, 3, 10, 2, 10, 8, 10, 2, 10, 6, 6, 1, 6, 3, 7, 1, 7, 4, 6, 5, 6, 5, 8, 1, 5, 1, 3, 2, 9, 4, 7, 2, 9, 4, 8, 3, 7, 6, 10, 1, 9, 5, 9, 5, 7, 2, 4, 3, 9, 5, 10, 4, 4, 4, 6, 5, 9, 3, 5, 2, 8, 7, 9, 5, 8, 3, 7, 4, 6, 2, 7, 3, 10, 6, 7, 1, 7, 1, 2, 2, 9, 7, 9, 1, 6, 1, 8, 3, 6, 2, 10, 6, 7, 3, 5, 2, 10, 3, 5, 5, 9, 8, 9, 1, 9, 7, 8, 4, 8, 4, 6, 1, 7, 3, 5, 2, 10, 5, 6, 1, 9, 6, 9, 3, 4, 1, 5, 1, 5, 1, 5, 1, 3, 2, 7, 2, 7, 2, 7, 5, 9, 7, 7, 1, 8, 2, 7, 2, 9, 2, 9, 2, 7, 3, 9, 4, 10, 5, 7, 2, 4, 2, 3, 3, 8, 1, 8, 1, 9, 2, 8, 2, 8, 1, 9, 1, 10, 8, 10, 8, 9, 1, 10, 6, 7, 6, 10, 1, 8, 6, 9, 8, 8, 6, 8, 3, 6, 2, 4, 2, 8, 1, 8, 4, 8, 3, 4, 3, 6, 2, 7, 4, 6, 4, 7, 6, 9, 8, 10, 2, 9, 1, 4, 3, 8, 5, 10, 2, 10, 2, 8, 5, 10, 2, 6, 3, 8, 1, 9, 3, 10, 3, 9, 2, 10, 3, 6, 4, 10, 1, 7, 4, 6, 3, 9, 4, 10, 5, 9, 8, 9, 4, 10, 6, 8, 1, 6, 2, 5, 1, 6, 2, 5, 2, 3, 3, 9, 5, 9, 2, 7, 3, 7, 4, 5, 5, 6, 5, 5, 5, 7, 2, 4, 2, 9, 4, 9, 2, 8, 8, 10, 3, 5, 2, 8, 2, 8, 4, 5, 1, 5, 1, 3, 2, 3, 3, 5, 3, 4, 1, 7, 3, 5, 4, 7, 2, 4, 2, 8, 3, 9, 2, 7, 5, 6, 6, 8, 7, 9, 1, 7, 2, 10, 4, 5, 1, 9, 1, 4, 2, 6, 3, 7, 4, 8, 1, 4, 2, 7, 6, 10, 1, 9, 7, 10, 2, 6, 4, 7, 3, 6, 5, 8, 2, 9, 7, 8, 3, 9, 2, 10, 1, 10, 2, 8, 6, 8, 6, 9, 8, 10, 7, 9, 2, 9, 2, 8, 1, 2, 1, 10, 6, 8, 2, 7, 2, 7, 4, 10, 3, 9, 1, 10, 8, 9, 3, 8, 2, 6, 1, 5, 4, 8, 2, 7, 6, 10, 5, 7, 2, 9, 4, 7, 3, 7, 3, 10, 2, 10, 5, 9, 5, 8, 4, 10, 7, 8, 1, 9, 2, 8, 1, 7, 3, 7, 4, 10, 5, 9, 8, 10, 5, 6, 6, 10, 8, 9, 6, 8, 2, 9, 2, 5, 3, 9, 4, 9, 8, 10, 5, 6, 6, 7, 2, 9, 3, 6, 3, 5, 4, 6, 2, 10, 9, 9, 1, 7, 1, 10, 7, 10, 4, 8, 7, 8, 3, 5, 4, 9, 5, 10, 5, 8, 8, 10, 6, 8, 5, 10, 6, 7, 1, 5, 3, 7, 4, 10, 4, 7, 2, 9, 3, 8, 1, 9, 4, 5, 2, 9, 5, 7, 2, 5, 4, 9, 3, 10, 5, 7, 2, 9, 4, 6, 3, 7, 4, 6, 4, 6, 1, 4, 2, 3, 3, 7, 2, 5, 4, 7, 5, 9, 5, 7, 3, 9, 5, 7, 1, 10, 2, 6, 4, 10, 2, 5, 5, 10, 5, 9, 7, 10, 3, 6, 1, 7, 2, 3, 2, 7, 1, 10, 1, 9, 1, 9, 4, 9, 6, 7, 7, 8, 1, 7, 5, 7, 1, 8, 6, 8, 7, 9, 2, 9, 4, 9, 1, 5, 1, 10, 3, 10, 5, 9, 3, 7, 2, 8, 1, 5, 4, 9, 4, 6, 4, 5, 1, 9, 3, 10, 3, 4, 1, 9, 3, 8, 2, 8, 2, 10, 4, 4, 2, 2, 1, 5, 2, 5, 2, 9, 1, 6, 4, 6, 3, 5, 3, 6, 4, 8, 6, 8, 3, 6, 4, 6, 4, 8, 5, 10, 8, 10, 4, 5, 4, 8, 1, 7, 1, 4, 2, 5, 2, 6, 1, 5, 4, 6, 1, 9, 1, 9, 3, 9, 3, 3, 3, 9, 3, 5, 2, 6, 4, 10, 1, 3, 1, 8, 2, 6, 5, 6, 4, 6, 1, 7, 3, 5, 3, 8, 6, 9, 3, 5, 1, 5, 4, 5, 5, 8, 2, 9, 5, 6, 3, 7, 4, 7, 6, 7, 4, 4, 1, 10, 3, 4, 4, 5, 4, 8, 4, 10, 5, 9, 8, 9, 9, 10, 9, 10, 1, 5, 3, 6, 1, 5, 2, 9, 3, 6, 1, 4, 2, 9, 8, 9, 4, 9, 1, 8, 2, 3, 2, 10, 2, 9, 7, 8, 4, 7, 2, 5, 3, 4, 4, 7, 5, 10, 1, 10, 8, 8, 3, 4, 3, 4, 3, 6, 4, 10, 4, 9, 4, 6, 5, 6, 2, 5, 5, 7, 2, 5, 4, 7, 4, 9, 5, 7, 6, 9, 2, 6, 3, 5, 3, 8, 1, 4, 3, 6, 2, 8, 1, 9, 2, 4, 1, 6, 2, 6, 2, 6, 5, 9, 6, 6, 4, 8, 1, 6, 2, 9, 6, 7, 2, 6, 3, 6, 6, 8, 4, 8, 7, 10, 3, 10, 2, 8, 5, 9, 2, 8, 1, 7, 2, 4, 2, 8, 2, 6, 4, 8, 2, 3, 2, 7, 7, 9, 1, 6, 1, 6, 5, 10, 3, 10, 2, 3, 1, 4, 1, 9, 2, 5, 4, 8, 7, 10, 8, 9, 4, 7, 2, 7, 2, 7, 2, 4, 3, 4, 2, 10, 6, 7, 1, 10, 1, 6, 3, 4, 3, 10, 3, 8, 7, 10, 5, 10, 1, 4, 2, 8, 3, 5, 4, 7, 5, 6, 3, 8, 7, 10, 1, 8, 1, 10, 2, 10, 8, 10, 8, 9, 6, 9, 6, 7, 4, 6, 6, 10, 6, 10, 7, 9, 3, 9, 9, 10, 2, 6, 6, 9, 2, 5, 3, 9, 8, 9, 2, 5, 3, 9, 4, 7, 2, 7, 6, 7, 4, 8, 6, 6, 2, 7, 6, 7, 6, 9, 7, 7, 4, 7, 2, 3, 1, 10, 3, 10, 2, 7, 1, 3, 2, 7, 3, 9, 3, 10, 5, 7, 1, 6, 2, 10, 6, 9, 8, 10, 3, 5, 3, 9, 7, 9, 3, 7, 2, 7, 6, 10, 1, 7, 2, 9, 1, 8, 3, 8, 4, 6, 6, 7, 3, 6, 2, 8, 2, 9, 3, 8, 1, 6, 1, 4, 3, 10, 4, 8, 2, 7, 2, 6, 5, 10, 1, 9, 5, 9, 1, 4, 2, 8, 2, 10, 4, 10, 4, 9, 1, 8, 3, 9, 4, 7, 1, 10, 3, 5, 4, 4, 2, 9, 9, 10, 3, 10, 5, 10, 5, 8, 1, 6, 1, 5, 2, 10, 1, 7, 6, 7, 2, 5, 1, 7, 6, 6, 2, 6, 3, 5, 2, 2, 1, 2, 1, 10, 5, 8, 4, 5, 1, 8, 3, 9, 8, 9, 4, 8, 7, 9, 5, 8, 1, 6, 1, 6, 1, 10, 4, 9, 5, 5, 1, 5, 4, 6, 5, 7, 5, 9, 7, 9, 3, 9, 8, 9, 8, 10, 5, 10, 5, 7, 3, 7, 1, 5, 3, 9, 6, 9, 3, 7, 6, 6, 5, 10, 4, 7, 3, 9, 6, 7, 2, 9, 9, 10, 6, 8, 2, 9, 5, 7, 3, 7, 1, 7, 7, 8, 5, 10, 7, 9, 8, 8, 5, 7, 1, 8, 2, 5, 2, 8, 3, 9, 4, 10, 1, 9, 4, 5, 4, 9, 1, 7, 4, 8, 4, 5, 5, 6, 2, 8, 5, 6, 2, 7, 2, 10, 6, 7, 6, 8, 2, 3, 3, 10, 8, 10, 4, 9, 1, 6, 3, 4, 3, 10, 1, 6, 5, 9, 5, 8, 4, 10, 4, 10, 7, 10, 3, 8, 5, 10, 1, 5, 4, 10, 7, 8, 4, 10, 5, 6, 5, 8, 4, 10, 4, 6, 1, 6, 1, 4, 3, 6, 3, 4, 4, 7, 4, 10, 4, 10, 1, 3, 1, 10, 2, 9, 2, 6, 3, 9, 3, 6, 4, 7, 4, 9, 9, 9, 1, 8, 6, 10, 3, 9, 2, 6, 2, 3, 3, 6, 4, 5, 2, 10, 4, 5, 1, 8, 2, 6, 5, 10, 3, 8, 5, 10, 4, 7, 6, 9, 2, 8, 2, 9, 2, 8, 2, 5, 1, 5, 2, 5, 1, 10, 5, 9, 2, 7, 4, 9, 4, 8, 1, 8, 3, 9, 1, 5, 2, 9, 6, 10, 6, 7, 1, 8, 2, 7, 2, 7, 4, 8, 4, 7, 5, 9, 5, 7, 6, 10, 6, 7, 3, 6, 4, 8, 3, 10, 2, 9, 4, 10, 1, 9, 2, 8, 1, 3, 2, 10, 3, 4, 2, 9, 5, 5, 5, 9, 4, 9, 4, 10, 6, 10, 1, 9, 7, 10, 2, 8, 2, 10, 4, 9, 2, 8, 1, 9, 5, 5, 5, 7, 5, 9, 1, 9, 6, 8, 2, 10, 3, 8, 3, 6, 2, 6, 3, 4, 3, 8, 6, 6, 2, 10, 3, 10, 2, 9, 7, 8, 3, 5, 1, 5, 1, 9, 8, 8, 5, 10, 8, 9, 6, 6, 4, 6, 1, 10, 5, 10, 2, 8, 2, 10, 5, 9, 7, 9, 1, 8, 3, 8, 3, 10, 2, 9, 1, 4, 3, 10, 5, 6, 2, 3, 3, 9, 2, 8, 3, 9, 5, 9, 3, 10, 4, 10, 5, 10, 8, 10, 5, 10, 7, 7, 1, 6, 1, 9, 3, 7, 3, 9, 4, 8, 1, 10, 1, 10, 7, 7, 4, 7, 1, 9, 4, 7, 2, 6, 5, 8, 4, 9, 7, 8, 5, 10, 7, 8, 4, 8, 3, 9, 2, 4, 1, 8, 6, 6, 1, 5, 3, 6, 2, 7, 3, 9, 6, 7, 3, 5, 2, 9, 2, 3, 2, 6, 6, 10, 6, 10, 6, 8, 3, 7, 6, 10, 4, 10, 7, 10, 3, 9, 2, 8, 3, 9, 5, 7, 1, 6, 4, 5, 3, 7, 5, 9, 6, 7, 3, 6, 3, 6, 1, 4, 2, 10, 3, 10, 7, 9, 3, 7, 4, 10, 5, 8, 1, 7, 2, 8, 3, 5, 3, 10, 1, 9, 7, 8, 4, 5, 2, 9, 6, 8, 1, 10, 5, 6, 1, 9, 2, 10, 3, 6, 5, 8, 6, 8, 6, 10, 5, 8, 1, 4, 1, 9, 6, 10, 7, 9, 2, 10, 1, 9, 1, 8, 7, 10, 3, 7, 3, 5, 2, 8, 2, 8, 2, 8, 6, 7, 5, 10, 6, 10, 7, 9, 1, 4, 3, 10, 3, 10, 4, 8, 1, 7, 5, 10, 2, 6, 2, 4, 2, 4, 2, 3, 2, 7, 3, 10, 8, 8, 3, 3, 1, 3, 2, 9, 6, 10, 5, 9, 2, 7, 6, 10, 4, 8, 2, 3, 1, 9, 2, 8, 1, 9, 2, 10, 4, 6, 5, 8, 5, 8, 5, 8, 1, 5, 1, 10, 2, 8, 2, 10, 5, 6, 4, 10, 4, 8, 3, 9, 3, 10, 1, 7, 5, 6, 3, 8, 8, 9, 4, 6, 2, 10, 1, 8, 2, 3, 3, 10, 3, 7, 3, 5, 3, 5, 2, 9, 1, 9, 2, 10, 4, 5, 2, 6, 5, 8, 4, 9, 1, 8, 2, 10, 3, 9, 2, 9, 3, 6, 6, 10, 7, 8, 2, 7, 6, 9, 2, 7, 4, 8, 5, 8, 1, 9, 1, 8, 6, 10, 2, 9, 8, 10, 2, 6, 2, 8, 6, 9, 1, 7, 3, 9, 2, 3, 2, 10, 3, 9, 1, 9, 4, 5, 1, 5, 4, 9, 3, 9, 3, 8, 1, 4, 1, 2, 1, 2, 2, 9, 1, 9, 6, 6, 5, 6, 2, 8, 2, 9, 2, 2, 2, 9, 8, 8, 3, 10, 5, 7, 5, 10, 6, 10, 1, 10, 5, 6, 3, 4, 3, 9, 2, 5, 5, 10, 3, 7, 4, 8, 1, 7, 1, 9, 3, 8, 6, 7, 7, 10, 10, 10, 3, 5, 4, 9, 1, 9, 7, 8, 2, 9, 2, 3, 3, 9, 7, 8, 5, 8, 5, 10, 3, 10, 6, 6, 2, 9, 2, 10, 1, 8, 6, 7, 4, 6, 1, 2, 1, 10, 7, 8, 7, 7, 4, 9, 1, 5, 3, 9, 2, 6, 2, 9, 3, 9, 6, 9, 4, 9, 1, 10, 6, 9, 7, 9, 7, 7, 3, 5, 4, 10, 2, 9, 4, 6, 4, 9, 3, 5, 1, 7, 3, 8, 2, 2, 2, 8, 2, 8, 1, 10, 1, 4, 3, 7, 3, 10, 4, 8, 2, 6, 4, 6, 3, 7, 3, 5, 2, 7, 5, 10, 1, 9, 5, 8, 4, 9, 6, 10, 8, 10, 2, 7, 1, 5, 3, 5, 1, 3, 3, 9, 1, 10, 7, 10, 2, 9, 5, 8, 4, 6, 5, 7, 3, 7, 4, 9, 3, 7, 2, 4, 1, 3, 2, 6, 4, 9, 8, 9, 3, 9, 2, 10, 3, 10, 8, 9, 1, 2, 1, 9, 3, 7, 7, 7, 2, 10, 6, 7, 6, 8, 3, 7, 3, 6, 2, 10, 4, 10, 8, 9, 9, 10, 2, 9, 5, 5, 1, 7, 2, 8, 4, 9, 1, 8, 4, 5, 2, 10, 5, 8, 4, 10, 3, 7, 2, 4, 3, 9, 4, 8, 4, 9, 4, 7, 4, 4, 2, 6, 2, 7, 6, 7, 4, 9, 6, 8, 3, 7, 6, 8, 5, 8, 5, 9, 5, 6, 1, 2, 1, 9, 3, 6, 1, 6, 2, 10, 2, 7, 7, 10, 7, 9, 4, 10, 1, 10, 2, 6, 3, 6, 1, 9, 5, 7, 2, 4, 1, 4, 1, 10, 4, 9, 4, 10, 7, 9, 7, 8, 6, 10, 6, 9, 1, 7, 3, 10, 2, 6, 1, 2, 1, 8, 3, 4, 2, 7, 5, 6, 2, 9, 3, 10, 1, 9, 7, 10, 2, 5, 4, 6, 5, 10, 3, 5, 2, 6, 1, 6, 2, 8, 5, 6, 2, 4, 1, 4, 1, 8, 3, 9, 4, 9, 6, 8, 7, 7, 5, 7, 2, 5, 1, 10, 5, 5, 4, 5, 1, 8, 1, 8, 4, 9, 7, 10, 1, 6, 5, 6, 4, 8, 6, 9, 1, 7, 6, 9, 3, 9, 5, 10, 5, 7, 1, 2, 2, 8, 3, 4, 2, 8, 4, 6, 3, 9, 3, 5, 1, 3, 1, 9, 3, 4, 3, 10, 1, 10, 6, 10, 1, 7, 4, 4, 1, 3, 2, 8, 1, 10, 4, 5, 2, 5, 1, 5, 3, 6, 2, 6, 3, 9, 5, 8, 6, 7, 6, 10, 9, 10, 7, 9, 6, 7, 3, 3, 2, 6, 1, 4, 2, 10, 1, 10, 5, 10, 1, 8, 3, 5, 2, 6, 1, 9, 8, 10, 2, 2, 2, 6, 1, 6, 3, 10, 1, 4, 4, 6, 2, 8, 4, 7, 5, 9, 8, 9, 6, 7, 3, 8, 5, 9, 1, 2, 1, 6, 2, 9, 6, 9, 3, 8, 6, 6, 4, 10, 6, 10, 2, 10, 2, 9, 2, 7, 2, 10, 5, 10, 2, 10, 4, 10, 2, 8, 6, 10, 2, 3, 3, 10, 3, 6, 1, 5, 2, 9, 1, 8, 6, 8, 6, 7, 2, 4, 1, 3, 2, 9, 2, 8, 4, 9, 5, 7, 1, 4, 3, 9, 3, 4, 3, 9, 3, 5, 3, 9, 5, 9, 9, 10, 3, 8, 2, 7, 1, 10, 4, 9, 4, 4, 4, 9, 5, 8, 1, 7, 3, 6, 2, 10, 5, 6, 2, 6, 4, 8, 2, 5, 1, 7, 3, 6, 6, 8, 4, 10, 4, 6, 6, 9, 3, 6, 3, 9, 8, 8, 7, 10, 2, 10, 1, 8, 2, 7, 3, 6, 6, 10, 8, 10, 6, 9, 2, 9, 6, 9, 6, 6, 6, 9, 2, 9, 1, 9, 6, 6, 2, 6, 6, 10, 2, 7, 1, 9, 1, 8, 3, 10, 3, 9, 3, 7, 6, 8, 2, 7, 1, 7, 5, 8, 1, 4, 3, 5, 2, 8, 4, 8, 6, 10, 2, 7, 3, 10, 3, 10, 7, 8, 5, 8, 4, 7, 2, 9, 3, 9, 5, 6, 1, 5, 3, 7, 5, 7, 1, 10, 3, 3, 1, 4, 2, 10, 2, 10, 2, 7, 1, 6, 1, 2, 1, 4, 1, 5, 3, 7, 1, 10, 8, 10, 2, 8, 6, 7, 6, 7, 7, 7, 4, 7, 6, 9, 8, 9, 5, 10, 2, 8, 4, 10, 2, 5, 3, 5, 2, 6, 1, 8, 5, 6, 4, 8, 2, 3, 3, 6, 5, 10, 5, 7, 3, 8, 5, 7, 2, 9, 4, 5, 4, 6, 2, 8, 7, 9, 2, 8, 4, 9, 3, 8, 6, 7, 2, 9, 1, 9, 9, 9, 3, 8, 3, 7, 1, 6, 2, 5, 4, 7, 3, 9, 5, 8, 2, 3, 3, 9, 5, 9, 2, 7, 3, 9, 8, 9, 4, 6, 5, 8, 7, 9, 5, 10, 3, 10, 1, 10, 5, 6, 2, 6, 5, 7, 6, 9, 6, 10, 3, 9, 2, 10, 7, 9, 3, 7, 5, 5, 1, 6, 1, 6, 3, 9, 2, 7, 1, 6, 3, 6, 1, 5, 3, 8, 5, 9, 6, 7, 3, 7, 4, 5, 1, 6, 4, 6, 4, 5, 1, 9, 1, 8, 4, 6, 1, 5, 1, 7, 6, 10, 4, 8, 5, 9, 1, 10, 2, 5, 3, 9, 1, 9, 5, 10, 3, 6, 3, 6, 3, 8, 5, 8, 3, 4, 1, 3, 1, 8, 2, 6, 5, 8, 4, 8, 4, 6, 2, 10, 3, 9, 3, 7, 2, 7, 6, 7, 4, 8, 1, 9, 1, 7, 1, 6, 3, 8, 6, 9, 7, 7, 2, 5, 3, 4, 1, 10, 2, 7, 6, 9, 4, 6, 6, 10, 5, 6, 3, 9, 8, 9, 5, 6, 3, 8, 5, 5, 5, 6, 1, 7, 3, 5, 1, 6, 4, 10, 5, 9, 5, 6, 5, 7, 6, 10, 2, 5, 2, 9, 8, 10, 1, 3, 1, 7, 6, 6, 5, 7, 4, 5, 1, 10, 6, 7, 6, 8, 7, 8, 1, 5, 2, 8, 5, 8, 6, 6, 2, 3, 3, 6, 3, 4, 3, 7, 1, 4, 2, 8, 6, 7, 6, 9, 2, 8, 6, 8, 2, 9, 5, 5, 4, 8, 5, 8, 2, 9, 7, 8, 6, 7, 2, 7, 4, 5, 4, 10, 4, 8, 1, 7, 1, 4, 2, 10, 3, 4, 2, 7, 2, 9, 6, 8, 5, 10, 6, 8, 4, 7, 6, 10, 6, 9, 5, 7, 5, 10, 5, 7, 5, 10, 1, 6, 4, 10, 3, 10, 9, 9, 4, 9, 1, 8, 2, 8, 4, 7, 5, 9, 3, 10, 3, 7, 6, 8, 4, 7, 7, 7, 3, 4, 4, 10, 1, 7, 6, 6, 4, 10, 3, 9, 4, 7, 3, 3, 1, 5, 2, 8, 8, 8, 6, 7, 4, 4, 3, 7, 4, 5, 2, 4, 1, 10, 2, 8, 2, 8, 8, 9, 6, 7, 3, 7, 1, 9, 3, 4, 3, 9, 3, 8, 2, 10, 1, 9, 3, 10, 1, 7, 1, 9, 2, 5, 1, 10, 3, 9, 5, 5, 4, 6, 3, 6, 2, 10, 5, 10, 8, 9, 3, 10, 6, 9, 1, 7, 5, 8, 1, 9, 4, 9, 6, 7, 1, 5, 1, 10, 1, 10, 3, 7, 2, 10, 2, 10, 3, 10, 2, 5, 4, 10, 1, 8, 5, 8, 3, 7, 4, 8, 3, 8, 1, 8, 6, 7, 2, 6, 4, 8, 2, 5, 2, 3, 2, 6, 1, 5, 4, 5, 4, 9, 4, 9, 6, 10, 6, 10, 4, 8, 2, 4, 2, 3, 3, 10, 1, 2, 1, 4, 3, 7, 1, 5, 3, 7, 1, 7, 3, 6, 1, 9, 2, 9, 2, 9, 8, 10, 5, 9, 3, 4, 2, 10, 1, 5, 3, 5, 1, 9, 1, 5, 4, 6, 5, 8, 4, 8, 1, 6, 2, 8, 3, 7, 3, 6, 4, 5, 1, 9, 3, 8, 4, 10, 6, 10, 2, 8, 2, 6, 5, 10, 5, 10, 2, 5, 4, 5, 5, 8, 1, 5, 2, 6, 3, 8, 2, 6, 6, 10, 7, 10, 9, 9, 2, 6, 4, 7, 3, 6, 3, 4, 4, 10, 4, 9, 2, 10, 1, 9, 4, 6, 4, 6, 2, 6, 1, 10, 6, 8, 1, 5, 4, 5, 2, 3, 3, 9, 4, 10, 8, 9, 1, 6, 5, 7, 6, 9, 7, 9, 5, 8, 2, 6, 5, 8, 6, 8, 5, 9, 5, 10, 1, 5, 2, 6, 3, 10, 4, 10, 4, 9, 3, 7, 3, 6, 1, 8, 2, 9, 5, 9, 2, 8, 1, 8, 4, 10, 5, 6, 5, 7, 6, 9, 1, 3, 2, 7, 4, 7, 6, 10, 3, 8, 1, 8, 1, 6, 5, 9, 5, 9, 2, 7, 5, 9, 5, 5, 1, 5, 3, 10, 3, 8, 1, 10, 5, 7, 1, 9, 3, 6, 2, 4, 4, 10, 7, 10, 4, 9, 2, 10, 8, 10, 1, 4, 1, 4, 2, 10, 2, 8, 4, 6, 5, 9, 5, 6, 5, 8, 1, 5, 2, 9, 4, 8, 3, 8, 3, 10, 1, 10, 2, 5, 3, 9, 1, 10, 4, 10, 4, 10, 3, 10, 3, 6, 4, 9, 4, 7, 6, 7, 6, 10, 4, 5, 2, 10, 6, 6, 4, 5, 3, 10, 6, 7, 7, 10, 1, 7, 1, 4, 1, 8, 3, 6, 3, 9, 6, 8, 4, 6, 3, 9, 7, 10, 5, 10, 6, 8, 7, 10, 3, 10, 6, 8, 5, 8, 4, 10, 5, 7, 3, 10, 1, 6, 3, 6, 1, 4, 4, 7, 2, 9, 1, 8, 4, 7, 6, 9, 6, 10, 9, 10, 2, 10, 3, 9, 7, 9, 6, 10, 5, 7, 4, 9, 1, 6, 1, 4, 3, 9, 8, 8, 3, 10, 4, 10, 4, 8, 4, 8, 2, 9, 2, 8, 5, 10, 2, 7, 2, 7, 2, 6, 4, 6, 3, 8, 4, 8, 5, 10, 6, 6, 4, 5, 4, 7, 4, 6, 6, 7, 5, 5, 1, 4, 3, 8, 4, 9, 8, 10, 6, 9, 3, 9, 5, 9, 5, 5, 3, 7, 4, 4, 1, 10, 1, 7, 1, 8, 5, 9, 3, 8, 5, 6, 3, 5, 4, 10, 2, 9, 3, 9, 2, 5, 3, 8, 3, 8, 2, 7, 5, 10, 8, 10, 1, 9, 1, 9, 7, 7, 5, 7, 1, 10, 2, 5, 4, 6, 1, 10, 6, 10, 5, 7, 3, 7, 1, 4, 1, 9, 2, 8, 2, 6, 5, 8, 3, 6, 5, 8, 4, 8, 6, 8, 2, 5, 3, 8, 1, 8, 3, 10, 4, 7, 4, 8, 4, 4, 3, 9, 5, 8, 4, 6, 5, 9, 9, 10, 4, 9, 7, 7, 3, 9, 4, 9, 1, 9, 2, 6, 5, 8, 2, 4, 2, 9, 2, 7, 3, 8, 5, 10, 3, 10, 4, 8, 3, 5, 2, 9, 6, 9, 4, 8, 3, 7, 6, 7, 4, 6, 3, 9, 4, 9, 6, 7, 7, 8, 4, 10, 3, 10, 5, 7, 2, 7, 4, 8, 4, 7, 1, 5, 1, 4, 2, 3, 1, 9, 3, 10, 3, 9, 6, 7, 4, 7, 3, 10, 2, 6, 4, 7, 6, 7, 6, 10, 4, 9, 3, 7, 4, 5, 5, 10, 5, 9, 1, 4, 3, 7, 1, 2, 2, 8, 7, 10, 1, 8, 8, 9, 5, 9, 5, 6, 4, 8, 5, 9, 6, 9, 8, 10, 5, 7, 2, 9, 8, 10, 2, 9, 2, 6, 1, 8, 5, 8, 3, 10, 5, 6, 4, 6, 4, 7, 3, 8, 5, 10, 1, 7, 3, 9, 3, 8, 5, 10, 2, 7, 3, 7, 6, 8, 2, 6, 3, 6, 5, 6, 6, 7, 4, 9, 7, 10, 4, 10, 3, 5, 2, 9, 6, 9, 7, 9, 2, 5, 2, 8, 1, 9, 4, 8, 2, 6, 6, 7, 1, 6, 1, 4, 1, 9, 2, 8, 1, 4, 4, 10, 4, 9, 5, 7, 6, 10, 2, 10, 7, 10, 6, 8, 8, 8, 4, 10, 1, 8, 1, 7, 4, 8, 6, 9, 2, 10, 3, 7, 2, 6, 5, 7, 3, 8, 7, 9, 4, 8, 1, 5, 4, 8, 3, 10, 4, 5, 1, 10, 6, 10, 7, 8, 2, 5, 3, 8, 6, 6, 6, 10, 5, 7, 2, 10, 3, 9, 2, 7, 4, 7, 1, 3, 3, 6, 3, 4, 3, 9, 1, 5, 2, 9, 2, 9, 4, 9, 4, 10, 4, 6, 4, 10, 3, 5, 2, 8, 5, 6, 6, 10, 2, 7, 4, 7, 6, 9, 5, 10, 1, 8, 1, 8, 1, 8, 4, 9, 4, 7, 4, 6, 5, 9, 7, 8, 8, 10, 4, 8, 1, 5, 5, 9, 1, 10, 5, 8, 3, 4, 1, 7, 2, 4, 3, 8, 3, 8, 3, 8, 1, 10, 4, 10, 2, 5, 1, 9, 2, 7, 3, 8, 3, 7, 2, 6, 4, 9, 2, 5, 5, 10, 2, 6, 5, 8, 6, 8, 1, 5, 4, 9, 1, 6, 5, 8, 1, 4, 2, 5, 2, 8, 6, 7, 3, 5, 4, 6, 6, 8, 2, 7, 2, 5, 3, 5, 5, 5, 1, 9, 5, 6, 4, 5, 1, 3, 2, 9, 3, 10, 4, 9, 4, 9, 1, 10, 4, 5, 5, 7, 5, 7, 2, 6, 4, 9, 5, 6, 3, 5, 3, 4, 1, 3, 3, 6, 1, 8, 3, 4, 1, 5, 1, 8, 2, 6, 3, 9, 7, 8, 7, 9, 2, 8, 7, 8, 5, 6, 2, 8, 3, 10, 3, 6, 1, 8, 3, 9, 5, 10, 6, 8, 1, 3, 2, 8, 5, 9, 5, 10, 3, 8, 3, 5, 4, 10, 1, 8, 5, 7, 6, 10, 7, 7, 2, 9, 5, 8, 2, 10, 3, 3, 1, 10, 1, 6, 3, 9, 2, 8, 2, 10, 2, 9, 5, 7, 2, 5, 1, 4, 2, 4, 4, 10, 1, 10, 9, 10, 1, 9, 5, 7, 6, 10, 9, 10, 5, 6, 4, 7, 2, 9, 2, 4, 3, 6, 4, 5, 2, 3, 3, 9, 5, 10, 1, 10, 4, 10, 3, 10, 4, 9, 6, 7, 2, 5, 3, 9, 7, 8, 1, 5, 4, 9, 4, 10, 1, 7, 7, 9, 1, 4, 1, 3, 1, 2, 2, 10, 3, 5, 2, 10, 2, 3, 2, 8, 5, 9, 8, 8, 3, 9, 3, 10, 1, 9, 4, 8, 2, 6, 6, 10, 1, 3, 1, 3, 3, 9, 2, 6, 3, 8, 5, 7, 2, 9, 3, 9, 1, 9, 2, 8, 1, 7, 6, 10, 4, 9, 6, 9, 2, 9, 2, 7, 4, 7, 2, 6, 3, 9, 3, 5, 4, 7, 5, 9, 6, 6, 1, 6, 3, 9, 6, 7, 3, 9, 3, 8, 3, 10, 4, 6, 2, 7, 6, 8, 5, 6, 5, 9, 2, 10, 5, 8, 6, 8, 1, 10, 2, 9, 1, 3, 1, 2, 2, 6, 4, 9, 6, 7, 3, 8, 7, 7, 5, 9, 2, 10, 8, 9, 1, 10, 5, 9, 4, 9, 6, 9, 2, 9, 4, 9, 4, 8, 6, 7, 4, 6, 4, 9, 5, 5, 3, 7, 2, 4, 3, 10, 4, 7, 4, 8, 4, 8, 7, 7, 6, 10, 9, 9, 9, 10, 1, 1, 1, 10, 2, 4, 2, 6, 4, 10, 1, 8, 5, 8, 1, 8, 5, 9, 5, 9, 1, 8, 2, 6, 4, 9, 5, 10, 9, 10, 4, 6, 2, 7, 5, 9, 3, 7, 3, 8, 5, 8, 5, 8, 2, 6, 4, 5, 1, 10, 2, 9, 8, 8, 6, 10, 1, 6, 5, 9, 1, 7, 2, 5, 3, 5, 2, 10, 4, 9, 4, 6, 2, 5, 2, 3, 2, 10, 9, 10, 5, 9, 3, 8, 3, 7, 5, 9, 4, 9, 3, 8, 6, 8, 1, 8, 5, 7, 5, 10, 1, 9, 5, 6, 2, 10, 7, 8, 5, 10, 2, 9, 6, 8, 3, 9, 1, 7, 4, 10, 3, 7, 2, 6, 3, 8, 2, 10, 6, 6, 2, 6, 3, 4, 2, 8, 4, 10, 3, 5, 1, 2, 2, 9, 4, 10, 1, 9, 2, 8, 4, 10, 4, 9, 3, 10, 6, 9, 4, 8, 6, 9, 4, 6, 6, 9, 2, 7, 5, 10, 1, 9, 5, 8, 2, 3, 3, 7, 2, 9, 3, 8, 6, 8, 3, 7, 6, 10, 6, 6, 1, 5, 2, 6, 2, 4, 1, 5, 1, 3, 1, 4, 3, 9, 3, 8, 1, 6, 2, 7, 2, 7, 5, 10, 2, 7, 3, 7, 2, 5, 1, 7, 6, 7, 3, 7, 1, 7, 3, 9, 5, 10, 8, 9, 1, 9, 5, 10, 7, 7, 7, 8, 3, 7, 6, 8, 1, 5, 1, 7, 5, 10, 3, 5, 1, 5, 1, 9, 3, 8, 2, 9, 4, 8, 2, 3, 3, 5, 5, 9, 3, 5, 2, 4, 1, 8, 1, 8, 2, 10, 5, 8, 2, 10, 6, 9, 4, 9, 7, 10, 1, 7, 3, 4, 4, 8, 1, 10, 2, 6, 5, 8, 7, 10, 3, 9, 2, 9, 3, 6, 4, 5, 3, 7, 1, 9, 6, 9, 3, 9, 1, 8, 1, 5, 3, 5, 4, 8, 3, 9, 4, 7, 4, 10, 7, 10, 7, 9, 5, 9, 3, 9, 8, 10, 2, 5, 3, 6, 6, 6, 1, 6, 1, 7, 1, 10, 5, 6, 3, 5, 1, 3, 3, 10, 1, 8, 1, 10, 4, 9, 8, 10, 8, 8, 4, 7, 1, 4, 3, 10, 4, 9, 1, 7, 3, 8, 3, 5, 4, 5, 3, 9, 1, 6, 5, 9, 1, 8, 7, 10, 1, 10, 4, 7, 3, 10, 5, 7, 1, 7, 2, 10, 3, 4, 2, 10, 2, 8, 2, 8, 2, 9, 4, 7, 6, 6, 3, 10, 7, 10, 5, 9, 6, 8, 5, 7, 3, 5, 3, 10, 5, 9, 3, 8, 7, 9, 2, 8, 6, 8, 7, 7, 2, 9, 3, 9, 4, 7, 7, 10, 4, 5, 1, 4, 2, 10, 7, 7, 3, 9, 4, 9, 4, 10, 5, 6, 5, 8, 4, 7, 4, 10, 5, 9, 8, 8, 2, 10, 3, 5, 3, 7, 1, 8, 2, 6, 1, 10, 2, 6, 4, 9, 4, 5, 5, 7, 7, 9, 2, 8, 5, 5, 2, 6, 5, 10, 3, 10, 6, 7, 1, 7, 5, 6, 5, 8, 3, 5, 2, 4, 3, 8, 1, 2, 1, 10, 2, 10, 3, 5, 2, 6, 4, 6, 4, 8, 2, 4, 2, 9, 2, 10, 5, 10, 9, 9, 8, 9, 4, 5, 4, 9, 3, 8, 1, 7, 1, 8, 2, 7, 5, 9, 5, 10, 8, 10, 1, 5, 5, 7, 2, 7, 1, 6, 4, 6, 4, 6, 4, 9, 2, 6, 6, 8, 3, 8, 6, 8, 2, 6, 2, 9, 1, 7, 3, 5, 1, 4, 4, 5, 1, 8, 3, 7, 5, 9, 3, 8, 2, 5, 4, 5, 1, 10, 5, 9, 5, 8, 1, 9, 1, 5, 1, 10, 1, 6, 2, 9, 1, 5, 2, 8, 4, 10, 7, 10, 5, 9, 1, 7, 2, 9, 7, 10, 5, 9, 7, 8, 3, 7, 1, 9, 3, 6, 5, 6, 6, 9, 4, 8, 6, 6, 5, 10, 7, 8, 6, 10, 3, 4, 1, 10, 8, 9, 6, 8, 5, 6, 1, 4, 1, 10, 4, 10, 2, 6, 4, 7, 5, 8, 1, 5, 3, 10, 3, 10, 3, 9, 8, 9, 3, 6, 1, 8, 1, 6, 4, 7, 2, 5, 3, 10, 1, 8, 4, 7, 4, 5, 1, 3, 3, 10, 1, 4, 2, 6, 3, 8, 3, 7, 4, 9, 5, 6, 1, 10, 3, 9, 6, 10, 6, 10, 4, 6, 3, 6, 4, 10, 2, 3, 1, 6, 1, 7, 3, 9, 6, 6, 5, 10, 1, 10, 4, 10, 5, 10, 4, 9, 3, 8, 4, 10, 5, 10, 1, 10, 3, 9, 2, 7, 5, 7, 4, 7, 4, 7, 1, 4, 2, 9, 3, 8, 1, 7, 7, 9, 3, 8, 2, 8, 2, 4, 2, 7, 4, 7, 6, 8, 7, 10, 7, 9, 8, 9, 2, 8, 3, 6, 5, 10, 2, 8, 2, 7, 2, 5, 4, 5, 2, 5, 2, 5, 2, 5, 2, 7, 1, 10, 5, 10, 9, 10, 1, 7, 3, 10, 5, 8, 1, 8, 5, 7, 6, 7, 3, 7, 1, 8, 7, 9, 7, 8, 1, 6, 2, 5, 2, 9, 3, 9, 4, 7, 2, 7, 2, 3, 2, 7, 6, 10, 10, 10, 3, 8, 4, 7, 7, 10, 8, 10, 5, 10, 7, 9, 4, 8, 1, 9, 2, 8, 5, 6, 6, 9, 4, 7, 5, 6, 5, 7, 4, 9, 3, 6, 2, 6, 3, 5, 4, 7, 4, 7, 1, 2, 1, 10, 5, 9, 5, 10, 3, 7, 1, 7, 3, 8, 3, 7, 7, 10, 1, 10, 7, 8, 5, 6, 1, 10, 1, 7, 3, 9, 2, 10, 8, 10, 6, 8, 3, 8, 1, 8, 2, 6, 3, 9, 6, 9, 4, 7, 2, 10, 1, 6, 6, 8, 3, 5, 1, 7, 1, 3, 3, 8, 5, 9, 6, 9, 3, 7, 1, 10, 5, 8, 2, 5, 2, 4, 1, 5, 2, 9, 2, 8, 3, 8, 5, 6, 1, 10, 2, 10, 4, 4, 1, 7, 3, 10, 6, 9, 2, 6, 2, 8, 3, 5, 1, 10, 6, 8, 7, 9, 3, 5, 3, 7, 1, 7, 3, 8, 5, 7, 2, 5, 4, 7, 1, 4, 2, 9, 3, 4, 2, 10, 2, 7, 1, 7, 3, 4, 2, 6, 2, 2, 1, 8, 1, 7, 3, 4, 2, 4, 2, 10, 2, 10, 6, 10, 6, 7, 6, 6, 5, 6, 2, 6, 5, 6, 1, 2, 1, 7, 5, 6, 5, 7, 5, 9, 7, 10, 3, 10, 7, 8, 1, 3, 1, 9, 1, 8, 6, 9, 2, 7, 4, 5, 5, 8, 4, 7, 1, 6, 1, 7, 1, 9, 6, 10, 1, 7, 6, 8, 6, 9, 5, 7, 3, 6, 5, 9, 4, 6, 1, 5, 1, 9, 6, 9, 2, 3, 3, 8, 3, 8, 4, 7, 7, 8, 1, 7, 1, 5, 1, 10, 7, 9, 7, 9, 3, 7, 5, 8, 4, 7, 6, 7, 4, 7, 6, 9, 4, 10, 1, 9, 7, 9, 1, 8, 4, 8, 3, 9, 5, 7, 4, 8, 6, 8, 1, 10, 1, 6, 2, 5, 1, 3, 2, 6, 1, 8, 4, 6, 2, 5, 1, 1, 1, 9, 6, 8, 4, 10, 4, 7, 4, 5, 2, 4, 2, 3, 2, 6, 3, 4, 4, 10, 3, 9, 2, 4, 1, 3, 3, 5, 3, 8, 3, 4, 3, 6, 3, 10, 5, 10, 6, 10, 6, 8, 7, 10, 1, 7, 3, 10, 3, 10, 6, 8, 3, 5, 3, 9, 2, 10, 3, 9, 5, 10, 7, 10, 3, 8, 1, 2, 1, 10, 1, 8, 1, 5, 3, 4, 3, 5, 5, 5, 5, 7, 3, 9, 7, 10, 2, 8, 4, 5, 2, 9, 6, 9, 3, 10, 3, 9, 6, 8, 1, 7, 3, 8, 3, 10, 6, 9, 4, 7, 1, 10, 2, 9, 3, 7, 4, 8, 7, 9, 2, 8, 4, 9, 4, 9, 1, 4, 2, 9, 1, 10, 6, 10, 7, 9, 2, 9, 3, 7, 3, 7, 3, 9, 4, 8, 3, 9, 1, 10, 7, 10, 2, 8, 2, 5, 3, 7, 3, 7, 1, 8, 1, 10, 7, 9, 3, 6, 2, 10, 4, 4, 1, 9, 8, 10, 1, 7, 1, 10, 9, 10, 2, 6, 3, 8, 3, 8, 1, 8, 4, 6, 3, 8, 4, 5, 1, 7, 1, 6, 2, 10, 2, 5, 2, 6, 4, 9, 1, 3, 1, 4, 1, 10, 2, 10, 7, 9, 1, 3, 2, 9, 3, 5, 5, 10, 3, 10, 9, 9, 7, 10, 8, 10, 2, 9, 1, 10, 3, 6, 1, 10, 2, 10, 1, 8, 7, 8, 1, 5, 1, 9, 6, 8, 1, 9, 3, 8, 1, 3, 2, 4, 2, 10, 4, 10, 8, 10, 1, 7, 4, 6, 2, 8, 3, 5, 1, 6, 2, 5, 5, 8, 8, 9, 6, 7, 4, 9, 5, 10, 5, 7, 1, 5, 2, 5, 3, 6, 3, 4, 2, 3, 2, 10, 1, 8, 5, 10, 5, 7, 1, 9, 2, 6, 1, 8, 7, 10, 1, 5, 2, 9, 3, 6, 1, 3, 2, 8, 3, 9, 5, 10, 5, 10, 4, 8, 8, 9, 3, 4, 3, 8, 2, 7, 5, 7, 3, 6, 3, 10, 4, 4, 4, 8, 3, 8, 4, 7, 5, 10, 4, 6, 3, 5, 4, 9, 5, 6, 2, 9, 2, 8, 2, 8, 6, 7, 2, 8, 4, 10, 1, 10, 2, 4, 1, 10, 2, 4, 1, 7, 1, 8, 2, 4, 4, 9, 4, 6, 1, 7, 5, 5, 1, 7, 3, 8, 2, 7, 1, 6, 3, 5, 2, 3, 2, 3, 2, 2, 2, 2, 1, 6, 1, 6, 2, 7, 1, 5, 1, 5, 3, 6, 2, 4, 1, 8, 1, 1, 1, 10, 2, 5, 1, 3, 3, 9, 7, 9, 2, 8, 3, 8, 1, 3, 2, 3, 2, 9, 4, 7, 1, 10, 6, 10, 4, 10, 3, 10, 7, 10, 7, 7, 2, 6, 4, 10, 4, 10, 1, 3, 2, 9, 2, 8, 2, 3, 2, 9, 5, 8, 1, 7, 1, 9, 7, 8, 3, 4, 4, 10, 8, 8, 3, 8, 7, 10, 7, 9, 6, 8, 1, 10, 5, 9, 2, 10, 6, 10, 5, 9, 8, 9, 6, 9, 1, 5, 1, 8, 3, 4, 3, 3, 2, 9, 5, 6, 4, 8, 4, 8, 4, 10, 7, 10, 2, 9, 6, 6, 1, 10, 2, 5, 2, 7, 5, 6, 4, 9, 5, 7, 6, 9, 9, 10, 4, 8, 7, 8, 2, 4, 4, 8, 2, 4, 1, 10, 6, 7, 3, 9, 6, 6, 2, 7, 4, 9, 6, 7, 2, 7, 6, 8, 3, 8, 4, 7, 2, 8, 5, 5, 2, 7, 2, 8, 6, 10, 7, 8, 1, 5, 4, 10, 10, 10, 7, 9, 2, 6, 4, 10, 7, 8, 6, 6, 4, 9, 2, 3, 3, 3, 2, 8, 1, 9, 2, 7, 4, 7, 2, 5, 1, 7, 5, 8, 2, 6, 2, 4, 2, 5, 2, 5, 1, 4, 2, 8, 2, 10, 4, 5, 5, 6, 4, 6, 4, 9, 2, 7, 6, 9, 5, 9, 2, 9, 5, 5, 1, 9, 2, 8, 4, 8, 1, 8, 7, 7, 2, 10, 6, 8, 2, 6, 3, 7, 3, 8, 5, 5, 1, 5, 3, 9, 1, 6, 2, 5, 5, 9, 3, 6, 2, 8, 2, 9, 4, 9, 1, 6, 4, 7, 3, 7, 2, 3, 2, 3, 2, 10, 3, 6, 1, 10, 2, 6, 2, 5, 2, 9, 6, 8, 3, 6, 3, 10, 3, 10, 3, 9, 5, 7, 4, 8, 3, 6, 4, 7, 4, 9, 2, 5, 2, 9, 2, 8, 2, 9, 7, 9, 3, 10, 1, 9, 4, 8, 5, 6, 1, 8, 3, 9, 3, 6, 3, 7, 4, 9, 1, 7, 6, 7, 4, 7, 4, 9, 1, 5, 1, 3, 3, 10, 7, 9, 4, 7, 6, 9, 4, 10, 4, 6, 5, 7, 3, 8, 5, 9, 5, 10, 8, 8, 6, 7, 2, 7, 5, 10, 5, 7, 3, 4, 1, 7, 3, 8, 6, 7, 3, 9, 5, 10, 7, 8, 3, 4, 3, 9, 8, 9, 4, 9, 3, 7, 1, 5, 1, 8, 4, 9, 5, 8, 3, 7, 4, 6, 2, 4, 3, 9, 3, 9, 3, 9, 1, 5, 1, 8, 4, 7, 1, 8, 2, 9, 2, 10, 2, 3, 2, 9, 3, 10, 1, 8, 6, 10, 2, 7, 4, 10, 5, 10, 3, 10, 3, 9, 3, 7, 1, 5, 1, 10, 9, 10, 4, 8, 2, 8, 7, 10, 3, 7, 2, 5, 4, 5, 1, 9, 5, 5, 4, 10, 5, 6, 1, 3, 1, 3, 2, 5, 1, 9, 2, 7, 4, 7, 6, 10, 1, 10, 5, 6, 3, 5, 2, 9, 5, 9, 4, 7, 4, 8, 5, 7, 2, 8, 8, 10, 8, 8, 1, 5, 1, 7, 4, 4, 1, 7, 6, 9, 5, 5, 3, 7, 3, 10, 8, 8, 2, 10, 5, 10, 3, 9, 4, 4, 1, 10, 6, 10, 8, 10, 4, 9, 4, 6, 3, 7, 5, 10, 4, 9, 6, 10, 8, 8, 7, 8, 2, 10, 3, 8, 8, 8, 6, 8, 4, 10, 4, 10, 2, 5, 1, 5, 2, 4, 3, 8, 2, 5, 4, 7, 2, 8, 1, 7, 3, 5, 2, 8, 1, 6, 4, 10, 5, 7, 5, 6, 2, 9, 2, 5, 2, 8, 2, 8, 1, 6, 3, 9, 2, 7, 4, 8, 3, 9, 1, 6, 1, 7, 5, 10, 3, 5, 3, 9, 4, 6, 1, 9, 2, 10, 4, 9, 6, 10, 3, 10, 1, 6, 3, 6, 5, 7, 4, 7, 2, 5, 1, 8, 1, 2, 1, 10, 7, 8, 7, 9, 5, 9, 6, 10, 7, 8, 2, 7, 6, 9, 1, 4, 1, 5, 2, 4, 1, 8, 6, 7, 4, 6, 2, 10, 3, 8, 6, 6, 6, 10, 5, 10, 1, 6, 5, 8, 1, 8, 6, 6, 2, 4, 1, 2, 1, 6, 6, 7, 4, 6, 1, 3, 1, 8, 1, 8, 2, 8, 2, 9, 4, 8, 5, 7, 4, 10, 7, 7, 2, 6, 2, 5, 5, 10, 4, 9, 1, 8, 4, 9, 3, 9, 4, 7, 2, 7, 1, 3, 3, 8, 3, 10, 6, 9, 4, 8, 3, 9, 4, 9, 4, 7, 1, 6, 1, 9, 3, 10, 3, 7, 4, 8, 2, 4, 3, 9, 5, 8, 6, 8, 4, 8, 3, 8, 7, 8, 1, 9, 6, 9, 6, 8, 4, 9, 1, 6, 1, 6, 2, 5, 1, 7, 2, 5, 2, 8, 4, 5, 4, 10, 3, 8, 1, 6, 2, 10, 2, 4, 1, 10, 7, 9, 7, 7, 2, 10, 2, 8, 2, 7, 5, 9, 3, 9, 1, 9, 1, 7, 5, 5, 2, 8, 1, 7, 1, 5, 2, 4, 2, 5, 3, 8, 2, 9, 5, 8, 4, 6, 4, 6, 5, 9, 1, 5, 1, 8, 2, 10, 2, 10, 2, 3, 2, 5, 3, 10, 1, 4, 3, 9, 3, 10, 4, 8, 3, 5, 2, 7, 4, 8, 4, 10, 8, 9, 5, 7, 3, 10, 1, 10, 5, 7, 3, 5, 4, 8, 5, 7, 3, 5, 2, 8, 8, 10, 1, 8, 7, 7, 3, 8, 5, 7, 6, 10, 1, 5, 2, 7, 6, 10, 7, 8, 5, 7, 1, 10, 2, 9, 2, 10, 5, 7, 3, 7, 1, 8, 2, 4, 1, 8, 4, 5, 4, 4, 1, 8, 1, 8, 3, 9, 5, 8, 2, 7, 2, 6, 1, 5, 2, 4, 2, 4, 2, 8, 8, 10, 6, 10, 5, 7, 7, 10, 2, 10, 2, 8, 7, 8, 3, 5, 1, 10, 3, 7, 2, 6, 4, 8, 4, 5, 2, 7, 6, 7, 2, 5, 2, 10, 5, 9, 8, 9, 2, 4, 3, 8, 5, 8, 4, 5, 1, 6, 3, 10, 2, 9, 7, 9, 5, 8, 1, 4, 1, 8, 6, 9, 2, 6, 1, 4, 3, 10, 4, 10, 4, 8, 8, 9, 3, 7, 3, 9, 6, 6, 1, 3, 1, 8, 4, 10, 3, 8, 5, 8, 7, 10, 9, 10, 4, 9, 8, 9, 8, 8, 2, 8, 1, 8, 5, 8, 1, 6, 2, 10, 2, 10, 5, 7, 2, 4, 2, 6, 2, 5, 2, 10, 7, 9, 9, 9, 4, 9, 4, 10, 1, 7, 7, 10, 3, 7, 2, 8, 3, 9, 4, 7, 3, 9, 8, 10, 5, 9, 1, 9, 5, 10, 7, 9, 9, 10, 4, 8, 2, 4, 2, 5, 5, 9, 4, 10, 3, 6, 5, 10, 6, 8, 1, 5, 3, 6, 1, 10, 1, 7, 2, 6, 4, 7, 3, 10, 7, 10, 6, 9, 3, 9, 6, 8, 3, 5, 4, 9, 4, 10, 7, 7, 5, 10, 4, 10, 8, 9, 5, 5, 1, 5, 3, 5, 4, 9, 3, 8, 4, 4, 2, 8, 2, 8, 2, 10, 3, 10, 2, 8, 3, 10, 3, 10, 2, 6, 4, 7, 2, 9, 1, 9, 4, 6, 6, 8, 7, 9, 1, 7, 4, 10, 1, 2, 2, 9, 3, 7, 7, 8, 1, 3, 1, 10, 9, 9, 5, 6, 4, 6, 4, 5, 4, 6, 2, 6, 4, 9, 2, 4, 3, 3, 1, 10, 3, 10, 7, 10, 7, 9, 9, 10, 8, 9, 3, 8, 2, 8, 1, 10, 1, 7, 1, 3, 2, 10, 7, 9, 2, 5, 1, 8, 4, 10, 8, 10, 9, 10, 3, 8, 5, 8, 2, 8, 4, 9, 3, 7, 3, 10, 7, 9, 3, 6, 4, 9, 9, 10, 5, 7, 6, 9, 4, 10, 5, 7, 1, 9, 1, 8, 3, 10, 8, 10, 2, 6, 1, 10, 6, 9, 4, 9, 7, 8, 5, 10, 6, 9, 5, 6, 4, 10, 5, 9, 1, 5, 1, 8, 5, 7, 2, 7, 2, 6, 1, 8, 2, 10, 1, 5, 2, 9, 2, 10, 7, 7, 1, 10, 9, 9, 1, 4, 2, 6, 3, 6, 3, 7, 5, 8, 1, 3, 3, 8, 3, 10, 5, 10, 7, 8, 4, 5, 4, 6, 5, 9, 2, 10, 2, 7, 6, 8, 5, 6, 2, 6, 1, 5, 1, 10, 3, 9, 3, 7, 4, 7, 6, 8, 1, 6, 3, 9, 2, 10, 2, 5, 2, 6, 2, 9, 5, 10, 3, 7, 1, 7, 1, 10, 4, 4, 1, 9, 1, 10, 3, 9, 1, 5, 1, 6, 4, 6, 2, 6, 5, 10, 2, 9, 5, 6, 5, 10, 5, 10, 7, 7, 1, 7, 2, 7, 3, 6, 2, 10, 2, 6, 2, 8, 3, 9, 5, 10, 8, 10, 1, 10, 2, 8, 1, 9, 1, 4, 1, 9, 8, 10, 3, 5, 1, 8, 3, 7, 1, 9, 5, 5, 1, 4, 1, 8, 1, 5, 1, 5, 1, 7, 1, 8, 5, 7, 4, 5, 5, 10, 1, 8, 6, 6, 5, 10, 1, 10, 4, 10, 8, 9, 5, 10, 2, 8, 1, 6, 3, 6, 2, 3, 2, 6, 1, 10, 5, 9, 8, 10, 2, 9, 4, 8, 4, 5, 2, 9, 6, 9, 3, 5, 4, 8, 4, 8, 7, 8, 1, 4, 3, 10, 10, 10, 2, 4, 3, 9, 3, 4, 4, 9, 5, 9, 2, 9, 2, 8, 4, 7, 3, 10, 1, 10, 6, 7, 5, 10, 7, 7, 2, 9, 4, 5, 1, 3, 1, 5, 1, 7, 5, 9, 7, 10, 2, 7, 1, 8, 1, 6, 5, 7, 2, 3, 2, 10, 3, 9, 2, 4, 3, 6, 6, 9, 3, 10, 6, 10, 2, 8, 2, 6, 2, 10, 6, 10, 5, 10, 2, 9, 1, 7, 4, 10, 4, 7, 2, 10, 1, 5, 2, 5, 1, 10, 3, 4, 2, 3, 2, 6, 4, 9, 1, 10, 6, 6, 1, 4, 1, 10, 1, 8, 4, 7, 3, 5, 4, 5, 4, 8, 3, 7, 3, 5, 2, 10, 4, 6, 1, 10, 2, 5, 3, 6, 3, 9, 1, 9, 2, 9, 5, 10, 4, 7, 1, 4, 3, 3, 1, 10, 3, 8, 4, 8, 1, 10, 1, 9, 6, 9, 3, 7, 1, 8, 7, 8, 7, 9, 2, 9, 5, 6, 6, 6, 2, 10, 4, 5, 3, 8, 4, 6, 5, 10, 9, 10, 3, 7, 5, 6, 4, 6, 3, 8, 5, 7, 4, 9, 6, 9, 6, 10, 3, 6, 5, 9, 6, 10, 1, 7, 2, 9, 5, 7, 2, 5, 3, 4, 4, 9, 3, 9, 5, 10, 3, 4, 4, 7, 2, 10, 5, 8, 2, 7, 2, 10, 2, 10, 7, 10, 4, 8, 2, 7, 6, 8, 2, 8, 1, 5, 1, 10, 5, 9, 1, 9, 1, 4, 2, 10, 8, 9, 1, 10, 5, 7, 4, 5, 4, 6, 5, 10, 6, 8, 6, 7, 2, 6, 3, 9, 3, 7, 5, 6, 4, 10, 1, 9, 6, 7, 6, 8, 1, 8, 1, 8, 1, 5, 2, 9, 7, 10, 4, 8, 4, 7, 3, 6, 2, 7, 3, 5, 3, 9, 1, 10, 2, 7, 6, 10, 5, 9, 6, 10, 4, 7, 3, 7, 2, 8, 3, 5, 2, 10, 3, 8, 4, 10, 3, 8, 2, 8, 2, 2, 2, 7, 4, 7, 1, 6, 3, 10, 3, 7, 1, 4, 2, 10, 2, 10, 3, 7, 3, 9, 1, 4, 2, 7, 3, 7, 1, 7, 1, 5, 3, 6, 1, 7, 3, 10, 4, 8, 6, 7, 7, 7, 2, 5, 2, 8, 5, 10, 1, 7, 6, 7, 1, 3, 1, 9, 6, 9, 1, 9, 8, 8, 4, 9, 1, 10, 2, 6, 2, 9, 6, 8, 1, 7, 1, 3, 1, 9, 3, 7, 2, 10, 4, 9, 6, 10, 1, 8, 6, 10, 5, 9, 7, 7, 2, 9, 3, 5, 1, 4, 3, 8, 7, 9, 1, 9, 5, 6, 3, 10, 5, 5, 1, 5, 2, 10, 4, 8, 5, 9, 9, 9, 5, 10, 3, 7, 6, 10, 2, 7, 1, 2, 1, 6, 1, 6, 2, 8, 7, 10, 5, 9, 2, 9, 2, 7, 3, 7, 5, 5, 1, 6, 2, 9, 2, 6, 3, 8, 1, 6, 1, 4, 2, 8, 5, 9, 2, 7, 2, 5, 2, 4, 2, 8, 3, 10, 1, 9, 4, 9, 3, 4, 2, 8, 5, 7, 1, 8, 6, 8, 5, 7, 1, 10, 2, 5, 2, 10, 7, 9, 4, 10, 3, 5, 1, 6, 1, 5, 3, 4, 1, 8, 3, 9, 2, 8, 5, 9, 1, 7, 3, 5, 1, 8, 1, 5, 1, 5, 3, 6, 2, 8, 5, 8, 2, 6, 2, 5, 3, 5, 4, 6, 3, 6, 4, 6, 4, 10, 5, 7, 4, 4, 4, 10, 6, 7, 2, 6, 1, 10, 4, 5, 2, 5, 3, 10, 3, 8, 2, 9, 4, 6, 1, 7, 4, 6, 2, 5, 1, 7, 3, 6, 5, 8, 7, 8, 1, 8, 1, 5, 5, 9, 7, 10, 1, 9, 1, 9, 1, 4, 2, 6, 3, 8, 5, 6, 6, 7, 6, 6, 2, 10, 1, 7, 6, 8, 2, 8, 3, 7, 4, 10, 9, 10, 2, 10, 3, 7, 5, 10, 4, 7, 5, 6, 2, 7, 2, 10, 7, 8, 2, 9, 7, 8, 2, 7, 3, 5, 3, 9, 4, 9, 5, 10, 6, 9, 1, 4, 2, 5, 2, 2, 2, 4, 2, 6, 1, 8, 2, 9, 1, 7, 1, 8, 2, 10, 5, 9, 6, 9, 6, 10, 6, 8, 2, 9, 7, 8, 1, 8, 6, 7, 6, 8, 7, 8, 3, 6, 3, 8, 5, 6, 4, 9, 1, 3, 1, 8, 2, 3, 2, 9, 1, 10, 3, 7, 4, 9, 2, 7, 1, 5, 5, 9, 3, 3, 2, 2, 1, 4, 2, 10, 5, 9, 8, 10, 5, 7, 2, 3, 1, 9, 7, 7, 2, 8, 4, 9, 3, 8, 4, 7, 6, 6, 3, 7, 1, 8, 5, 7, 2, 10, 4, 8, 7, 8, 5, 9, 1, 5, 3, 8, 4, 8, 1, 3, 2, 10, 6, 9, 3, 5, 2, 4, 2, 10, 7, 10, 3, 10, 6, 8, 4, 4, 1, 10, 2, 9, 2, 10, 7, 9, 6, 9, 6, 8, 3, 8, 3, 8, 1, 5, 1, 10, 2, 3, 3, 6, 5, 9, 3, 8, 6, 8, 7, 7, 3, 9, 3, 8, 7, 8, 8, 8, 3, 8, 3, 8, 1, 7, 1, 7, 1, 10, 8, 9, 2, 5, 4, 9, 2, 5, 1, 7, 1, 8, 2, 7, 1, 7, 3, 9, 6, 8, 6, 10, 7, 10, 1, 5, 3, 6, 5, 9, 6, 9, 8, 8, 2, 9, 1, 8, 2, 10, 6, 10, 5, 8, 7, 9, 8, 9, 1, 10, 3, 8, 6, 10, 4, 8, 6, 6, 2, 3, 1, 5, 2, 6, 4, 6, 3, 8, 5, 6, 2, 4, 2, 9, 4, 9, 2, 8, 3, 3, 2, 10, 5, 8, 1, 6, 3, 5, 5, 10, 5, 10, 5, 8, 4, 6, 3, 10, 9, 9, 3, 7, 3, 6, 5, 9, 3, 9, 1, 8, 5, 7, 1, 6, 3, 6, 5, 5, 1, 8, 4, 8, 1, 6, 3, 6, 3, 6, 2, 5, 2, 6, 2, 4, 1, 10, 6, 9, 3, 4, 4, 8, 6, 7, 3, 10, 4, 7, 3, 10, 6, 10, 2, 10, 6, 10, 7, 9, 2, 10, 5, 10, 2, 8, 4, 7, 1, 5, 1, 10, 2, 6, 4, 10, 6, 10, 1, 5, 3, 7, 4, 5, 1, 7, 3, 10, 4, 10, 6, 9, 5, 9, 4, 10, 5, 6, 6, 10, 7, 9, 9, 10, 1, 6, 1, 3, 3, 7, 3, 6, 4, 6, 2, 5, 5, 10, 4, 9, 5, 10, 3, 10, 2, 7, 6, 7, 3, 10, 6, 9, 5, 10, 2, 8, 4, 9, 1, 4, 1, 9, 1, 9, 8, 10, 2, 9, 3, 8, 5, 7, 3, 6, 5, 8, 2, 10, 8, 8, 2, 5, 4, 6, 1, 8, 1, 5, 5, 9, 3, 6, 3, 9, 1, 6, 2, 10, 1, 8, 4, 5, 1, 5, 2, 4, 1, 10, 4, 8, 6, 10, 6, 10, 9, 10, 1, 7, 3, 7, 2, 9, 1, 7, 1, 2, 2, 5, 2, 10, 4, 7, 1, 3, 3, 8, 3, 9, 2, 6, 1, 3, 2, 6, 3, 10, 4, 8, 2, 9, 7, 8, 1, 8, 1, 7, 4, 9, 3, 6, 1, 10, 2, 10, 7, 8, 2, 8, 1, 5, 2, 3, 3, 5, 4, 6, 4, 6, 4, 9, 5, 9, 4, 9, 6, 8, 1, 8, 3, 8, 4, 6, 3, 4, 3, 10, 4, 9, 7, 9, 5, 9, 8, 10, 8, 8, 8, 8, 6, 9, 2, 10, 6, 9, 1, 5, 4, 9, 3, 6, 6, 6, 5, 10, 2, 6, 3, 6, 4, 8, 5, 10, 1, 8, 5, 7, 3, 8, 6, 8, 3, 7, 1, 9, 5, 8, 3, 6, 3, 6, 1, 2, 1, 6, 3, 8, 1, 8, 3, 9, 5, 8, 1, 6, 1, 10, 4, 8, 1, 7, 1, 7, 6, 10, 7, 7, 7, 9, 6, 9, 1, 9, 7, 7, 4, 7, 4, 5, 1, 7, 3, 8, 3, 4, 1, 7, 1, 9, 1, 7, 3, 9, 6, 6, 1, 5, 4, 7, 1, 2, 1, 6, 3, 10, 1, 3, 3, 6, 2, 5, 1, 9, 1, 9, 2, 6, 1, 5, 1, 4, 3, 4, 2, 8, 4, 10, 5, 9, 5, 9, 4, 6, 2, 6, 2, 5, 3, 9, 4, 9, 4, 6, 5, 5, 2, 6, 2, 7, 4, 4, 1, 9, 5, 8, 3, 6, 1, 4, 2, 9, 6, 7, 6, 10, 5, 10, 6, 9, 3, 3, 2, 10, 2, 7, 5, 8, 5, 8, 8, 9, 1, 8, 1, 10, 10, 10, 6, 10, 8, 8, 1, 6, 5, 9, 2, 6, 1, 2, 1, 4, 4, 8, 6, 10, 1, 6, 3, 7, 1, 9, 4, 6, 5, 8, 6, 8, 5, 8, 2, 7, 1, 7, 3, 8, 1, 8, 2, 9, 7, 9, 4, 10, 4, 9, 4, 10, 2, 10, 8, 10, 5, 9, 3, 7, 3, 5, 3, 9, 4, 5, 3, 8, 4, 7, 2, 5, 2, 2, 1, 5, 2, 7, 2, 6, 2, 8, 6, 9, 3, 10, 2, 10, 9, 10, 4, 9, 7, 7, 7, 8, 3, 8, 4, 8, 2, 7, 5, 7, 1, 7, 6, 9, 5, 7, 5, 9, 3, 9, 4, 9, 6, 9, 8, 9, 3, 7, 3, 4, 2, 5, 3, 8, 7, 10, 4, 7, 5, 8, 5, 9, 5, 7, 3, 7, 2, 10, 2, 3, 3, 5, 1, 2, 1, 3, 2, 10, 2, 5, 1, 8, 2, 8, 6, 9, 8, 9, 5, 9, 1, 6, 5, 10, 2, 2, 2, 4, 2, 8, 7, 9, 3, 7, 6, 6, 4, 9, 5, 10, 3, 6, 1, 6, 2, 8, 2, 8, 2, 5, 3, 5, 2, 7, 4, 9, 5, 5, 2, 7, 1, 6, 2, 10, 8, 8, 1, 9, 2, 9, 4, 9, 5, 8, 3, 9, 8, 10, 1, 3, 1, 5, 1, 10, 2, 10, 4, 6, 3, 8, 4, 10, 1, 7, 5, 10, 1, 5, 2, 6, 4, 9, 6, 10, 3, 7, 2, 9, 3, 6, 5, 8, 4, 9, 1, 7, 5, 9, 6, 7, 1, 6, 3, 3, 2, 9, 3, 8, 2, 9, 5, 5, 1, 10, 8, 9, 4, 9, 7, 9, 6, 7, 2, 6, 4, 7, 5, 5, 1, 8, 1, 7, 2, 7, 3, 9, 4, 9, 8, 9, 4, 6, 2, 7, 2, 6, 3, 4, 3, 7, 4, 9, 4, 8, 3, 9, 6, 8, 2, 10, 1, 10, 6, 8, 2, 5, 1, 5, 1, 7, 2, 7, 4, 6, 5, 5, 3, 10, 1, 6, 4, 5, 2, 3, 2, 8, 3, 10, 4, 5, 2, 9, 5, 8, 3, 9, 1, 8, 1, 7, 2, 10, 5, 9, 5, 6, 5, 7, 5, 7, 3, 10, 3, 8, 5, 8, 3, 6, 5, 10, 8, 9, 8, 9, 4, 9, 4, 9, 8, 10, 2, 6, 3, 9, 7, 10, 2, 10, 7, 8, 7, 8, 1, 7, 2, 4, 4, 6, 2, 7, 5, 6, 3, 8, 6, 8, 1, 8, 6, 8, 1, 6, 4, 9, 9, 9, 1, 9, 6, 10, 8, 9, 1, 6, 2, 8, 3, 7, 2, 6, 5, 5, 5, 9, 9, 10, 5, 6, 5, 6, 5, 6, 3, 8, 2, 5, 1, 2, 2, 9, 3, 6, 2, 8, 3, 10, 1, 5, 1, 2, 2, 9, 3, 7, 1, 7, 5, 5, 2, 9, 6, 9, 2, 7, 1, 3, 1, 10, 1, 10, 4, 10, 9, 10, 3, 9, 4, 9, 7, 8, 6, 8, 5, 7, 2, 9, 5, 7, 6, 6, 2, 5, 4, 4, 3, 6, 3, 9, 4, 9, 1, 6, 2, 5, 3, 6, 3, 3, 2, 5, 2, 3, 1, 10, 7, 10, 4, 7, 4, 10, 2, 5, 1, 10, 1, 3, 3, 10, 1, 9, 4, 7, 4, 8, 4, 8, 5, 9, 7, 9, 3, 6, 1, 3, 2, 7, 3, 9, 6, 6, 5, 10, 5, 9, 7, 7, 1, 10, 6, 7, 4, 4, 2, 5, 5, 6, 1, 9, 6, 8, 2, 3, 1, 9, 3, 8, 7, 8, 2, 7, 3, 10, 4, 9, 4, 6, 4, 7, 2, 6, 1, 8, 6, 10, 7, 10, 7, 10, 5, 9, 2, 7, 5, 6, 1, 6, 2, 7, 3, 6, 2, 5, 1, 7, 6, 8, 6, 6, 5, 7, 6, 9, 2, 8, 3, 5, 3, 10, 4, 9, 7, 9, 2, 8, 4, 7, 2, 8, 1, 5, 2, 7, 2, 6, 1, 10, 4, 6, 5, 6, 4, 10, 4, 10, 6, 6, 3, 8, 5, 7, 4, 7, 2, 6, 4, 7, 3, 9, 7, 9, 2, 8, 1, 6, 5, 9, 7, 7, 3, 4, 3, 10, 1, 9, 2, 5, 2, 10, 3, 8, 6, 10, 6, 9, 7, 9, 5, 8, 1, 8, 5, 10, 4, 7, 2, 7, 2, 7, 3, 6, 4, 10, 3, 5, 3, 9, 7, 8, 5, 10, 7, 9, 8, 9, 2, 5, 5, 10, 4, 9, 1, 8, 2, 6, 4, 9, 5, 8, 7, 9, 4, 5, 1, 7, 4, 6, 6, 7, 2, 6, 3, 5, 1, 9, 3, 5, 1, 3, 1, 9, 6, 10, 1, 3, 3, 4, 4, 8, 1, 7, 4, 7, 3, 5, 4, 8, 2, 7, 4, 5, 4, 7, 6, 8, 2, 6, 5, 6, 1, 6, 2, 9, 3, 8, 5, 6, 1, 7, 1, 10, 4, 9, 5, 8, 5, 9, 4, 10, 1, 7, 5, 10, 3, 5, 1, 7, 1, 8, 5, 7, 3, 7, 2, 3, 1, 6, 3, 6, 3, 10, 6, 7, 1, 4, 3, 10, 3, 8, 6, 10, 2, 7, 1, 7, 6, 7, 5, 10, 4, 9, 6, 7, 3, 9, 7, 10, 7, 9, 2, 9, 7, 8, 6, 9, 1, 10, 8, 8, 4, 9, 1, 5, 2, 8, 1, 8, 5, 8, 7, 8, 2, 7, 5, 8, 5, 6, 6, 10, 1, 8, 1, 6, 5, 10, 3, 10, 5, 10, 1, 7, 5, 6, 1, 10, 4, 9, 1, 6, 3, 9, 2, 10, 6, 10, 5, 9, 9, 9, 6, 10, 6, 9, 1, 8, 3, 8, 4, 10, 6, 9, 8, 9, 3, 5, 2, 9, 3, 6, 5, 5, 4, 7, 3, 8, 5, 7, 3, 10, 2, 9, 5, 9, 5, 6, 2, 9, 4, 10, 1, 6, 4, 10, 4, 8, 5, 8, 6, 8, 6, 10, 7, 8, 1, 4, 4, 10, 5, 9, 4, 8, 5, 10, 2, 8, 1, 10, 3, 4, 4, 10, 1, 10, 1, 6, 3, 8, 2, 9, 5, 8, 3, 6, 5, 7, 5, 8, 7, 10, 4, 8, 7, 10, 8, 8, 4, 8, 5, 9, 1, 7, 2, 7, 5, 8, 7, 7, 2, 7, 3, 6, 2, 3, 3, 7, 6, 8, 5, 7, 4, 6, 1, 10, 1, 7, 5, 8, 1, 7, 5, 10, 6, 9, 2, 10, 8, 9, 3, 9, 5, 5, 5, 9, 2, 5, 4, 7, 3, 10, 9, 9, 1, 7, 2, 4, 2, 5, 1, 8, 4, 10, 2, 9, 1, 6, 3, 3, 2, 7, 3, 9, 2, 9, 5, 7, 6, 9, 3, 9, 4, 9, 4, 7, 5, 9, 3, 9, 2, 8, 6, 7, 3, 8, 5, 5, 1, 9, 3, 5, 1, 8, 3, 7, 1, 4, 2, 10, 5, 10, 3, 6, 4, 9, 1, 9, 9, 9, 1, 8, 3, 6, 1, 8, 2, 6, 2, 3, 1, 10, 1, 4, 4, 10, 6, 8, 1, 10, 4, 9, 7, 7, 4, 9, 2, 4, 3, 7, 3, 7, 3, 6, 2, 10, 4, 8, 5, 7, 6, 9, 8, 10, 4, 7, 2, 5, 2, 3, 2, 8, 3, 10, 8, 9, 5, 6, 6, 10, 4, 10, 1, 3, 3, 7, 2, 8, 2, 9, 1, 3, 1, 6, 2, 5, 4, 7, 3, 5, 3, 10, 2, 4, 2, 6, 1, 6, 5, 6, 2, 4, 1, 3, 1, 10, 4, 6, 3, 8, 4, 9, 3, 10, 4, 9, 5, 10, 2, 10, 8, 9, 4, 8, 4, 5, 2, 10, 4, 8, 3, 8, 6, 10, 9, 10, 1, 10, 6, 8, 4, 8, 3, 10, 3, 8, 3, 10, 4, 5, 1, 8, 3, 10, 1, 5, 2, 10, 8, 10, 5, 8, 3, 8, 8, 10, 7, 8, 7, 10, 1, 6, 3, 9, 8, 9, 1, 7, 3, 10, 7, 8, 3, 9, 1, 10, 4, 8, 2, 7, 4, 4, 1, 9, 2, 9, 2, 10, 2, 7, 5, 5, 5, 7, 2, 3, 2, 9, 7, 7, 1, 9, 2, 9, 2, 8, 2, 10, 3, 5, 2, 5, 3, 7, 4, 8, 1, 4, 4, 9, 2, 7, 4, 10, 4, 9, 9, 9, 1, 9, 4, 9, 5, 7, 5, 7, 2, 4, 2, 10, 4, 6, 2, 6, 3, 8, 2, 7, 2, 3, 3, 8, 4, 6, 1, 9, 4, 9, 5, 8, 6, 10, 6, 7, 5, 9, 5, 5, 5, 8, 6, 9, 6, 7, 1, 3, 1, 9, 2, 7, 2, 5, 2, 5, 3, 6, 4, 6, 4, 5, 4, 9, 1, 3, 3, 8, 3, 7, 2, 8, 7, 9, 1, 3, 1, 3, 2, 7, 2, 5, 1, 7, 3, 10, 2, 4, 1, 7, 1, 2, 1, 8, 3, 6, 1, 7, 3, 6, 4, 7, 4, 10, 2, 5, 3, 8, 5, 9, 1, 3, 1, 7, 3, 5, 3, 9, 3, 10, 4, 8, 2, 4, 2, 4, 1, 6, 5, 10, 4, 6, 3, 9, 7, 10, 6, 7, 5, 7, 5, 7, 1, 9, 1, 10, 4, 9, 7, 9, 5, 10, 1, 8, 1, 9, 7, 8, 7, 9, 8, 10, 4, 9, 1, 8, 7, 9, 2, 9, 4, 6, 4, 7, 5, 10, 7, 9, 9, 9, 1, 9, 3, 3, 3, 8, 3, 9, 2, 6, 2, 10, 6, 10, 7, 10, 5, 10, 9, 10, 5, 8, 5, 10, 1, 5, 1, 10, 1, 10, 6, 8, 1, 6, 2, 10, 5, 8, 2, 6, 1, 9, 1, 1, 1, 4, 3, 8, 5, 8, 4, 8, 2, 7, 3, 4, 2, 10, 3, 7, 2, 7, 3, 10, 7, 9, 6, 10, 8, 9, 6, 7, 2, 6, 3, 10, 5, 10, 1, 10, 4, 7, 3, 7, 3, 10, 1, 5, 1, 3, 1, 2, 2, 6, 2, 10, 2, 4, 3, 10, 1, 10, 1, 8, 4, 10, 2, 8, 5, 6, 4, 7, 1, 9, 3, 9, 6, 9, 6, 10, 6, 9, 5, 8, 2, 4, 4, 8, 1, 5, 2, 7, 4, 8, 1, 6, 1, 10, 1, 5, 1, 10, 3, 6, 6, 7, 4, 10, 4, 6, 6, 8, 6, 7, 4, 9, 1, 7, 2, 9, 5, 10, 1, 10, 3, 9, 3, 9, 5, 9, 4, 8, 4, 7, 5, 7, 3, 5, 1, 9, 1, 6, 2, 10, 6, 9, 7, 8, 6, 9, 4, 9, 3, 8, 5, 10, 7, 9, 2, 5, 4, 9, 4, 10, 5, 9, 2, 7, 2, 9, 2, 10, 2, 10, 3, 6, 4, 8, 2, 8, 6, 7, 3, 9, 2, 10, 7, 9, 1, 4, 2, 10, 2, 7, 1, 9, 3, 8, 6, 9, 4, 4, 1, 10, 1, 7, 3, 7, 2, 8, 4, 10, 4, 10, 5, 7, 5, 7, 2, 8, 5, 7, 4, 7, 1, 7, 5, 8, 2, 7, 3, 8, 3, 6, 4, 9, 3, 7, 4, 7, 7, 10, 2, 8, 3, 4, 4, 7, 1, 8, 4, 8, 2, 8, 4, 7, 5, 6, 4, 9, 5, 5, 2, 7, 1, 10, 4, 8, 6, 10, 3, 7, 1, 7, 1, 10, 2, 10, 4, 10, 5, 10, 6, 10, 1, 4, 3, 8, 1, 9, 3, 8, 7, 10, 1, 4, 2, 9, 6, 7, 5, 9, 2, 9, 3, 8, 4, 6, 3, 5, 3, 10, 3, 4, 2, 4, 2, 10, 1, 10, 4, 6, 1, 10, 9, 10, 4, 6, 1, 10, 2, 9, 5, 8, 7, 8, 3, 7, 3, 8, 1, 5, 3, 4, 1, 8, 4, 8, 6, 8, 2, 6, 2, 8, 1, 7, 5, 10, 1, 7, 1, 6, 2, 3, 2, 6, 2, 9, 1, 8, 3, 6, 1, 2, 2, 3, 2, 8, 5, 10, 2, 8, 5, 10, 2, 8, 2, 6, 3, 5, 2, 9, 3, 4, 1, 4, 2, 9, 2, 9, 1, 9, 5, 8, 6, 9, 6, 8, 4, 9, 6, 10, 2, 5, 2, 10, 8, 10, 8, 10, 8, 9, 7, 10, 6, 8, 1, 9, 6, 9, 6, 6, 1, 8, 3, 6, 2, 3, 2, 7, 3, 10, 1, 9, 2, 5, 3, 7, 4, 7, 4, 10, 6, 8, 4, 6, 3, 8, 1, 5, 3, 6, 1, 4, 4, 8, 4, 5, 1, 5, 3, 10, 3, 7, 5, 8, 7, 10, 1, 5, 4, 9, 1, 7, 5, 5, 1, 10, 3, 4, 4, 8, 4, 7, 6, 9, 5, 10, 9, 10, 1, 9, 6, 9, 7, 8, 1, 5, 2, 4, 1, 4, 3, 9, 4, 5, 4, 10, 3, 7, 2, 9, 4, 6, 6, 8, 3, 8, 5, 8, 3, 6, 1, 5, 1, 7, 5, 10, 2, 5, 4, 9, 1, 9, 8, 9, 3, 9, 7, 8, 2, 10, 1, 8, 1, 10, 6, 9, 2, 6, 1, 3, 2, 10, 3, 10, 8, 10, 3, 8, 4, 10, 4, 5, 1, 3, 2, 10, 2, 9, 3, 6, 3, 10, 4, 5, 1, 9, 2, 3, 2, 6, 1, 9, 3, 9, 1, 9, 4, 9, 7, 7, 5, 6, 2, 8, 3, 10, 7, 10, 5, 8, 1, 4, 4, 9, 4, 10, 8, 10, 2, 5, 4, 6, 2, 9, 7, 10, 9, 9, 1, 9, 3, 7, 5, 8, 2, 9, 3, 9, 6, 8, 2, 7, 2, 5, 4, 5, 3, 6, 4, 6, 2, 9, 1, 9, 6, 8, 7, 10, 3, 9, 7, 7, 3, 9, 1, 7, 4, 5, 2, 6, 2, 8, 6, 7, 5, 9, 5, 7, 1, 9, 3, 5, 3, 9, 4, 10, 2, 4, 3, 8, 6, 9, 1, 10, 2, 5, 4, 10, 1, 5, 3, 7, 5, 5, 3, 7, 6, 8, 1, 7, 5, 7, 1, 2, 2, 10, 1, 8, 2, 6, 4, 10, 5, 8, 2, 4, 4, 9, 1, 2, 1, 9, 2, 10, 6, 7, 5, 8, 8, 10, 3, 9, 7, 9, 1, 5, 2, 8, 2, 8, 4, 5, 1, 7, 1, 8, 4, 9, 5, 8, 3, 9, 2, 5, 1, 10, 8, 10, 1, 4, 2, 10, 3, 10, 1, 9, 6, 7, 6, 8, 6, 10, 3, 8, 8, 10, 4, 5, 1, 3, 1, 9, 2, 8, 4, 10, 8, 9, 1, 10, 2, 9, 3, 8, 2, 8, 2, 8, 3, 5, 1, 10, 2, 3, 1, 4, 4, 10, 1, 9, 6, 6, 1, 4, 1, 2, 1, 8, 6, 9, 3, 9, 4, 7, 3, 10, 5, 8, 1, 5, 3, 3, 3, 8, 5, 7, 6, 8, 2, 10, 1, 9, 4, 7, 1, 6, 4, 9, 4, 10, 8, 10, 5, 9, 2, 8, 5, 10, 1, 10, 6, 10, 6, 7, 2, 8, 3, 7, 4, 6, 6, 9, 4, 6, 2, 5, 3, 9, 2, 7, 3, 7, 6, 10, 3, 9, 3, 7, 3, 9, 1, 5, 3, 7, 4, 10, 2, 5, 1, 10, 4, 8, 4, 6, 6, 7, 4, 6, 5, 7, 2, 9, 4, 10, 5, 10, 5, 8, 5, 5, 5, 9, 6, 8, 3, 4, 2, 5, 5, 7, 2, 8, 4, 5, 1, 5, 1, 10, 4, 9, 7, 7, 2, 3, 2, 8, 3, 7, 3, 6, 6, 9, 2, 3, 1, 10, 7, 10, 2, 10, 2, 9, 4, 5, 1, 4, 3, 8, 1, 7, 3, 7, 5, 7, 1, 8, 7, 10, 3, 6, 5, 7, 4, 9, 3, 10, 2, 8, 4, 6, 5, 10, 5, 8, 2, 9, 3, 10, 4, 7, 3, 6, 4, 7, 4, 8, 1, 4, 4, 8, 3, 7, 4, 7, 2, 9, 1, 5, 4, 9, 3, 8, 5, 7, 1, 7, 3, 7, 3, 8, 4, 10, 6, 10, 6, 10, 2, 7, 3, 7, 2, 7, 3, 3, 2, 2, 2, 7, 2, 10, 6, 10, 1, 7, 3, 9, 6, 10, 2, 9, 6, 7, 7, 10, 4, 10, 1, 6, 5, 10, 3, 9, 3, 5, 2, 4, 1, 5, 1, 4, 3, 6, 4, 7, 3, 10, 1, 8, 8, 10, 2, 7, 2, 5, 3, 7, 3, 7, 4, 6, 6, 10, 3, 6, 2, 5, 1, 4, 2, 10, 1, 3, 2, 4, 3, 7, 2, 8, 6, 7, 1, 6, 5, 6, 2, 7, 5, 10, 3, 7, 1, 8, 2, 7, 6, 10, 2, 8, 3, 9, 1, 4, 1, 5, 4, 5, 3, 9, 1, 3, 3, 9, 3, 10, 2, 10, 3, 6, 1, 7, 3, 9, 7, 10, 4, 9, 3, 9, 2, 9, 1, 7, 2, 5, 3, 9, 2, 10, 1, 10, 7, 9, 7, 9, 5, 8, 5, 6, 4, 6, 4, 10, 5, 6, 2, 3, 1, 10, 5, 9, 9, 10, 3, 9, 9, 10, 4, 7, 6, 8, 5, 7, 5, 7, 2, 10, 6, 10, 2, 8, 4, 6, 4, 8, 3, 6, 2, 10, 7, 10, 6, 6, 2, 9, 3, 6, 1, 5, 1, 5, 1, 10, 3, 9, 2, 8, 6, 10, 3, 5, 4, 7, 5, 7, 6, 10, 1, 4, 2, 6, 3, 9, 4, 9, 5, 7, 2, 8, 6, 8, 4, 10, 8, 10, 6, 10, 8, 9, 2, 4, 1, 8, 4, 6, 3, 4, 1, 9, 6, 7, 2, 7, 3, 5, 4, 5, 1, 6, 2, 5, 4, 6, 6, 7, 1, 7, 3, 4, 3, 10, 1, 7, 4, 10, 6, 8, 4, 5, 2, 10, 1, 8, 3, 10, 4, 7, 7, 9, 2, 8, 2, 7, 7, 10, 5, 6, 2, 4, 3, 8, 2, 10, 4, 5, 4, 9, 4, 6, 2, 5, 4, 10, 7, 8, 2, 8, 2, 5, 2, 7, 5, 6, 5, 8, 5, 10, 3, 10, 4, 5, 2, 4, 3, 10, 7, 9, 1, 6, 3, 6, 2, 8, 4, 7, 4, 5, 5, 6, 3, 4, 4, 10, 7, 8, 4, 7, 6, 9, 3, 5, 1, 3, 2, 10, 7, 10, 3, 10, 8, 10, 2, 6, 1, 6, 2, 6, 3, 10, 1, 5, 3, 4, 2, 7, 6, 9, 5, 7, 4, 6, 3, 10, 1, 7, 5, 7, 1, 8, 1, 7, 5, 10, 4, 9, 1, 8, 1, 10, 6, 6, 1, 3, 1, 6, 4, 4, 1, 7, 1, 5, 4, 8, 6, 10, 2, 6, 2, 4, 4, 10, 8, 10, 2, 3, 2, 9, 6, 8, 5, 8, 5, 6, 1, 5, 3, 7, 3, 5, 3, 6, 1, 9, 4, 10, 5, 9, 4, 7, 6, 10, 8, 8, 5, 8, 4, 9, 2, 8, 4, 9, 5, 8, 8, 10, 8, 10, 1, 10, 2, 8, 4, 7, 6, 8, 2, 5, 3, 9, 3, 7, 5, 8, 8, 10, 7, 10, 6, 8, 3, 10, 1, 7, 3, 8, 1, 7, 2, 3, 2, 3, 1, 3, 2, 8, 4, 10, 6, 8, 3, 7, 1, 2, 1, 6, 3, 7, 4, 7, 5, 7, 6, 10, 6, 9, 6, 7, 1, 8, 4, 9, 1, 9, 6, 10, 9, 10, 4, 9, 9, 10, 3, 9, 6, 8, 2, 6, 2, 8, 2, 6, 3, 7, 7, 10, 9, 10, 7, 9, 3, 6, 2, 8, 2, 6, 1, 7, 5, 10, 2, 10, 2, 10, 1, 4, 3, 4, 1, 9, 2, 6, 5, 7, 4, 10, 5, 10, 2, 7, 1, 7, 2, 8, 2, 8, 6, 9, 3, 10, 6, 6, 1, 8, 6, 6, 1, 8, 3, 10, 2, 7, 1, 9, 3, 6, 1, 3, 3, 9, 8, 10, 4, 5, 2, 8, 5, 9, 1, 5, 4, 9, 6, 8, 6, 8, 6, 10, 2, 5, 2, 4, 3, 10, 6, 8, 1, 6, 1, 2, 2, 9, 1, 9, 7, 8, 2, 10, 2, 9, 5, 9, 5, 8, 7, 10, 7, 9, 2, 4, 1, 3, 2, 4, 2, 4, 4, 5, 2, 8, 5, 7, 2, 8, 2, 9, 5, 10, 8, 8, 5, 10, 5, 7, 6, 9, 4, 5, 3, 8, 3, 7, 6, 8, 4, 6, 6, 8, 1, 3, 1, 7, 1, 3, 1, 7, 2, 6, 4, 10, 1, 5, 2, 6, 1, 8, 4, 7, 2, 10, 5, 8, 6, 7, 3, 5, 3, 3, 2, 3, 3, 7, 1, 5, 4, 5, 1, 8, 2, 8, 3, 10, 7, 9, 5, 7, 2, 7, 2, 7, 2, 6, 2, 10, 5, 9, 8, 10, 2, 8, 4, 5, 1, 5, 2, 7, 1, 7, 1, 6, 2, 9, 2, 10, 1, 1, 1, 6, 1, 9, 4, 8, 2, 9, 2, 9, 4, 9, 5, 10, 3, 7, 5, 10, 3, 10, 6, 8, 2, 7, 2, 5, 1, 4, 1, 7, 1, 9, 4, 9, 3, 8, 7, 8, 4, 10, 9, 9, 4, 7, 2, 6, 4, 6, 3, 9, 5, 10, 2, 8, 8, 10, 3, 8, 6, 10, 4, 10, 8, 10, 1, 8, 7, 10, 3, 8, 3, 5, 1, 5, 1, 6, 2, 7, 5, 6, 5, 8, 1, 8, 5, 7, 6, 9, 2, 4, 1, 6, 2, 8, 3, 8, 5, 7, 2, 4, 3, 8, 4, 10, 5, 9, 7, 10, 1, 4, 4, 5, 3, 10, 1, 5, 1, 10, 3, 3, 1, 3, 1, 10, 3, 7, 3, 8, 3, 7, 2, 4, 4, 9, 5, 10, 7, 10, 7, 9, 5, 6, 1, 5, 1, 3, 3, 7, 6, 9, 7, 8, 6, 7, 1, 5, 2, 9, 6, 9, 5, 6, 4, 6, 1, 6, 1, 10, 5, 10, 8, 8, 5, 8, 6, 9, 1, 3, 2, 6, 1, 6, 5, 7, 3, 8, 6, 8, 7, 7, 1, 8, 5, 7, 1, 3, 3, 10, 4, 10, 4, 8, 1, 6, 2, 6, 4, 5, 4, 10, 4, 6, 4, 8, 6, 10, 2, 6, 4, 9, 7, 7, 2, 8, 1, 6, 1, 2, 1, 2, 1, 9, 1, 10, 7, 8, 5, 9, 6, 9, 1, 9, 4, 8, 3, 3, 3, 4, 1, 5, 4, 9, 3, 8, 2, 9, 6, 6, 6, 9, 5, 9, 6, 10, 1, 10, 6, 7, 1, 8, 2, 10, 5, 7, 3, 5, 2, 9, 2, 7, 6, 6, 6, 8, 3, 9, 4, 5, 4, 8, 2, 7, 3, 10, 7, 9, 8, 10, 6, 9, 2, 9, 2, 10, 3, 7, 1, 9, 1, 5, 4, 10, 3, 9, 3, 7, 1, 8, 3, 10, 5, 6, 5, 5, 2, 5, 3, 8, 1, 5, 1, 9, 3, 7, 5, 10, 2, 3, 2, 7, 6, 9, 3, 3, 2, 8, 1, 5, 2, 10, 1, 6, 2, 7, 2, 4, 4, 10, 1, 5, 4, 8, 6, 8, 7, 10, 3, 5, 5, 10, 7, 9, 1, 4, 1, 4, 2, 5, 3, 5, 4, 9, 1, 4, 3, 6, 4, 5, 1, 8, 3, 10, 7, 8, 2, 5, 4, 8, 3, 7, 2, 4, 2, 7, 6, 8, 4, 9, 8, 9, 6, 10, 2, 3, 2, 10, 6, 10, 6, 7, 3, 9, 4, 8, 3, 8, 3, 8, 3, 9, 6, 10, 3, 9, 4, 6, 1, 9, 7, 9, 1, 5, 2, 7, 2, 8, 3, 7, 2, 8, 5, 7, 6, 7, 4, 4, 4, 9, 6, 7, 1, 6, 3, 4, 1, 5, 2, 9, 5, 8, 7, 8, 3, 10, 6, 6, 3, 6, 1, 5, 1, 4, 2, 3, 2, 3, 1, 5, 3, 10, 4, 7, 3, 10, 4, 7, 1, 6, 2, 8, 1, 6, 2, 3, 2, 3, 3, 6, 4, 10, 4, 8, 4, 9, 2, 10, 5, 6, 5, 8, 6, 10, 1, 7, 1, 6, 4, 9, 2, 10, 2, 6, 4, 5, 1, 6, 5, 6, 4, 4, 3, 8, 7, 7, 5, 9, 2, 7, 5, 9, 7, 10, 7, 9, 7, 9, 1, 8, 4, 9, 3, 7, 3, 8, 1, 7, 2, 9, 2, 10, 4, 10, 7, 9, 4, 10, 9, 10, 7, 8, 4, 10, 6, 7, 5, 9, 5, 6, 3, 9, 4, 7, 1, 8, 6, 6, 1, 6, 5, 9, 1, 6, 1, 4, 2, 5, 3, 7, 2, 6, 2, 8, 7, 10, 1, 3, 3, 4, 1, 9, 3, 4, 3, 7, 6, 9, 6, 9, 7, 8, 1, 3, 2, 7, 2, 9, 5, 8, 2, 7, 6, 10, 7, 10, 6, 7, 3, 5, 2, 6, 5, 6, 4, 5, 2, 9, 6, 10, 3, 9, 6, 6, 3, 7, 3, 5, 4, 8, 5, 6, 2, 5, 2, 9, 3, 8, 4, 8, 1, 10, 1, 10, 4, 9, 3, 5, 4, 8, 5, 9, 7, 8, 5, 6, 1, 6, 5, 6, 1, 9, 6, 10, 7, 7, 5, 8, 3, 9, 4, 10, 4, 6, 2, 6, 3, 6, 2, 8, 3, 6, 1, 6, 6, 6, 6, 9, 7, 9, 8, 9, 7, 8, 8, 10, 2, 9, 7, 10, 1, 9, 1, 10, 3, 5, 1, 10, 5, 6, 3, 10, 1, 10, 4, 7, 2, 8, 4, 10, 7, 9, 3, 3, 1, 9, 1, 3, 2, 6, 3, 9, 2, 9, 6, 9, 9, 10, 1, 7, 3, 9, 5, 9, 5, 10, 3, 10, 2, 8, 7, 10, 7, 9, 1, 10, 1, 10, 1, 2, 1, 8, 1, 4, 2, 10, 10, 10, 2, 8, 3, 4, 1, 3, 1, 10, 2, 10, 4, 4, 2, 5, 4, 6, 4, 5, 4, 9, 7, 8, 3, 9, 5, 10, 4, 6, 2, 5, 3, 10, 3, 10, 6, 6, 3, 8, 4, 6, 4, 9, 3, 7, 5, 9, 2, 8, 7, 8, 1, 8, 4, 8, 2, 8, 2, 7, 2, 5, 4, 7, 5, 10, 4, 10, 2, 5, 3, 6, 5, 8, 6, 9, 4, 10, 7, 8, 2, 10, 5, 8, 3, 4, 3, 7, 2, 3, 2, 10, 2, 9, 1, 8, 2, 9, 4, 7, 5, 5, 3, 9, 5, 9, 8, 9, 7, 7, 1, 9, 1, 5, 1, 2, 2, 3, 1, 8, 4, 6, 4, 6, 6, 10, 7, 10, 1, 5, 3, 9, 8, 10, 8, 10, 5, 7, 1, 10, 4, 8, 5, 8, 1, 10, 6, 8, 7, 9, 2, 10, 1, 8, 5, 5, 5, 9, 6, 8, 5, 7, 1, 5, 1, 6, 4, 5, 4, 7, 1, 7, 4, 10, 9, 10, 4, 10, 3, 6, 5, 10, 3, 5, 4, 10, 8, 9, 4, 6, 3, 8, 3, 10, 4, 8, 1, 5, 2, 2, 1, 10, 9, 9, 1, 6, 2, 6, 4, 10, 1, 6, 2, 7, 4, 6, 4, 7, 1, 3, 1, 4, 3, 4, 2, 10, 3, 7, 3, 8, 1, 7, 5, 9, 5, 7, 4, 10, 3, 5, 2, 4, 1, 4, 1, 7, 4, 8, 2, 10, 9, 9, 9, 10, 4, 10, 1, 8, 4, 9, 7, 8, 5, 9, 4, 7, 1, 9, 4, 9, 5, 9, 3, 6, 3, 9, 4, 7, 5, 9, 6, 8, 7, 10, 3, 10, 3, 6, 1, 10, 3, 7, 4, 8, 2, 7, 1, 6, 2, 8, 4, 4, 1, 5, 3, 7, 1, 6, 4, 7, 7, 10, 5, 10, 3, 6, 4, 7, 2, 6, 2, 8, 4, 7, 5, 6, 6, 9, 4, 10, 1, 9, 6, 9, 3, 9, 2, 4, 4, 10, 4, 10, 6, 9, 3, 6, 5, 9, 2, 5, 2, 9, 5, 6, 1, 10, 2, 9, 4, 8, 8, 9, 7, 10, 1, 5, 1, 3, 2, 8, 4, 10, 4, 7, 2, 4, 2, 7, 4, 6, 1, 10, 5, 10, 3, 6, 3, 8, 4, 6, 2, 7, 1, 4, 2, 10, 1, 4, 3, 8, 2, 8, 2, 6, 5, 7, 4, 6, 5, 8, 1, 5, 2, 7, 4, 6, 4, 6, 3, 10, 1, 10, 3, 7, 4, 7, 1, 8, 3, 8, 8, 9, 3, 10, 6, 10, 7, 10, 1, 9, 2, 9, 1, 8, 6, 8, 6, 7, 5, 8, 5, 6, 1, 9, 3, 8, 4, 8, 1, 8, 3, 7, 2, 4, 2, 8, 6, 7, 4, 10, 5, 8, 3, 10, 3, 8, 1, 10, 4, 8, 3, 6, 1, 9, 1, 6, 1, 7, 4, 4, 3, 9, 7, 10, 7, 8, 5, 8, 2, 7, 4, 7, 3, 6, 4, 8, 6, 8, 5, 9, 6, 10, 9, 9, 3, 6, 2, 5, 3, 8, 1, 8, 1, 7, 1, 5, 1, 9, 4, 5, 1, 8, 4, 6, 4, 8, 2, 7, 2, 9, 5, 6, 3, 7, 6, 9, 5, 10, 1, 5, 1, 7, 3, 5, 3, 8, 2, 7, 3, 4, 1, 9, 1, 8, 2, 9, 4, 10, 4, 9, 3, 8, 4, 7, 4, 6, 6, 8, 4, 7, 7, 9, 6, 8, 7, 8, 1, 9, 4, 10, 3, 8, 5, 7, 4, 10, 4, 10, 9, 9, 4, 10, 7, 8, 2, 5, 2, 8, 7, 7, 1, 7, 2, 10, 8, 10, 1, 8, 1, 10, 1, 7, 4, 10, 3, 9, 1, 8, 4, 6, 5, 7, 1, 5, 3, 7, 2, 10, 5, 8, 7, 9, 7, 10, 1, 6, 1, 9, 3, 9, 3, 5, 4, 7, 3, 8, 4, 5, 1, 7, 1, 5, 1, 10, 2, 9, 3, 10, 4, 7, 1, 9, 4, 5, 5, 10, 1, 9, 1, 8, 4, 7, 4, 8, 5, 8, 6, 7, 3, 5, 3, 4, 4, 6, 3, 7, 4, 7, 6, 9, 2, 9, 6, 8, 3, 7, 5, 10, 6, 10, 6, 10, 6, 6, 1, 7, 3, 7, 5, 7, 5, 9, 2, 9, 4, 8, 1, 6, 6, 10, 6, 9, 2, 5, 2, 5, 5, 8, 5, 7, 5, 6, 6, 8, 2, 6, 5, 10, 3, 9, 1, 9, 6, 10, 7, 10, 3, 8, 2, 6, 3, 5, 5, 9, 6, 8, 3, 9, 8, 10, 7, 10, 7, 9, 8, 9, 2, 7, 3, 10, 3, 6, 2, 6, 3, 5, 2, 10, 8, 9, 1, 6, 1, 10, 3, 8, 5, 7, 7, 7, 6, 10, 5, 5, 3, 10, 5, 10, 8, 10, 3, 4, 3, 4, 3, 7, 7, 10, 4, 9, 1, 7, 4, 7, 4, 6, 5, 7, 2, 7, 2, 6, 1, 5, 2, 10, 4, 8, 1, 9, 2, 4, 2, 6, 5, 9, 5, 7, 5, 9, 4, 9, 5, 9, 3, 6, 4, 10, 4, 10, 5, 9, 6, 6, 1, 4, 1, 5, 3, 7, 3, 9, 5, 6, 2, 8, 1, 10, 4, 8, 2, 6, 4, 7, 4, 9, 6, 7, 1, 3, 2, 4, 3, 8, 3, 7, 1, 8, 6, 9, 6, 7, 1, 3, 2, 5, 1, 8, 3, 9, 6, 8, 5, 7, 6, 7, 7, 9, 4, 8, 1, 9, 4, 8, 3, 9, 7, 8, 2, 8, 2, 7, 5, 8, 1, 7, 2, 10, 4, 6, 1, 8, 5, 9, 4, 7, 5, 5, 2, 8, 4, 9, 1, 7, 6, 9, 3, 6, 1, 9, 3, 9, 3, 8, 4, 6, 2, 6, 5, 10, 3, 9, 1, 8, 2, 6, 3, 10, 5, 9, 3, 5, 1, 2, 1, 10, 1, 8, 5, 8, 4, 7, 4, 6, 1, 8, 3, 8, 4, 10, 2, 7, 1, 9, 5, 6, 1, 2, 1, 8, 2, 4, 2, 10, 4, 10, 2, 6, 3, 10, 6, 10, 3, 10, 8, 10, 1, 9, 4, 9, 3, 9, 2, 8, 1, 5, 2, 7, 2, 9, 2, 9, 2, 8, 3, 8, 1, 5, 1, 5, 3, 4, 3, 8, 1, 9, 4, 8, 5, 5, 3, 7, 3, 10, 1, 7, 6, 10, 2, 5, 3, 10, 4, 4, 3, 5, 3, 10, 5, 10, 2, 5, 3, 7, 3, 4, 4, 5, 4, 6, 5, 9, 6, 9, 7, 8, 5, 8, 6, 7, 4, 10, 5, 9, 3, 9, 1, 7, 2, 5, 2, 5, 3, 6, 5, 8, 1, 8, 1, 3, 2, 5, 3, 10, 5, 10, 3, 5, 1, 7, 4, 9, 9, 9, 2, 9, 4, 7, 7, 10, 9, 10, 8, 9, 8, 9, 3, 8, 4, 10, 1, 7, 3, 6, 5, 8, 2, 4, 1, 7, 4, 7, 3, 6, 2, 6, 4, 6, 1, 8, 3, 6, 4, 5, 2, 8, 3, 7, 2, 6, 1, 8, 4, 6, 6, 9, 9, 10, 9, 10, 6, 9, 3, 6, 1, 8, 6, 8, 1, 6, 2, 3, 3, 6, 1, 6, 2, 7, 5, 7, 3, 8, 5, 8, 5, 10, 5, 10, 8, 8, 1, 2, 1, 5, 3, 10, 1, 4, 2, 9, 4, 7, 5, 7, 4, 6, 5, 10, 3, 6, 3, 9, 3, 10, 1, 7, 7, 7, 4, 10, 4, 7, 4, 9, 5, 6, 5, 7, 2, 7, 1, 9, 6, 8, 1, 6, 4, 10, 9, 9, 2, 9, 3, 6, 6, 9, 6, 7, 3, 5, 1, 8, 4, 9, 3, 4, 1, 9, 4, 4, 3, 5, 1, 8, 4, 4, 4, 10, 7, 10, 4, 9, 5, 9, 7, 7, 3, 8, 3, 7, 5, 9, 1, 4, 1, 9, 2, 8, 2, 4, 3, 9, 2, 9, 4, 10, 6, 9, 7, 9, 2, 7, 1, 5, 1, 8, 2, 8, 6, 6, 3, 5, 4, 10, 1, 9, 3, 5, 1, 3, 1, 3, 3, 10, 5, 5, 1, 7, 1, 6, 2, 9, 1, 10, 1, 6, 4, 9, 8, 8, 4, 6, 4, 9, 3, 10, 4, 6, 2, 9, 1, 9, 1, 10, 3, 8, 2, 7, 4, 5, 1, 10, 1, 8, 3, 7, 4, 6, 6, 7, 5, 6, 3, 6, 3, 8, 3, 4, 3, 8, 3, 8, 5, 7, 2, 3, 3, 9, 6, 8, 1, 10, 1, 5, 2, 3, 1, 10, 2, 5, 3, 4, 2, 10, 2, 7, 2, 9, 4, 4, 1, 9, 7, 8, 6, 9, 3, 8, 4, 6, 1, 8, 3, 5, 1, 2, 2, 9, 5, 10, 5, 10, 6, 7, 3, 5, 2, 4, 1, 7, 3, 8, 4, 7, 5, 8, 6, 7, 2, 7, 6, 10, 2, 8, 3, 4, 4, 8, 1, 10, 1, 7, 2, 10, 4, 8, 6, 8, 3, 6, 4, 5, 4, 9, 7, 7, 3, 7, 6, 10, 8, 10, 7, 7, 2, 7, 3, 10, 8, 10, 2, 10, 2, 8, 4, 9, 2, 8, 4, 9, 8, 8, 4, 10, 4, 8, 3, 5, 1, 9, 1, 6, 1, 9, 1, 9, 9, 10, 2, 9, 4, 10, 4, 7, 5, 7, 4, 9, 3, 8, 5, 7, 6, 10, 3, 7, 6, 8, 4, 7, 2, 9, 4, 9, 7, 9, 4, 10, 5, 9, 4, 6, 2, 8, 5, 9, 1, 9, 5, 6, 5, 10, 9, 10, 5, 8, 5, 9, 7, 7, 1, 3, 3, 8, 4, 10, 3, 5, 2, 9, 8, 10, 7, 10, 4, 10, 8, 9, 4, 10, 6, 7, 7, 10, 1, 10, 9, 10, 10, 10, 10, 10, 6, 9, 6, 8, 3, 5, 1, 4, 3, 7, 4, 8, 1, 3, 2, 6, 1, 7, 1, 5, 4, 9, 3, 9, 4, 8, 4, 8, 1, 6, 1, 8, 1, 8, 3, 6, 4, 9, 3, 3, 1, 9, 6, 9, 1, 4, 1, 9, 4, 6, 5, 9, 7, 8, 5, 7, 3, 6, 1, 6, 1, 7, 5, 9, 6, 7, 5, 5, 2, 5, 4, 5, 4, 9, 3, 7, 2, 10, 3, 8, 6, 9, 1, 8, 4, 9, 6, 9, 5, 10, 2, 6, 2, 6, 1, 3, 3, 3, 3, 5, 5, 8, 3, 6, 5, 10, 7, 7, 6, 8, 2, 7, 6, 9, 5, 7, 5, 6, 3, 6, 4, 8, 6, 7, 3, 10, 6, 7, 7, 7, 2, 7, 3, 9, 4, 7, 5, 10, 2, 10, 4, 8, 8, 10, 1, 7, 1, 7, 1, 7, 3, 10, 6, 8, 4, 10, 10, 10, 4, 10, 3, 10, 5, 10, 4, 7, 5, 6, 2, 10, 6, 9, 5, 8, 6, 9, 6, 7, 1, 8, 4, 9, 4, 10, 3, 7, 5, 9, 5, 7, 4, 10, 4, 10, 5, 8, 2, 7, 6, 8, 6, 10, 2, 9, 3, 8, 3, 8, 1, 9, 6, 8, 1, 9, 5, 8, 3, 8, 1, 10, 6, 7, 3, 6, 3, 7, 7, 7, 1, 2, 1, 10, 7, 10, 5, 8, 1, 8, 3, 8, 4, 9, 4, 6, 5, 10, 5, 8, 8, 9, 7, 10, 1, 7, 3, 4, 2, 6, 2, 4, 3, 7, 4, 5, 3, 9, 1, 8, 3, 10, 6, 10, 3, 6, 1, 5, 1, 2, 2, 6, 2, 8, 2, 7, 5, 5, 2, 9, 2, 4, 2, 5, 5, 9, 4, 9, 1, 9, 3, 8, 3, 10, 7, 7, 4, 10, 4, 8, 7, 8, 6, 7, 6, 7, 6, 8, 1, 3, 2, 6, 1, 6, 5, 6, 6, 9, 6, 8, 1, 9, 3, 7, 3, 5, 4, 10, 8, 8, 6, 10, 6, 9, 2, 6, 1, 8, 4, 6, 4, 9, 1, 7, 4, 10, 4, 7, 6, 6, 6, 10, 6, 8, 3, 8, 2, 5, 2, 4, 4, 9, 7, 10, 1, 9, 2, 8, 2, 8, 5, 7, 3, 8, 3, 6, 3, 10, 5, 10, 4, 9, 3, 9, 2, 7, 2, 4, 1, 6, 4, 9, 6, 6, 5, 9, 1, 7, 1, 5, 2, 9, 1, 10, 1, 5, 2, 9, 1, 5, 1, 7, 3, 8, 3, 9, 1, 4, 1, 4, 3, 3, 2, 2, 1, 10, 4, 4, 2, 5, 1, 2, 1, 7, 1, 3, 2, 9, 1, 9, 1, 9, 2, 10, 6, 9, 5, 7, 3, 10, 1, 6, 2, 9, 5, 10, 6, 7, 4, 10, 1, 10, 7, 9, 4, 4, 2, 3, 3, 9, 3, 4, 1, 10, 2, 10, 6, 8, 3, 5, 2, 10, 5, 9, 5, 10, 1, 4, 1, 10, 3, 8, 8, 10, 1, 9, 1, 7, 2, 9, 3, 9, 5, 7, 4, 8, 6, 9, 3, 8, 3, 7, 2, 4, 1, 3, 1, 6, 1, 6, 3, 3, 1, 7, 3, 7, 6, 8, 5, 10, 2, 9, 7, 10, 7, 8, 1, 6, 6, 6, 4, 5, 2, 6, 4, 6, 5, 8, 7, 7, 2, 8, 3, 7, 3, 7, 3, 9, 8, 9, 2, 10, 5, 9, 1, 9, 4, 7, 2, 7, 5, 9, 7, 8, 6, 8, 3, 6, 5, 10, 6, 9, 9, 9, 4, 10, 3, 6, 2, 3, 3, 9, 6, 6, 1, 8, 2, 3, 3, 8, 2, 9, 4, 10, 7, 10, 8, 10, 7, 10, 1, 7, 1, 5, 2, 9, 8, 10, 2, 8, 3, 5, 1, 4, 2, 7, 4, 6, 4, 7, 1, 2, 1, 9, 1, 9, 2, 8, 3, 10, 5, 8, 3, 8, 2, 6, 4, 6, 3, 6, 3, 10, 1, 8, 3, 7, 5, 9, 4, 9, 1, 6, 2, 9, 4, 6, 5, 8, 2, 7, 3, 10, 1, 2, 1, 6, 5, 7, 1, 6, 4, 9, 1, 10, 1, 7, 6, 9, 1, 2, 1, 6, 2, 8, 5, 8, 5, 9, 4, 10, 5, 8, 6, 8, 3, 7, 4, 4, 1, 9, 3, 7, 2, 4, 3, 5, 3, 6, 5, 9, 1, 10, 4, 7, 6, 8, 1, 1, 1, 3, 2, 6, 1, 6, 4, 9, 4, 8, 1, 8, 4, 9, 5, 8, 1, 6, 2, 5, 2, 4, 1, 4, 1, 3, 3, 3, 2, 10, 8, 9, 2, 9, 4, 10, 1, 8, 5, 9, 7, 9, 8, 9, 1, 8, 2, 6, 3, 10, 5, 9, 6, 10, 8, 8, 2, 8, 6, 10, 6, 10, 9, 10, 4, 5, 1, 5, 4, 10, 2, 7, 2, 10, 3, 8, 2, 10, 3, 10, 3, 5, 2, 9, 3, 10, 4, 9, 5, 8, 4, 8, 1, 9, 2, 8, 3, 4, 3, 9, 6, 10, 7, 8, 1, 7, 7, 10, 4, 8, 6, 7, 1, 5, 4, 10, 7, 9, 8, 9, 7, 10, 6, 7, 6, 9, 5, 7, 6, 9, 3, 6, 3, 8, 7, 10, 7, 7, 6, 9, 1, 8, 5, 8, 3, 4, 3, 6, 3, 4, 1, 3, 1, 10, 2, 4, 3, 6, 3, 6, 4, 5, 1, 2, 1, 9, 2, 10, 3, 9, 4, 10, 2, 6, 1, 3, 2, 10, 7, 8, 5, 6, 2, 5, 2, 5, 1, 3, 2, 9, 4, 8, 5, 10, 7, 10, 2, 9, 3, 9, 3, 6, 5, 7, 1, 10, 6, 7, 6, 10, 8, 8, 7, 10, 1, 10, 6, 6, 2, 4, 1, 8, 1, 5, 3, 5, 5, 10, 5, 10, 1, 9, 5, 10, 2, 5, 2, 10, 4, 10, 2, 9, 3, 9, 2, 8, 7, 8, 4, 9, 3, 9, 1, 9, 2, 7, 1, 9, 4, 8, 2, 10, 6, 8, 1, 5, 5, 7, 5, 10, 1, 10, 6, 9, 3, 9, 6, 7, 2, 5, 2, 5, 3, 6, 4, 6, 2, 6, 4, 8, 3, 5, 4, 5, 3, 4, 2, 9, 1, 8, 2, 8, 3, 9, 4, 8, 7, 9, 3, 7, 5, 10, 5, 9, 2, 3, 2, 4, 2, 10, 5, 8, 1, 8, 6, 8, 1, 10, 6, 6, 5, 6, 4, 5, 4, 6, 5, 8, 5, 10, 4, 8, 2, 7, 6, 10, 2, 10, 2, 7, 3, 4, 3, 10, 4, 10, 3, 4, 2, 4, 2, 9, 4, 10, 3, 10, 8, 8, 3, 7, 6, 9, 3, 10, 2, 10, 5, 7, 3, 6, 4, 6, 4, 10, 2, 8, 3, 8, 4, 9, 1, 3, 1, 3, 1, 4, 2, 9, 7, 8, 4, 6, 5, 9, 1, 6, 2, 9, 9, 10, 3, 5, 3, 8, 6, 6, 3, 5, 3, 10, 3, 10, 1, 6, 1, 3, 2, 10, 7, 10, 9, 9, 7, 7, 1, 10, 8, 9, 3, 9, 1, 9, 2, 10, 5, 5, 1, 6, 3, 7, 4, 10, 2, 7, 6, 9, 6, 7, 5, 9, 6, 9, 4, 7, 3, 9, 3, 6, 3, 6, 4, 6, 1, 8, 2, 8, 3, 8, 4, 7, 2, 3, 2, 9, 4, 8, 1, 4, 2, 7, 3, 10, 3, 10, 3, 6, 4, 7, 3, 6, 4, 9, 5, 7, 1, 7, 6, 10, 1, 7, 5, 8, 5, 7, 6, 10, 7, 10, 7, 8, 5, 7, 5, 8, 2, 6, 1, 5, 4, 4, 3, 10, 6, 10, 3, 6, 3, 9, 6, 9, 4, 8, 5, 9, 5, 7, 3, 7, 6, 10, 2, 9, 3, 9, 5, 10, 3, 6, 5, 6, 1, 9, 3, 7, 2, 7, 3, 8, 1, 9, 6, 9, 8, 10, 7, 9, 3, 8, 5, 6, 4, 10, 1, 10, 5, 8, 3, 10, 5, 10, 5, 8, 1, 6, 4, 9, 3, 10, 4, 10, 6, 10, 2, 10, 4, 9, 2, 10, 1, 10, 2, 3, 3, 8, 2, 4, 1, 8, 2, 8, 2, 5, 3, 7, 3, 9, 8, 8, 6, 6, 2, 7, 3, 8, 7, 9, 8, 8, 4, 10, 1, 8, 4, 6, 2, 7, 1, 9, 4, 6, 4, 7, 5, 7, 3, 9, 4, 10, 1, 7, 3, 6, 5, 10, 5, 8, 1, 7, 1, 6, 5, 8, 6, 9, 8, 10, 2, 4, 3, 10, 6, 8, 3, 9, 5, 6, 1, 3, 1, 9, 6, 10, 9, 10, 3, 10, 6, 10, 9, 9, 3, 3, 1, 10, 3, 6, 4, 5, 1, 8, 4, 9, 1, 6, 3, 7, 3, 9, 1, 7, 5, 6, 1, 4, 2, 10, 3, 10, 8, 10, 5, 8, 6, 7, 1, 5, 2, 4, 3, 8, 3, 10, 3, 9, 7, 10, 3, 8, 4, 7, 1, 6, 1, 2, 1, 5, 2, 7, 3, 8, 2, 10, 6, 9, 1, 7, 2, 8, 6, 8, 6, 9, 7, 10, 3, 9, 9, 9, 2, 5, 3, 10, 2, 8, 5, 9, 4, 9, 4, 8, 1, 5, 3, 4, 3, 8, 6, 8, 4, 8, 1, 4, 1, 7, 4, 7, 4, 6, 1, 4, 4, 8, 3, 6, 5, 5, 3, 8, 3, 10, 7, 10, 1, 9, 5, 6, 1, 3, 1, 7, 1, 5, 1, 10, 6, 9, 2, 9, 6, 8, 2, 3, 1, 3, 2, 7, 2, 10, 1, 8, 5, 7, 4, 7, 2, 5, 4, 6, 5, 5, 2, 5, 3, 10, 7, 8, 5, 7, 1, 3, 1, 7, 1, 7, 3, 9, 6, 7, 5, 9, 2, 10, 9, 10, 3, 9, 2, 9, 8, 10, 4, 10, 8, 9, 7, 9, 5, 10, 4, 5, 2, 9, 5, 9, 3, 8, 1, 7, 1, 5, 3, 7, 5, 9, 3, 10, 2, 7, 1, 2, 2, 4, 3, 10, 1, 9, 3, 7, 5, 9, 3, 8, 1, 7, 5, 10, 5, 10, 9, 10, 3, 9, 2, 8, 8, 10, 8, 9, 8, 10, 7, 10, 7, 8, 2, 7, 3, 9, 4, 8, 5, 7, 5, 7, 3, 8, 1, 4, 3, 6, 1, 8, 1, 5, 3, 9, 8, 10, 1, 7, 2, 8, 4, 8, 3, 7, 6, 10, 5, 9, 7, 10, 2, 5, 2, 6, 4, 10, 1, 10, 2, 4, 1, 7, 4, 9, 6, 6, 2, 9, 6, 8, 2, 7, 7, 8, 2, 6, 2, 6, 4, 5, 4, 5, 4, 9, 2, 9, 4, 8, 3, 6, 4, 5, 1, 5, 1, 10, 4, 8, 1, 7, 4, 6, 3, 6, 5, 6, 5, 9, 1, 9, 3, 5, 4, 10, 5, 10, 8, 10, 5, 8, 7, 10, 2, 5, 1, 7, 1, 5, 1, 8, 4, 4, 2, 6, 5, 10, 4, 6, 4, 10, 4, 6, 6, 7, 3, 5, 3, 7, 2, 3, 2, 8, 3, 5, 4, 9, 2, 10, 6, 9, 7, 8, 7, 10, 1, 5, 4, 6, 1, 7, 3, 8, 2, 10, 6, 9, 3, 8, 1, 5, 4, 5, 2, 10, 2, 8, 4, 9, 2, 8, 4, 8, 7, 10, 6, 8, 7, 9, 4, 7, 2, 5, 3, 10, 3, 7, 3, 10, 3, 9, 7, 10, 1, 4, 3, 8, 3, 6, 3, 7, 5, 5, 2, 7, 4, 9, 4, 9, 4, 4, 2, 10, 1, 6, 1, 7, 5, 9, 4, 8, 6, 9, 6, 7, 1, 8, 5, 10, 3, 8, 6, 10, 2, 8, 2, 4, 2, 7, 2, 9, 5, 8, 2, 7, 3, 9, 4, 6, 3, 10, 8, 9, 1, 10, 6, 7, 1, 5, 1, 6, 2, 7, 1, 3, 1, 10, 3, 9, 3, 8, 1, 9, 6, 8, 1, 7, 3, 6, 4, 8, 7, 10, 1, 10, 1, 6, 3, 7, 3, 6, 2, 10, 6, 10, 7, 9, 2, 7, 5, 7, 4, 8, 6, 10, 1, 10, 3, 10, 2, 5, 1, 10, 5, 8, 3, 10, 4, 6, 3, 3, 1, 7, 4, 8, 8, 10, 1, 8, 2, 7, 1, 5, 4, 9, 2, 4, 2, 7, 3, 8, 5, 8, 3, 6, 5, 5, 4, 9, 5, 7, 6, 9, 4, 7, 6, 9, 2, 5, 1, 6, 2, 5, 2, 8, 3, 9, 2, 8, 2, 9, 2, 10, 3, 9, 3, 9, 8, 10, 4, 8, 7, 8, 1, 6, 2, 5, 2, 10, 5, 6, 4, 9, 2, 5, 3, 9, 5, 6, 5, 8, 4, 6, 2, 5, 2, 7, 5, 8, 3, 6, 2, 8, 2, 5, 3, 8, 5, 7, 5, 6, 3, 5, 4, 7, 6, 6, 2, 9, 3, 10, 1, 8, 7, 10, 7, 7, 1, 10, 1, 6, 4, 9, 1, 6, 3, 7, 3, 9, 5, 6, 5, 5, 2, 9, 3, 3, 3, 6, 2, 5, 3, 6, 5, 9, 6, 8, 8, 8, 5, 8, 3, 8, 4, 7, 5, 9, 2, 5, 3, 8, 7, 10, 4, 8, 1, 8, 5, 7, 1, 8, 6, 10, 6, 7, 6, 9, 8, 9, 3, 8, 6, 8, 1, 8, 4, 10, 4, 8, 6, 6, 4, 7, 2, 8, 4, 7, 1, 9, 3, 8, 1, 5, 2, 8, 7, 10, 5, 9, 3, 9, 7, 10, 4, 7, 2, 9, 5, 9, 6, 9, 5, 7, 3, 5, 1, 4, 1, 9, 3, 7, 2, 4, 3, 9, 2, 10, 1, 10, 2, 9, 3, 8, 6, 9, 3, 9, 5, 10, 3, 8, 3, 10, 5, 6, 2, 5, 2, 8, 2, 3, 1, 10, 1, 5, 4, 8, 3, 8, 1, 9, 2, 6, 3, 6, 1, 8, 7, 8, 7, 10, 4, 7, 6, 9, 6, 8, 8, 9, 5, 7, 5, 10, 1, 5, 1, 7, 4, 5, 4, 6, 3, 8, 5, 5, 5, 7, 6, 10, 2, 10, 3, 10, 6, 7, 1, 5, 5, 10, 3, 9, 2, 6, 4, 9, 2, 10, 2, 6, 2, 7, 3, 10, 4, 9, 1, 5, 1, 6, 2, 9, 6, 8, 4, 8, 6, 9, 3, 10, 4, 6, 1, 10, 7, 7, 5, 7, 4, 6, 6, 9, 8, 9, 7, 10, 6, 8, 2, 4, 1, 5, 4, 9, 5, 7, 5, 9, 4, 7, 5, 9, 1, 8, 2, 7, 4, 9, 5, 7, 3, 8, 3, 6, 3, 4, 3, 10, 1, 9, 6, 7, 1, 4, 3, 8, 5, 10, 4, 6, 2, 6, 2, 7, 2, 7, 3, 4, 2, 8, 3, 10, 7, 8, 1, 8, 5, 6, 2, 4, 4, 10, 1, 6, 4, 9, 5, 9, 2, 6, 3, 7, 2, 5, 5, 9, 5, 8, 5, 10, 6, 7, 3, 9, 1, 6, 1, 9, 3, 6, 4, 10, 6, 8, 1, 6, 2, 6, 2, 10, 4, 6, 1, 9, 2, 8, 4, 10, 8, 9, 3, 8, 1, 9, 4, 5, 4, 9, 3, 10, 2, 10, 2, 2, 1, 8, 2, 4, 2, 6, 3, 10, 1, 9, 2, 5, 4, 7, 4, 10, 6, 6, 4, 9, 7, 10, 3, 9, 2, 10, 2, 3, 1, 5, 3, 7, 1, 9, 1, 6, 5, 9, 2, 7, 3, 5, 1, 9, 2, 4, 2, 6, 4, 4, 1, 7, 1, 9, 2, 5, 2, 8, 2, 8, 6, 7, 3, 7, 2, 8, 1, 9, 3, 7, 2, 5, 1, 10, 2, 4, 2, 10, 4, 10, 8, 9, 4, 9, 9, 9, 3, 8, 1, 7, 1, 6, 4, 10, 7, 8, 1, 6, 3, 4, 1, 4, 3, 10, 4, 8, 2, 5, 4, 10, 9, 9, 6, 8, 6, 8, 5, 10, 5, 6, 1, 5, 5, 7, 5, 7, 3, 9, 7, 10, 2, 9, 7, 9, 4, 8, 4, 5, 1, 7, 1, 6, 1, 4, 4, 9, 3, 9, 4, 6, 3, 5, 1, 3, 1, 8, 2, 2, 2, 7, 5, 5, 5, 7, 5, 10, 7, 10, 8, 10, 2, 7, 1, 8, 4, 5, 1, 4, 2, 9, 7, 7, 5, 8, 7, 10, 3, 8, 6, 9, 1, 5, 5, 10, 2, 7, 4, 9, 2, 8, 6, 6, 6, 9, 2, 8, 3, 4, 2, 4, 4, 4, 1, 10, 5, 7, 3, 9, 3, 3, 1, 7, 2, 6, 2, 9, 1, 8, 1, 8, 1, 3, 1, 8, 6, 10, 7, 8, 1, 5, 3, 9, 4, 10, 8, 8, 4, 8, 2, 6, 4, 7, 1, 9, 5, 9, 8, 8, 3, 10, 5, 9, 4, 7, 6, 9, 8, 9, 1, 6, 4, 8, 4, 6, 2, 7, 5, 10, 9, 10, 9, 9, 2, 10, 8, 10, 1, 9, 4, 6, 5, 9, 5, 9, 4, 5, 1, 4, 3, 5, 4, 9, 6, 9, 1, 4, 3, 10, 9, 9, 1, 4, 1, 3, 1, 10, 5, 7, 2, 10, 5, 7, 5, 8, 5, 6, 5, 7, 3, 3, 1, 7, 4, 10, 8, 9, 2, 9, 4, 6, 1, 9, 1, 7, 5, 7, 7, 9, 6, 7, 1, 7, 2, 8, 4, 7, 2, 6, 4, 6, 2, 9, 5, 5, 1, 7, 2, 7, 1, 10, 1, 8, 2, 7, 4, 6, 5, 8, 1, 7, 6, 10, 5, 10, 4, 7, 2, 8, 2, 10, 3, 5, 3, 6, 2, 10, 5, 9, 4, 10, 2, 6, 2, 6, 6, 6, 5, 6, 3, 4, 4, 10, 4, 4, 2, 8, 4, 8, 4, 9, 7, 7, 4, 5, 3, 9, 6, 10, 6, 9, 4, 9, 1, 7, 2, 8, 6, 8, 3, 10, 5, 8, 6, 7, 2, 9, 5, 10, 3, 9, 4, 6, 2, 4, 3, 10, 8, 10, 1, 10, 3, 3, 3, 8, 5, 8, 2, 6, 1, 2, 2, 7, 1, 5, 1, 7, 2, 4, 2, 5, 1, 7, 3, 10, 1, 9, 2, 7, 5, 6, 5, 9, 8, 8, 3, 5, 2, 9, 3, 4, 2, 7, 1, 10, 3, 8, 2, 7, 4, 7, 4, 8, 4, 7, 1, 7, 2, 2, 2, 10, 6, 7, 7, 9, 1, 10, 9, 10, 3, 7, 2, 8, 5, 7, 5, 6, 6, 7, 3, 3, 3, 4, 1, 10, 2, 3, 2, 2, 2, 6, 4, 6, 1, 9, 2, 6, 4, 7, 4, 7, 2, 10, 3, 8, 1, 10, 4, 5, 5, 10, 3, 8, 1, 6, 4, 7, 1, 6, 2, 6, 5, 9, 3, 7, 3, 7, 3, 9, 4, 6, 2, 8, 2, 4, 2, 6, 1, 9, 2, 7, 6, 7, 7, 10, 2, 10, 4, 10, 6, 7, 1, 4, 3, 3, 3, 8, 1, 3, 2, 8, 7, 8, 2, 6, 5, 10, 4, 6, 3, 3, 1, 8, 5, 7, 3, 10, 4, 10, 8, 10, 1, 9, 3, 9, 4, 8, 4, 8, 2, 8, 4, 9, 2, 4, 2, 3, 1, 9, 6, 8, 5, 6, 5, 8, 4, 8, 2, 8, 4, 9, 2, 4, 2, 10, 3, 5, 3, 5, 1, 4, 2, 2, 1, 7, 3, 7, 2, 5, 5, 9, 1, 6, 4, 5, 3, 10, 2, 9, 4, 9, 9, 10, 4, 6, 3, 4, 2, 3, 1, 9, 2, 9, 2, 8, 4, 6, 4, 6, 2, 6, 2, 10, 4, 7, 4, 9, 3, 6, 2, 6, 5, 8, 3, 3, 1, 5, 3, 6, 2, 10, 5, 10, 5, 9, 1, 4, 3, 8, 5, 7, 1, 8, 5, 5, 3, 8, 4, 9, 1, 8, 2, 10, 6, 7, 2, 7, 1, 7, 4, 5, 2, 10, 2, 5, 5, 7, 2, 8, 3, 9, 2, 10, 1, 9, 4, 6, 2, 9, 3, 6, 1, 3, 2, 6, 4, 9, 4, 5, 2, 9, 5, 8, 1, 8, 4, 9, 4, 5, 5, 10, 3, 7, 6, 6, 3, 5, 2, 9, 3, 8, 4, 10, 2, 6, 4, 7, 5, 7, 1, 9, 2, 5, 1, 10, 6, 9, 3, 7, 4, 9, 1, 6, 2, 9, 3, 9, 5, 8, 1, 7, 3, 9, 6, 8, 7, 8, 7, 9, 1, 6, 3, 5, 4, 8, 5, 6, 3, 8, 2, 7, 6, 10, 2, 9, 7, 8, 4, 10, 2, 8, 2, 9, 3, 6, 5, 10, 1, 10, 5, 5, 1, 8, 3, 10, 4, 8, 3, 9, 4, 10, 1, 10, 4, 9, 4, 6, 2, 7, 1, 5, 3, 9, 6, 9, 5, 8, 2, 10, 6, 10, 6, 8, 3, 8, 5, 9, 3, 7, 3, 9, 1, 5, 2, 9, 3, 7, 4, 10, 2, 5, 4, 10, 7, 7, 2, 9, 2, 9, 1, 10, 8, 9, 1, 10, 1, 6, 4, 7, 4, 10, 5, 6, 4, 10, 4, 9, 3, 9, 3, 6, 1, 5, 1, 9, 7, 8, 4, 8, 3, 8, 3, 4, 1, 8, 5, 7, 5, 9, 1, 8, 2, 5, 3, 7, 7, 7, 2, 4, 1, 3, 2, 9, 5, 5, 3, 7, 4, 7, 4, 7, 1, 8, 2, 6, 1, 10, 1, 8, 1, 4, 1, 3, 1, 2, 1, 10, 3, 8, 1, 6, 2, 5, 1, 5, 4, 6, 5, 5, 3, 9, 4, 8, 2, 6, 5, 8, 4, 5, 1, 5, 3, 5, 1, 5, 4, 7, 1, 5, 3, 9, 3, 4, 2, 8, 5, 5, 4, 8, 4, 8, 2, 4, 3, 10, 3, 8, 1, 8, 1, 9, 8, 8, 7, 9, 1, 4, 1, 8, 1, 5, 3, 8, 1, 5, 3, 4, 3, 8, 2, 3, 3, 8, 4, 7, 1, 4, 1, 8, 1, 4, 4, 7, 2, 6, 5, 7, 7, 10, 9, 10, 2, 3, 1, 10, 3, 5, 4, 10, 9, 10, 2, 7, 7, 7, 1, 3, 1, 4, 1, 8, 4, 6, 3, 5, 5, 10, 2, 8, 3, 7, 1, 10, 10, 10, 6, 8, 1, 8, 3, 4, 2, 6, 2, 9, 7, 9, 7, 9, 2, 8, 1, 4, 3, 3, 1, 5, 2, 7, 1, 9, 2, 7, 6, 9, 2, 4, 3, 5, 3, 10, 2, 4, 2, 6, 4, 9, 2, 7, 5, 8, 5, 7, 2, 7, 6, 7, 1, 6, 4, 7, 3, 4, 1, 10, 3, 10, 4, 6, 2, 4, 1, 7, 6, 9, 2, 8, 1, 7, 5, 9, 2, 7, 2, 6, 5, 8, 1, 8, 6, 8, 2, 4, 3, 10, 4, 9, 6, 7, 2, 7, 5, 7, 3, 6, 5, 9, 8, 10, 6, 7, 5, 10, 2, 8, 4, 9, 4, 8, 6, 10, 1, 9, 8, 9, 4, 8, 1, 10, 3, 9, 1, 6, 3, 5, 1, 6, 3, 4, 1, 8, 4, 5, 1, 4, 4, 9, 2, 6, 2, 7, 5, 6, 3, 10, 1, 9, 3, 9, 4, 7, 4, 5, 1, 10, 1, 7, 2, 9, 6, 10, 5, 7, 3, 5, 2, 5, 4, 10, 7, 9, 2, 9, 1, 5, 1, 2, 1, 7, 2, 7, 2, 10, 4, 9, 1, 3, 1, 9, 6, 8, 2, 8, 7, 9, 8, 8, 5, 5, 2, 4, 2, 5, 5, 6, 3, 3, 3, 5, 2, 8, 3, 6, 4, 7, 4, 9, 6, 7, 6, 8, 2, 5, 3, 9, 4, 10, 3, 10, 5, 10, 1, 8, 2, 3, 2, 10, 5, 10, 6, 8, 3, 4, 1, 4, 1, 10, 7, 8, 1, 8, 7, 10, 5, 6, 4, 9, 3, 9, 6, 8, 1, 9, 8, 10, 4, 10, 5, 8, 6, 10, 5, 10, 1, 9, 5, 9, 6, 10, 4, 10, 4, 5, 5, 9, 6, 7, 3, 6, 3, 7, 3, 7, 3, 8, 3, 6, 4, 6, 2, 8, 1, 5, 4, 10, 7, 8, 4, 8, 2, 5, 1, 10, 3, 7, 1, 6, 2, 10, 5, 8, 6, 9, 4, 9, 5, 10, 5, 10, 4, 10, 5, 8, 1, 6, 5, 10, 6, 9, 3, 9, 3, 8, 6, 6, 1, 1, 1, 10, 5, 9, 8, 8, 3, 9, 1, 10, 3, 4, 4, 8, 2, 8, 7, 9, 2, 6, 2, 6, 2, 8, 2, 7, 1, 6, 5, 9, 5, 7, 2, 6, 5, 9, 8, 9, 8, 8, 5, 6, 3, 8, 4, 4, 4, 6, 1, 9, 3, 6, 1, 5, 2, 6, 2, 5, 2, 9, 3, 10, 4, 9, 3, 8, 4, 4, 1, 5, 3, 5, 1, 9, 6, 8, 1, 4, 3, 4, 2, 5, 3, 10, 4, 7, 3, 4, 1, 8, 2, 7, 2, 9, 2, 7, 5, 10, 4, 7, 3, 9, 3, 7, 4, 6, 4, 8, 5, 10, 5, 9, 5, 10, 1, 5, 3, 10, 2, 4, 1, 7, 7, 7, 2, 9, 3, 3, 3, 6, 3, 8, 1, 6, 1, 10, 3, 4, 3, 10, 6, 6, 1, 9, 5, 7, 2, 9, 1, 9, 5, 10, 6, 8, 2, 7, 1, 7, 5, 6, 3, 10, 5, 9, 7, 8, 6, 7, 6, 10, 9, 9, 6, 8, 2, 7, 2, 3, 1, 9, 1, 9, 3, 8, 1, 6, 1, 3, 2, 4, 3, 6, 2, 10, 5, 7, 2, 5, 4, 9, 2, 7, 5, 8, 6, 10, 9, 10, 1, 5, 1, 8, 3, 10, 3, 9, 3, 10, 5, 7, 5, 5, 1, 3, 2, 7, 4, 10, 10, 10, 6, 7, 2, 8, 3, 9, 2, 7, 2, 7, 2, 8, 5, 9, 7, 10, 4, 5, 1, 8, 2, 9, 3, 9, 8, 9, 1, 7, 1, 8, 1, 7, 4, 10, 7, 8, 3, 10, 4, 8, 4, 8, 1, 6, 2, 6, 3, 10, 4, 8, 2, 5, 2, 9, 2, 6, 5, 6, 6, 9, 6, 8, 3, 6, 3, 10, 1, 10, 6, 9, 1, 9, 2, 3, 1, 10, 5, 9, 5, 6, 4, 6, 6, 10, 4, 7, 3, 6, 4, 6, 1, 9, 5, 8, 1, 8, 2, 5, 1, 8, 4, 8, 5, 7, 3, 4, 2, 10, 1, 6, 6, 10, 2, 6, 1, 8, 6, 7, 3, 6, 5, 9, 4, 5, 1, 10, 4, 7, 6, 9, 4, 8, 2, 9, 3, 8, 6, 10, 2, 9, 1, 4, 4, 10, 1, 6, 2, 8, 4, 6, 5, 6, 6, 10, 6, 8, 5, 10, 1, 9, 6, 7, 1, 9, 2, 8, 2, 6, 1, 8, 5, 10, 1, 8, 1, 10, 6, 8, 6, 10, 1, 9, 5, 9, 5, 8, 5, 8, 5, 10, 3, 8, 4, 8, 1, 5, 1, 10, 3, 8, 6, 8, 4, 7, 2, 10, 1, 9, 8, 9, 1, 6, 5, 7, 4, 7, 1, 8, 5, 6, 4, 7, 5, 9, 3, 9, 5, 8, 6, 6, 3, 6, 2, 10, 2, 10, 4, 7, 3, 7, 3, 10, 7, 7, 7, 7, 2, 6, 1, 4, 2, 9, 8, 8, 4, 9, 6, 8, 5, 6, 1, 3, 1, 5, 4, 9, 2, 10, 6, 9, 6, 8, 3, 8, 4, 8, 1, 10, 4, 7, 6, 10, 5, 9, 4, 9, 3, 7, 7, 9, 1, 7, 1, 7, 2, 8, 5, 9, 2, 7, 2, 6, 1, 9, 1, 4, 3, 7, 1, 9, 1, 10, 9, 9, 4, 7, 3, 9, 3, 9, 2, 7, 3, 8, 5, 7, 3, 7, 7, 9, 6, 7, 2, 10, 2, 10, 3, 3, 2, 9, 5, 10, 1, 9, 3, 8, 4, 4, 1, 8, 8, 8, 6, 8, 6, 7, 7, 7, 3, 5, 4, 5, 5, 7, 3, 6, 4, 4, 1, 10, 4, 7, 1, 6, 3, 7, 4, 8, 2, 8, 2, 8, 6, 8, 4, 7, 2, 5, 2, 8, 6, 7, 4, 6, 2, 8, 6, 6, 2, 9, 2, 9, 4, 10, 7, 9, 9, 9, 2, 8, 1, 2, 1, 9, 4, 6, 2, 10, 3, 4, 1, 5, 3, 9, 4, 10, 6, 10, 1, 10, 2, 6, 1, 6, 1, 6, 4, 7, 3, 9, 1, 9, 3, 10, 3, 6, 3, 7, 4, 9, 7, 9, 3, 8, 2, 8, 2, 10, 3, 7, 3, 5, 3, 8, 4, 7, 2, 7, 3, 7, 2, 10, 7, 7, 7, 8, 5, 10, 5, 6, 5, 6, 4, 8, 3, 10, 5, 10, 3, 10, 7, 10, 1, 5, 1, 5, 1, 10, 3, 7, 6, 8, 2, 8, 7, 8, 4, 10, 2, 10, 6, 8, 1, 5, 1, 8, 4, 10, 1, 10, 2, 8, 5, 10, 7, 7, 6, 7, 4, 8, 5, 8, 5, 6, 1, 9, 2, 4, 2, 7, 3, 4, 1, 3, 3, 6, 3, 6, 1, 9, 2, 7, 3, 8, 2, 5, 1, 8, 5, 9, 5, 7, 2, 9, 5, 7, 3, 8, 1, 8, 3, 7, 2, 10, 4, 7, 7, 7, 1, 10, 3, 7, 2, 10, 7, 10, 7, 7, 4, 9, 7, 10, 4, 8, 1, 10, 2, 6, 4, 10, 6, 10, 1, 7, 1, 8, 2, 9, 6, 10, 3, 5, 4, 10, 6, 9, 1, 7, 4, 6, 5, 9, 1, 5, 5, 8, 4, 7, 5, 7, 7, 10, 3, 9, 1, 2, 2, 2, 1, 10, 7, 10, 7, 10, 1, 9, 6, 10, 2, 8, 3, 9, 4, 7, 6, 9, 7, 8, 6, 7, 3, 4, 2, 8, 2, 9, 1, 9, 7, 9, 3, 5, 4, 7, 4, 7, 6, 10, 4, 6, 2, 5, 5, 6, 5, 6, 6, 6, 6, 7, 3, 4, 3, 8, 4, 5, 1, 8, 1, 8, 5, 9, 7, 10, 7, 8, 1, 3, 2, 7, 5, 7, 6, 7, 7, 10, 7, 9, 2, 9, 2, 9, 3, 4, 4, 10, 7, 10, 2, 8, 4, 8, 3, 9, 3, 7, 5, 7, 1, 9, 4, 8, 1, 10, 3, 7, 5, 7, 6, 10, 1, 3, 3, 6, 3, 6, 2, 5, 4, 4, 3, 7, 3, 4, 2, 5, 3, 9, 5, 10, 5, 7, 4, 8, 3, 7, 5, 7, 1, 6, 3, 8, 7, 8, 4, 9, 1, 8, 8, 8, 4, 9, 5, 10, 6, 6, 1, 10, 2, 9, 1, 5, 3, 5, 3, 7, 1, 3, 2, 6, 4, 8, 6, 8, 4, 9, 2, 10, 7, 8, 2, 8, 5, 9, 6, 8, 1, 10, 4, 9, 3, 6, 4, 10, 3, 7, 1, 5, 2, 3, 2, 8, 4, 10, 9, 9, 1, 7, 1, 6, 4, 10, 1, 9, 3, 8, 2, 8, 5, 6, 4, 8, 2, 8, 4, 5, 3, 9, 1, 5, 3, 6, 5, 7, 5, 10, 6, 9, 7, 9, 6, 10, 1, 9, 3, 3, 1, 10, 8, 9, 1, 7, 1, 4, 2, 10, 3, 5, 5, 9, 7, 7, 1, 5, 4, 7, 5, 10, 1, 7, 3, 4, 4, 6, 4, 9, 4, 6, 5, 10, 9, 10, 3, 6, 2, 8, 4, 7, 1, 10, 5, 7, 4, 6, 5, 6, 3, 9, 4, 8, 1, 8, 5, 8, 4, 8, 7, 9, 1, 6, 3, 8, 1, 4, 2, 6, 2, 6, 4, 9, 5, 6, 3, 9, 6, 8, 7, 7, 5, 10, 1, 7, 1, 10, 7, 7, 4, 7, 1, 3, 1, 10, 5, 10, 6, 9, 5, 10, 7, 8, 1, 9, 4, 10, 2, 3, 2, 5, 4, 5, 3, 9, 1, 2, 1, 4, 3, 10, 6, 8, 6, 7, 7, 8, 5, 7, 6, 8, 3, 9, 3, 9, 5, 6, 6, 8, 1, 8, 3, 9, 2, 9, 5, 8, 2, 5, 4, 10, 5, 6, 3, 6, 4, 10, 6, 9, 5, 6, 2, 6, 4, 6, 4, 6, 3, 6, 5, 7, 6, 10, 1, 10, 1, 8, 1, 8, 4, 9, 5, 7, 3, 3, 3, 10, 4, 4, 2, 9, 2, 5, 1, 5, 3, 8, 4, 10, 3, 10, 1, 8, 5, 9, 3, 9, 6, 6, 6, 7, 1, 4, 3, 8, 7, 10, 9, 10, 2, 7, 7, 10, 3, 9, 3, 8, 3, 7, 4, 7, 6, 8, 7, 10, 10, 10, 5, 7, 6, 10, 8, 10, 4, 10, 1, 6, 2, 8, 6, 10, 3, 9, 1, 3, 2, 6, 2, 8, 5, 8, 4, 4, 3, 10, 6, 9, 1, 9, 4, 9, 5, 10, 7, 10, 5, 8, 1, 2, 2, 5, 1, 4, 2, 8, 4, 9, 1, 8, 6, 8, 1, 4, 2, 7, 6, 8, 5, 6, 3, 10, 3, 10, 1, 4, 2, 8, 3, 9, 4, 6, 5, 6, 5, 10, 1, 6, 1, 2, 1, 2, 2, 8, 3, 7, 3, 8, 2, 7, 1, 8, 2, 8, 2, 3, 3, 4, 2, 3, 2, 9, 5, 10, 4, 8, 5, 7, 1, 6, 2, 6, 3, 5, 2, 6, 5, 9, 1, 6, 1, 4, 1, 3, 1, 9, 4, 5, 4, 4, 1, 9, 2, 8, 3, 3, 1, 9, 3, 4, 2, 8, 1, 8, 5, 8, 6, 9, 3, 6, 4, 8, 4, 7, 6, 6, 1, 9, 4, 8, 2, 5, 4, 9, 2, 10, 4, 9, 3, 5, 3, 4, 2, 7, 1, 6, 5, 9, 3, 9, 7, 8, 1, 2, 1, 7, 1, 10, 2, 10, 3, 8, 1, 8, 3, 3, 1, 9, 2, 7, 1, 7, 4, 6, 2, 9, 6, 9, 1, 9, 2, 5, 1, 5, 1, 3, 2, 5, 3, 7, 3, 8, 3, 6, 4, 6, 3, 10, 4, 9, 4, 9, 3, 7, 3, 8, 5, 10, 5, 8, 4, 10, 5, 9, 1, 4, 2, 8, 3, 4, 1, 2, 1, 4, 1, 7, 4, 9, 1, 10, 4, 8, 5, 7, 3, 10, 4, 8, 5, 10, 5, 6, 1, 7, 4, 8, 4, 9, 2, 4, 1, 4, 3, 6, 3, 10, 2, 8, 5, 8, 4, 5, 2, 10, 8, 10, 3, 6, 1, 2, 1, 6, 1, 5, 1, 10, 4, 9, 5, 8, 6, 8, 2, 6, 2, 9, 2, 8, 3, 3, 1, 6, 2, 5, 1, 5, 5, 8, 3, 5, 2, 10, 5, 7, 4, 8, 1, 8, 4, 9, 6, 9, 1, 10, 4, 8, 6, 6, 3, 8, 1, 7, 2, 8, 3, 10, 1, 6, 3, 8, 1, 7, 1, 8, 1, 7, 1, 3, 2, 6, 2, 10, 3, 8, 1, 6, 1, 6, 2, 4, 3, 4, 2, 9, 9, 10, 2, 5, 4, 6, 1, 9, 2, 4, 1, 9, 3, 8, 2, 9, 2, 9, 5, 7, 3, 5, 3, 4, 3, 5, 1, 10, 5, 9, 3, 7, 5, 6, 4, 7, 4, 9, 5, 6, 1, 5, 4, 9, 6, 10, 2, 7, 7, 10, 6, 10, 4, 10, 4, 6, 2, 10, 4, 8, 3, 10, 2, 10, 2, 7, 2, 4, 1, 10, 3, 4, 1, 9, 3, 8, 5, 7, 2, 8, 3, 10, 4, 6, 1, 1, 1, 10, 6, 10, 7, 9, 5, 7, 6, 10, 3, 6, 3, 6, 5, 7, 6, 10, 3, 8, 4, 8, 5, 10, 7, 8, 5, 8, 3, 5, 3, 9, 3, 8, 3, 6, 1, 4, 2, 10, 3, 10, 4, 9, 1, 7, 4, 10, 4, 6, 5, 10, 3, 9, 5, 10, 2, 5, 1, 6, 5, 9, 2, 9, 1, 10, 2, 9, 6, 6, 2, 4, 2, 7, 1, 6, 4, 10, 3, 10, 1, 6, 2, 10, 3, 9, 2, 4, 3, 9, 3, 10, 1, 4, 2, 7, 2, 7, 1, 10, 6, 9, 7, 9, 8, 10, 2, 10, 2, 5, 5, 8, 6, 9, 2, 8, 2, 8, 3, 7, 3, 4, 3, 7, 4, 7, 4, 8, 2, 9, 6, 10, 2, 6, 5, 9, 5, 7, 3, 9, 7, 9, 3, 8, 1, 6, 2, 8, 3, 6, 1, 8, 5, 7, 6, 9, 5, 9, 1, 6, 4, 5, 1, 2, 1, 10, 3, 6, 6, 10, 3, 10, 2, 7, 2, 4, 3, 4, 2, 9, 3, 7, 5, 10, 3, 7, 1, 2, 1, 7, 2, 9, 3, 4, 2, 6, 3, 6, 2, 4, 1, 9, 7, 9, 4, 9, 1, 8, 4, 9, 1, 5, 2, 6, 4, 5, 1, 10, 2, 5, 4, 10, 6, 10, 3, 8, 1, 2, 1, 9, 4, 8, 4, 4, 2, 7, 6, 8, 4, 8, 5, 9, 1, 5, 3, 8, 3, 7, 6, 8, 3, 6, 1, 8, 1, 10, 4, 9, 1, 10, 7, 9, 7, 10, 4, 7, 1, 6, 1, 10, 2, 10, 8, 9, 2, 6, 1, 9, 1, 6, 5, 9, 3, 6, 3, 8, 1, 10, 5, 6, 2, 6, 4, 7, 3, 9, 4, 7, 2, 9, 3, 6, 5, 7, 3, 5, 2, 8, 3, 4, 3, 6, 3, 5, 1, 10, 4, 9, 2, 9, 1, 6, 1, 10, 7, 10, 3, 7, 2, 6, 5, 5, 1, 9, 1, 5, 2, 9, 3, 10, 2, 8, 2, 6, 1, 8, 6, 9, 6, 7, 1, 3, 2, 6, 6, 9, 9, 9, 3, 6, 5, 8, 3, 6, 3, 10, 2, 8, 3, 9, 6, 8, 1, 9, 9, 9, 3, 5, 4, 6, 1, 7, 5, 10, 2, 5, 2, 9, 4, 7, 2, 6, 6, 9, 2, 5, 2, 8, 5, 8, 1, 9, 2, 10, 6, 8, 5, 6, 2, 10, 2, 4, 3, 4, 2, 9, 2, 10, 3, 10, 2, 4, 2, 9, 4, 6, 4, 5, 4, 4, 1, 10, 5, 10, 2, 10, 2, 8, 1, 10, 6, 7, 4, 10, 4, 9, 2, 7, 1, 9, 3, 8, 2, 7, 4, 9, 7, 7, 3, 9, 3, 5, 5, 10, 7, 9, 9, 10, 4, 8, 6, 8, 3, 10, 7, 7, 7, 8, 1, 10, 3, 9, 4, 10, 2, 7, 3, 6, 1, 6, 2, 4, 2, 10, 2, 10, 5, 9, 1, 9, 4, 9, 2, 10, 7, 9, 1, 9, 3, 9, 2, 5, 3, 10, 4, 8, 3, 10, 5, 10, 6, 10, 4, 10, 7, 9, 8, 8, 3, 9, 5, 8, 8, 9, 5, 7, 6, 9, 1, 6, 5, 7, 2, 5, 3, 7, 4, 10, 4, 6, 4, 8, 8, 10, 8, 10, 7, 10, 4, 9, 4, 10, 4, 8, 4, 6, 1, 10, 3, 10, 1, 9, 1, 9, 6, 10, 6, 8, 4, 6, 2, 7, 3, 10, 1, 5, 1, 5, 2, 8, 3, 8, 5, 6, 2, 5, 1, 8, 4, 9, 3, 7, 1, 8, 4, 6, 1, 9, 3, 6, 1, 5, 1, 9, 4, 8, 2, 6, 2, 4, 2, 7, 4, 10, 2, 7, 3, 8, 1, 7, 5, 8, 3, 10, 6, 10, 3, 9, 1, 10, 9, 9, 5, 6, 1, 10, 4, 5, 4, 9, 3, 7, 4, 5, 3, 6, 1, 4, 4, 7, 7, 7, 6, 10, 5, 8, 4, 7, 6, 7, 4, 8, 5, 7, 7, 8, 3, 7, 4, 8, 4, 4, 2, 6, 2, 6, 4, 4, 2, 6, 2, 9, 5, 6, 2, 5, 3, 10, 1, 9, 2, 10, 4, 7, 1, 7, 2, 7, 3, 9, 2, 10, 3, 10, 8, 8, 1, 9, 3, 10, 2, 9, 2, 5, 3, 7, 2, 6, 1, 3, 1, 4, 2, 3, 3, 6, 6, 10, 1, 10, 6, 6, 1, 10, 5, 8, 6, 10, 8, 10, 2, 10, 4, 9, 8, 9, 9, 10, 6, 10, 3, 6, 2, 4, 1, 8, 6, 8, 4, 9, 1, 4, 4, 10, 2, 8, 4, 7, 4, 9, 5, 8, 5, 6, 4, 8, 3, 7, 1, 6, 5, 9, 5, 7, 1, 6, 4, 7, 5, 9, 5, 10, 7, 8, 6, 10, 10, 10, 10, 10, 3, 7, 6, 9, 4, 8, 4, 8, 4, 10, 7, 10, 3, 8, 1, 7, 7, 10, 7, 9, 3, 8, 3, 5, 2, 6, 3, 10, 1, 9, 5, 9, 6, 8, 3, 7, 1, 5, 3, 5, 3, 6, 3, 10, 2, 5, 1, 10, 4, 9, 5, 6, 1, 5, 2, 2, 2, 7, 2, 9, 3, 10, 4, 9, 8, 10, 3, 7, 1, 6, 5, 6, 5, 10, 7, 9, 4, 8, 1, 5, 3, 9, 4, 7, 2, 8, 1, 3, 2, 10, 1, 9, 4, 7, 4, 9, 8, 9, 4, 8, 5, 7, 6, 10, 2, 10, 1, 5, 4, 7, 5, 9, 8, 9, 8, 9, 1, 6, 5, 9, 4, 9, 3, 8, 2, 8, 6, 10, 1, 9, 7, 7, 1, 5, 3, 5, 2, 4, 2, 8, 5, 10, 2, 8, 3, 7, 6, 8, 1, 8, 4, 9, 4, 10, 3, 4, 3, 7, 4, 8, 1, 9, 4, 6, 3, 10, 9, 10, 3, 8, 2, 8, 4, 7, 6, 9, 5, 8, 3, 6, 2, 10, 2, 5, 4, 10, 4, 8, 1, 5, 4, 7, 6, 10, 8, 8, 1, 5, 1, 8, 2, 7, 3, 9, 5, 8, 5, 7, 2, 9, 4, 10, 3, 8, 5, 9, 4, 9, 1, 8, 2, 4, 2, 4, 1, 10, 5, 5, 1, 9, 1, 7, 1, 7, 1, 7, 2, 8, 5, 9, 4, 6, 3, 7, 1, 4, 2, 9, 3, 8, 5, 10, 3, 9, 4, 10, 2, 6, 2, 5, 4, 7, 5, 7, 3, 9, 2, 7, 4, 6, 3, 6, 5, 10, 2, 7, 2, 9, 3, 10, 5, 10, 4, 4, 2, 6, 5, 10, 4, 10, 5, 7, 4, 7, 2, 5, 3, 8, 4, 9, 5, 10, 1, 4, 2, 6, 2, 6, 2, 9, 8, 10, 6, 10, 1, 6, 4, 9, 1, 9, 6, 9, 6, 8, 3, 8, 2, 5, 4, 6, 5, 9, 4, 9, 2, 9, 4, 8, 4, 4, 1, 9, 8, 10, 7, 8, 5, 7, 5, 8, 1, 10, 4, 6, 3, 10, 4, 10, 1, 9, 1, 7, 3, 8, 3, 9, 7, 8, 7, 9, 1, 8, 1, 9, 4, 7, 4, 4, 1, 4, 4, 7, 2, 7, 2, 7, 3, 5, 3, 10, 6, 9, 6, 7, 1, 8, 5, 8, 5, 7, 6, 10, 3, 9, 1, 9, 1, 3, 2, 7, 3, 10, 8, 9, 1, 9, 1, 10, 6, 10, 1, 10, 3, 9, 2, 8, 2, 8, 3, 9, 1, 8, 1, 6, 1, 8, 6, 10, 2, 9, 1, 8, 5, 8, 3, 7, 3, 7, 5, 5, 4, 9, 1, 7, 6, 9, 4, 7, 6, 9, 5, 8, 1, 9, 7, 8, 2, 7, 6, 8, 5, 9, 4, 7, 7, 10, 7, 9, 5, 5, 4, 6, 1, 2, 1, 6, 1, 3, 2, 9, 3, 5, 5, 9, 2, 6, 2, 3, 2, 2, 1, 10, 2, 7, 6, 8, 2, 3, 3, 6, 3, 6, 4, 9, 6, 8, 1, 10, 1, 5, 2, 8, 5, 6, 1, 7, 2, 7, 5, 5, 1, 5, 3, 5, 2, 5, 4, 6, 5, 6, 1, 4, 2, 6, 5, 10, 5, 10, 6, 9, 2, 3, 1, 8, 1, 10, 2, 8, 4, 10, 6, 8, 6, 7, 7, 9, 1, 8, 1, 10, 5, 10, 5, 5, 1, 9, 2, 7, 3, 8, 5, 7, 1, 6, 4, 8, 2, 8, 6, 9, 7, 10, 5, 6, 4, 7, 5, 6, 5, 7, 2, 10, 6, 9, 2, 8, 7, 9, 8, 10, 5, 9, 8, 10, 8, 8, 6, 9, 1, 4, 4, 10, 6, 7, 3, 9, 5, 9, 7, 9, 2, 6, 1, 5, 2, 4, 3, 4, 2, 4, 2, 10, 2, 6, 1, 8, 3, 10, 3, 7, 3, 6, 3, 10, 6, 6, 1, 9, 2, 5, 1, 10, 2, 8, 7, 9, 2, 9, 7, 10, 4, 9, 3, 10, 2, 9, 6, 6, 1, 3, 2, 6, 1, 10, 2, 5, 2, 10, 2, 9, 5, 8, 4, 5, 2, 10, 2, 3, 1, 3, 2, 3, 2, 5, 3, 7, 4, 8, 7, 9, 2, 7, 1, 4, 3, 8, 3, 10, 1, 9, 6, 6, 1, 7, 2, 9, 5, 6, 4, 8, 6, 8, 3, 10, 2, 10, 9, 10, 1, 8, 6, 10, 2, 9, 4, 4, 2, 9, 5, 6, 5, 10, 3, 7, 5, 5, 2, 9, 4, 8, 2, 10, 3, 10, 3, 10, 1, 6, 1, 4, 1, 10, 1, 5, 4, 10, 4, 10, 3, 10, 5, 8, 7, 8, 4, 10, 6, 10, 3, 4, 1, 9, 4, 9, 7, 10, 2, 10, 5, 8, 2, 10, 6, 10, 1, 7, 2, 8, 2, 8, 2, 8, 6, 8, 4, 9, 7, 8, 7, 8, 7, 10, 3, 6, 1, 5, 3, 10, 4, 10, 1, 8, 1, 7, 1, 7, 4, 9, 1, 6, 2, 7, 2, 3, 3, 10, 2, 9, 5, 8, 1, 3, 2, 9, 5, 10, 3, 5, 2, 8, 4, 10, 6, 10, 4, 5, 5, 7, 2, 10, 2, 8, 3, 7, 4, 10, 5, 9, 1, 8, 2, 8, 6, 6, 2, 4, 1, 9, 2, 8, 3, 10, 3, 10, 6, 10, 6, 7, 6, 9, 2, 10, 4, 4, 3, 10, 3, 4, 1, 8, 1, 9, 7, 10, 3, 9, 4, 9, 3, 6, 3, 4, 4, 10, 2, 9, 2, 5, 1, 6, 3, 9, 1, 6, 1, 9, 1, 9, 6, 7, 6, 7, 1, 4, 2, 6, 4, 8, 7, 10, 6, 9, 7, 7, 2, 9, 2, 8, 4, 10, 5, 6, 3, 10, 4, 8, 3, 7, 3, 10, 7, 8, 3, 3, 2, 10, 1, 2, 1, 6, 3, 10, 5, 9, 1, 8, 2, 10, 5, 10, 8, 9, 1, 7, 3, 3, 2, 7, 5, 10, 1, 10, 2, 10, 3, 3, 3, 9, 6, 10, 2, 8, 5, 9, 2, 7, 1, 10, 9, 9, 2, 10, 4, 10, 6, 8, 6, 7, 1, 6, 1, 6, 5, 7, 6, 10, 1, 7, 4, 6, 1, 8, 1, 10, 3, 8, 2, 5, 3, 3, 3, 5, 2, 5, 1, 5, 2, 4, 3, 9, 1, 4, 3, 9, 5, 10, 1, 6, 3, 10, 2, 4, 3, 7, 2, 5, 4, 9, 4, 5, 4, 10, 4, 10, 4, 8, 2, 8, 3, 6, 2, 8, 1, 10, 2, 3, 2, 9, 3, 8, 3, 5, 2, 6, 3, 6, 5, 10, 4, 9, 8, 8, 2, 9, 6, 10, 2, 9, 8, 8, 4, 10, 3, 7, 4, 8, 5, 9, 5, 7, 6, 9, 5, 6, 4, 6, 3, 9, 5, 9, 2, 9, 5, 7, 5, 6, 6, 8, 2, 8, 2, 7, 4, 9, 4, 5, 2, 8, 1, 4, 4, 10, 4, 9, 1, 6, 3, 4, 4, 8, 4, 5, 1, 3, 3, 5, 3, 9, 5, 8, 3, 10, 5, 8, 7, 8, 2, 8, 4, 10, 8, 9, 4, 9, 7, 7, 4, 9, 7, 8, 2, 7, 2, 8, 5, 10, 2, 5, 3, 7, 2, 6, 1, 4, 1, 6, 1, 3, 2, 7, 5, 10, 5, 6, 5, 8, 1, 8, 4, 8, 3, 5, 1, 6, 4, 8, 5, 8, 5, 8, 6, 10, 5, 6, 1, 5, 4, 9, 3, 4, 1, 4, 2, 6, 3, 9, 1, 5, 3, 8, 3, 6, 5, 7, 5, 10, 4, 8, 4, 10, 4, 8, 6, 10, 2, 4, 1, 10, 1, 6, 6, 9, 2, 6, 2, 7, 6, 7, 5, 6, 4, 9, 3, 6, 2, 7, 5, 10, 1, 9, 4, 7, 3, 6, 5, 7, 6, 8, 4, 10, 6, 9, 6, 6, 6, 10, 1, 10, 6, 10, 1, 4, 2, 6, 3, 9, 5, 10, 7, 10, 8, 10, 4, 10, 4, 8, 4, 7, 4, 7, 2, 8, 7, 8, 7, 10, 7, 8, 4, 10, 2, 5, 3, 8, 1, 9, 4, 10, 6, 9, 1, 9, 2, 5, 2, 3, 3, 10, 3, 10, 2, 6, 2, 9, 9, 10, 1, 4, 2, 8, 2, 5, 4, 10, 2, 8, 2, 10, 4, 6, 2, 9, 1, 9, 5, 6, 2, 4, 1, 8, 1, 10, 4, 5, 2, 6, 6, 8, 3, 5, 4, 10, 3, 3, 1, 7, 2, 6, 4, 10, 1, 10, 3, 5, 1, 7, 3, 7, 3, 4, 3, 10, 1, 5, 3, 6, 4, 10, 9, 9, 5, 7, 2, 6, 5, 8, 3, 8, 3, 7, 4, 6, 3, 3, 2, 10, 3, 10, 8, 8, 2, 9, 6, 8, 6, 10, 3, 7, 3, 10, 3, 5, 4, 6, 1, 9, 2, 3, 1, 9, 2, 9, 7, 7, 3, 6, 5, 6, 5, 8, 4, 10, 3, 6, 5, 10, 7, 8, 2, 5, 2, 8, 1, 10, 2, 10, 1, 3, 1, 3, 2, 3, 2, 3, 1, 10, 2, 3, 1, 10, 2, 10, 4, 10, 6, 10, 3, 9, 6, 10, 5, 7, 2, 9, 4, 6, 1, 3, 1, 10, 2, 10, 9, 10, 3, 7, 4, 9, 4, 8, 1, 10, 4, 8, 4, 9, 4, 10, 2, 6, 1, 6, 2, 9, 3, 5, 2, 8, 5, 6, 6, 10, 1, 4, 3, 10, 6, 9, 7, 8, 3, 5, 1, 4, 2, 7, 2, 6, 3, 3, 1, 7, 1, 9, 1, 6, 2, 6, 4, 5, 3, 8, 2, 8, 6, 10, 7, 8, 1, 9, 2, 10, 5, 10, 3, 10, 3, 8, 5, 10, 1, 9, 5, 10, 6, 8, 6, 7, 3, 3, 1, 9, 2, 10, 7, 10, 1, 4, 2, 10, 5, 6, 1, 10, 1, 8, 1, 6, 2, 8, 6, 10, 2, 9, 5, 9, 7, 9, 1, 4, 2, 5, 2, 5, 1, 2, 2, 6, 5, 8, 2, 7, 3, 5, 3, 10, 5, 10, 1, 3, 3, 5, 3, 8, 1, 10, 3, 7, 2, 6, 3, 6, 2, 8, 5, 10, 6, 10, 7, 10, 2, 5, 2, 6, 1, 4, 3, 10, 7, 8, 5, 7, 4, 8, 4, 8, 5, 6, 5, 6, 5, 9, 5, 9, 6, 9, 3, 9, 7, 10, 6, 7, 3, 6, 2, 4, 3, 3, 3, 9, 1, 6, 3, 5, 2, 10, 2, 4, 3, 6, 3, 9, 4, 10, 7, 8, 1, 5, 1, 9, 7, 8, 3, 10, 5, 9, 3, 9, 2, 8, 1, 10, 4, 8, 6, 9, 8, 9, 1, 9, 2, 6, 1, 10, 5, 9, 4, 9, 1, 9, 1, 6, 4, 5, 2, 9, 5, 7, 3, 10, 3, 5, 3, 10, 3, 9, 7, 10, 7, 7, 6, 10, 1, 6, 5, 5, 1, 2, 2, 6, 3, 8, 1, 10, 3, 10, 7, 7, 5, 6, 3, 10, 4, 6, 1, 10, 1, 6, 2, 6, 3, 7, 3, 6, 4, 7, 6, 8, 7, 10, 3, 7, 5, 10, 7, 9, 2, 9, 5, 5, 3, 8, 1, 7, 7, 10, 6, 10, 5, 7, 4, 7, 6, 10, 4, 8, 2, 5, 3, 5, 3, 4, 1, 8, 4, 10, 7, 8, 2, 5, 3, 7, 3, 6, 4, 9, 1, 6, 2, 6, 2, 6, 1, 8, 1, 5, 3, 9, 4, 5, 1, 3, 3, 7, 4, 5, 1, 9, 5, 8, 2, 9, 2, 8, 2, 5, 3, 4, 3, 8, 3, 5, 3, 10, 4, 7, 1, 10, 5, 5, 3, 7, 3, 7, 5, 8, 1, 2, 2, 9, 4, 10, 4, 8, 3, 10, 6, 7, 1, 6, 1, 6, 3, 6, 5, 8, 3, 7, 3, 9, 5, 10, 7, 9, 8, 10, 5, 9, 4, 8, 5, 9, 7, 8, 3, 7, 5, 8, 4, 7, 2, 6, 2, 6, 2, 8, 3, 9, 7, 9, 7, 8, 2, 9, 8, 10, 2, 10, 3, 10, 9, 10, 7, 9, 2, 3, 3, 7, 1, 8, 3, 9, 2, 5, 2, 4, 3, 7, 7, 9, 6, 8, 5, 7, 2, 6, 5, 9, 2, 6, 3, 8, 2, 6, 2, 4, 2, 7, 3, 5, 4, 6, 5, 6, 3, 7, 5, 9, 1, 8, 5, 7, 6, 8, 1, 5, 2, 5, 5, 10, 5, 9, 3, 10, 5, 9, 3, 7, 7, 9, 1, 7, 5, 6, 3, 10, 7, 10, 1, 10, 6, 9, 3, 6, 4, 7, 5, 10, 8, 10, 5, 9, 1, 2, 1, 4, 1, 4, 3, 10, 2, 10, 4, 10, 1, 6, 3, 10, 3, 8, 1, 4, 1, 6, 3, 9, 5, 10, 6, 10, 4, 6, 6, 6, 4, 6, 1, 9, 3, 9, 5, 6, 4, 4, 3, 5, 5, 10, 3, 10, 1, 9, 5, 8, 7, 10, 4, 10, 4, 10, 7, 7, 2, 10, 2, 9, 2, 5, 1, 9, 5, 8, 4, 5, 2, 7, 3, 5, 1, 5, 2, 7, 1, 10, 7, 9, 3, 10, 5, 10, 3, 10, 5, 8, 8, 10, 6, 9, 6, 10, 8, 8, 2, 10, 4, 10, 5, 10, 7, 8, 4, 8, 4, 7, 2, 3, 3, 10, 1, 6, 5, 6, 5, 10, 6, 9, 2, 10, 6, 6, 5, 6, 2, 10, 5, 7, 3, 9, 1, 7, 3, 8, 1, 6, 2, 4, 3, 8, 2, 3, 1, 4, 2, 9, 2, 9, 5, 7, 5, 6, 2, 8, 4, 4, 1, 8, 2, 8, 5, 9, 4, 7, 4, 8, 1, 8, 5, 8, 7, 8, 5, 7, 1, 6, 3, 5, 3, 7, 5, 7, 5, 9, 3, 6, 2, 5, 3, 8, 2, 8, 5, 7, 4, 10, 5, 10, 1, 7, 6, 8, 2, 9, 7, 10, 4, 8, 1, 9, 5, 9, 5, 8, 4, 8, 1, 10, 4, 10, 3, 8, 6, 8, 6, 8, 6, 9, 4, 7, 3, 8, 4, 9, 4, 6, 3, 7, 3, 4, 3, 3, 2, 8, 2, 10, 4, 9, 3, 7, 1, 10, 8, 9, 6, 9, 2, 10, 9, 9, 6, 8, 3, 9, 8, 10, 8, 9, 2, 10, 8, 9, 3, 8, 2, 8, 3, 7, 2, 5, 1, 5, 1, 4, 2, 5, 1, 7, 4, 9, 5, 7, 1, 6, 1, 6, 4, 9, 5, 7, 2, 9, 3, 4, 1, 3, 2, 7, 4, 5, 4, 7, 4, 6, 1, 2, 2, 10, 8, 8, 2, 9, 6, 9, 2, 7, 6, 8, 2, 9, 1, 9, 3, 5, 1, 8, 4, 6, 4, 9, 4, 10, 5, 5, 4, 5, 1, 10, 4, 5, 1, 5, 2, 5, 4, 8, 5, 6, 3, 8, 6, 7, 2, 3, 3, 9, 1, 7, 3, 5, 1, 4, 1, 10, 5, 9, 6, 7, 6, 10, 3, 6, 6, 9, 1, 6, 2, 8, 4, 7, 5, 8, 6, 10, 2, 6, 4, 5, 4, 7, 1, 10, 1, 9, 3, 7, 3, 9, 4, 6, 1, 2, 1, 9, 2, 5, 1, 7, 3, 6, 1, 10, 3, 3, 3, 10, 5, 10, 2, 5, 2, 8, 2, 8, 1, 4, 3, 10, 1, 6, 6, 8, 5, 6, 5, 6, 6, 10, 2, 9, 6, 7, 3, 9, 1, 8, 2, 10, 9, 10, 7, 10, 4, 5, 3, 6, 3, 5, 3, 10, 7, 9, 5, 10, 7, 9, 3, 7, 2, 3, 2, 9, 2, 10, 4, 6, 2, 10, 6, 8, 5, 6, 1, 9, 3, 10, 2, 10, 3, 8, 7, 8, 3, 5, 4, 4, 4, 8, 1, 6, 4, 8, 4, 10, 4, 9, 4, 6, 5, 10, 6, 9, 5, 8, 2, 4, 3, 9, 3, 8, 3, 5, 3, 6, 5, 6, 3, 9, 5, 5, 2, 5, 5, 10, 9, 10, 1, 10, 2, 9, 6, 9, 6, 6, 6, 9, 7, 10, 2, 5, 2, 8, 1, 6, 5, 10, 1, 6, 3, 8, 4, 10, 5, 8, 6, 8, 5, 10, 6, 6, 4, 10, 5, 9, 3, 5, 3, 9, 7, 7, 1, 9, 8, 10, 6, 9, 1, 2, 1, 9, 1, 8, 3, 5, 1, 4, 2, 9, 3, 6, 1, 10, 7, 9, 3, 8, 5, 10, 6, 8, 3, 7, 6, 6, 3, 9, 1, 8, 3, 9, 1, 9, 5, 8, 3, 7, 5, 9, 4, 9, 7, 10, 6, 8, 8, 10, 2, 9, 3, 6, 4, 7, 2, 7, 3, 5, 5, 8, 6, 6, 5, 5, 3, 9, 4, 6, 1, 6, 4, 10, 4, 7, 7, 10, 6, 10, 1, 7, 3, 9, 1, 7, 4, 8, 3, 6, 4, 6, 2, 10, 7, 8, 5, 7, 7, 10, 1, 10, 4, 10, 3, 8, 5, 5, 3, 8, 1, 8, 2, 5, 4, 7, 4, 8, 2, 7, 2, 9, 3, 8, 1, 7, 3, 9, 1, 7, 3, 7, 5, 9, 2, 8, 1, 7, 1, 4, 2, 6, 1, 6, 2, 7, 2, 8, 3, 7, 2, 7, 3, 10, 6, 6, 2, 10, 5, 10, 2, 9, 4, 10, 3, 10, 6, 9, 5, 6, 4, 7, 4, 8, 1, 10, 9, 9, 8, 9, 1, 10, 5, 10, 2, 4, 1, 8, 2, 6, 3, 4, 1, 6, 1, 8, 2, 6, 3, 7, 4, 9, 4, 9, 2, 9, 7, 10, 3, 9, 3, 6, 2, 10, 6, 9, 5, 9, 5, 10, 6, 7, 2, 10, 3, 9, 3, 10, 5, 7, 5, 10, 2, 7, 1, 4, 3, 9, 7, 10, 9, 9, 4, 6, 3, 5, 1, 5, 1, 7, 3, 8, 4, 10, 1, 7, 1, 5, 3, 10, 5, 7, 2, 6, 2, 5, 1, 8, 3, 5, 4, 4, 3, 9, 4, 10, 2, 3, 3, 4, 3, 10, 3, 10, 5, 8, 5, 6, 5, 9, 2, 10, 6, 10, 2, 8, 1, 5, 1, 2, 1, 9, 7, 9, 8, 9, 1, 6, 2, 5, 3, 7, 2, 9, 4, 9, 2, 7, 3, 9, 2, 8, 1, 4, 2, 9, 2, 3, 2, 4, 2, 8, 4, 10, 7, 10, 8, 8, 1, 10, 1, 8, 5, 10, 2, 7, 1, 3, 2, 7, 4, 10, 7, 10, 6, 10, 6, 8, 4, 9, 7, 8, 2, 8, 5, 10, 5, 9, 3, 7, 5, 10, 5, 9, 5, 9, 8, 9, 3, 5, 3, 10, 4, 5, 2, 5, 2, 6, 4, 9, 7, 9, 5, 8, 2, 9, 3, 5, 1, 9, 1, 5, 1, 10, 1, 2, 2, 9, 6, 10, 6, 10, 8, 8, 1, 6, 1, 7, 1, 6, 2, 10, 6, 6, 2, 9, 6, 10, 9, 9, 4, 4, 4, 10, 3, 6, 1, 5, 4, 4, 2, 7, 3, 6, 1, 8, 6, 10, 4, 6, 4, 8, 2, 7, 3, 8, 1, 6, 4, 4, 3, 5, 3, 7, 5, 7, 4, 7, 1, 10, 8, 10, 6, 9, 4, 9, 8, 10, 4, 6, 2, 10, 4, 8, 8, 8, 5, 8, 3, 5, 3, 4, 3, 9, 6, 9, 5, 8, 5, 8, 3, 6, 6, 7, 4, 4, 1, 9, 1, 10, 2, 8, 2, 10, 4, 5, 2, 6, 3, 7, 4, 5, 1, 4, 4, 8, 5, 8, 4, 10, 3, 6, 1, 8, 1, 10, 3, 8, 5, 7, 4, 8, 5, 7, 4, 4, 4, 10, 1, 4, 2, 7, 1, 4, 2, 10, 1, 9, 3, 8, 2, 3, 2, 7, 3, 10, 7, 8, 6, 6, 4, 10, 1, 8, 7, 10, 8, 10, 1, 10, 5, 9, 8, 9, 4, 6, 3, 10, 2, 8, 1, 5, 3, 10, 8, 10, 8, 10, 5, 10, 6, 10, 1, 4, 4, 9, 5, 6, 1, 6, 1, 5, 1, 10, 3, 7, 6, 6, 1, 4, 3, 8, 2, 8, 3, 7, 4, 9, 7, 9, 4, 9, 7, 8, 4, 10, 1, 7, 5, 6, 6, 8, 6, 8, 4, 10, 2, 10, 5, 10, 3, 8, 3, 6, 2, 8, 2, 5, 1, 3, 3, 10, 3, 9, 4, 10, 6, 9, 5, 7, 4, 10, 3, 10, 4, 9, 7, 8, 2, 10, 4, 9, 1, 9, 1, 5, 4, 5, 1, 10, 3, 9, 2, 4, 1, 10, 3, 5, 5, 8, 5, 5, 3, 9, 4, 10, 1, 7, 2, 8, 2, 9, 1, 8, 2, 2, 2, 4, 2, 7, 5, 6, 3, 9, 3, 8, 4, 10, 1, 10, 8, 9, 9, 9, 4, 8, 8, 10, 1, 6, 1, 2, 2, 10, 2, 9, 2, 6, 2, 5, 2, 8, 5, 5, 3, 9, 1, 5, 1, 9, 2, 7, 6, 10, 3, 6, 1, 7, 7, 8, 4, 7, 1, 2, 2, 9, 3, 7, 2, 3, 1, 8, 1, 8, 2, 3, 2, 8, 7, 9, 7, 10, 6, 8, 2, 7, 2, 9, 4, 8, 2, 9, 7, 9, 1, 6, 2, 7, 1, 9, 2, 7, 2, 8, 2, 9, 1, 8, 5, 9, 7, 8, 1, 4, 3, 6, 5, 10, 7, 8, 7, 9, 8, 8, 1, 9, 3, 4, 2, 10, 4, 9, 5, 6, 6, 6, 5, 10, 6, 6, 1, 7, 1, 6, 1, 8, 2, 6, 2, 8, 3, 9, 3, 8, 1, 6, 3, 9, 5, 9, 8, 8, 3, 7, 4, 8, 3, 10, 4, 7, 2, 6, 5, 10, 3, 7, 4, 10, 4, 8, 4, 8, 1, 8, 2, 10, 3, 4, 2, 3, 2, 8, 1, 8, 6, 6, 1, 10, 3, 7, 6, 9, 4, 6, 2, 8, 6, 8, 5, 10, 1, 6, 1, 9, 2, 4, 1, 7, 1, 7, 2, 10, 3, 9, 1, 6, 1, 8, 6, 7, 3, 5, 4, 10, 4, 10, 5, 10, 5, 8, 7, 8, 2, 3, 1, 4, 4, 9, 9, 10, 4, 7, 7, 10, 6, 8, 3, 4, 4, 10, 1, 2, 2, 9, 5, 7, 2, 8, 4, 9, 1, 8, 5, 8, 6, 8, 6, 9, 4, 8, 5, 7, 4, 7, 4, 8, 6, 8, 2, 4, 3, 9, 1, 5, 4, 9, 6, 9, 2, 7, 2, 8, 6, 6, 4, 5, 4, 10, 2, 8, 4, 6, 1, 7, 4, 5, 2, 10, 1, 9, 5, 8, 1, 7, 5, 8, 5, 9, 6, 8, 2, 7, 4, 8, 4, 8, 2, 7, 1, 3, 1, 10, 3, 8, 2, 8, 5, 7, 2, 9, 4, 7, 5, 9, 1, 7, 4, 10, 6, 9, 4, 8, 8, 10, 3, 5, 3, 5, 2, 5, 3, 9, 1, 6, 2, 10, 4, 5, 4, 10, 6, 9, 6, 9, 6, 9, 3, 7, 6, 6, 2, 8, 5, 5, 3, 8, 7, 7, 2, 9, 2, 9, 1, 8, 6, 8, 3, 7, 5, 9, 6, 10, 9, 10, 5, 9, 3, 10, 2, 5, 2, 9, 2, 8, 5, 6, 1, 7, 4, 9, 8, 10, 9, 9, 1, 7, 3, 6, 5, 9, 2, 7, 7, 8, 2, 10, 3, 5, 4, 9, 5, 9, 1, 8, 5, 9, 3, 6, 5, 7, 5, 5, 2, 10, 4, 10, 5, 7, 4, 5, 2, 7, 3, 8, 2, 7, 4, 6, 1, 8, 2, 10, 2, 10, 1, 9, 1, 9, 9, 9, 3, 5, 2, 9, 2, 6, 4, 6, 5, 8, 1, 10, 4, 5, 4, 10, 2, 6, 1, 9, 4, 7, 5, 10, 8, 8, 1, 7, 1, 10, 4, 9, 4, 5, 2, 7, 1, 10, 4, 8, 4, 9, 2, 10, 8, 9, 5, 6, 3, 7, 2, 9, 2, 6, 1, 10, 2, 9, 1, 9, 1, 7, 2, 5, 2, 8, 6, 10, 6, 9, 3, 8, 7, 10, 2, 10, 7, 10, 6, 10, 7, 8, 1, 8, 6, 9, 6, 6, 1, 5, 3, 10, 3, 10, 8, 9, 4, 8, 2, 10, 1, 5, 1, 6, 1, 8, 6, 10, 10, 10, 2, 10, 3, 7, 1, 5, 3, 6, 1, 10, 3, 7, 7, 9, 7, 8, 6, 10, 5, 7, 5, 9, 9, 9, 3, 4, 1, 3, 1, 10, 4, 7, 2, 2, 1, 6, 2, 10, 7, 8, 4, 7, 2, 10, 4, 9, 5, 10, 4, 10, 2, 9, 7, 8, 8, 10, 2, 3, 1, 1, 1, 8, 1, 2, 1, 4, 2, 7, 4, 7, 5, 9, 7, 8, 2, 6, 4, 9, 5, 6, 3, 7, 5, 10, 6, 7, 1, 10, 1, 9, 6, 8, 1, 7, 2, 5, 2, 10, 2, 5, 3, 8, 2, 9, 3, 9, 3, 6, 5, 10, 1, 6, 4, 7, 3, 6, 2, 8, 1, 9, 1, 4, 4, 9, 2, 5, 3, 9, 2, 5, 2, 4, 4, 8, 7, 8, 2, 5, 2, 7, 5, 9, 2, 10, 3, 9, 4, 6, 1, 9, 4, 9, 2, 9, 6, 9, 5, 8, 6, 7, 4, 7, 5, 5, 5, 5, 4, 7, 2, 7, 2, 5, 1, 9, 2, 10, 6, 10, 3, 10, 9, 9, 3, 6, 2, 5, 2, 7, 4, 6, 4, 7, 7, 10, 3, 10, 3, 8, 5, 9, 6, 9, 3, 9, 5, 9, 8, 9, 2, 5, 1, 7, 6, 6, 2, 5, 4, 8, 3, 5, 3, 7, 5, 5, 1, 7, 4, 7, 4, 10, 3, 6, 1, 10, 1, 7, 3, 5, 4, 10, 8, 10, 1, 9, 8, 10, 1, 8, 4, 9, 7, 9, 1, 8, 3, 6, 3, 10, 8, 10, 2, 7, 4, 9, 3, 7, 4, 7, 1, 6, 4, 8, 2, 10, 3, 9, 7, 8, 1, 10, 7, 9, 5, 9, 2, 5, 1, 5, 4, 8, 1, 10, 6, 7, 4, 10, 9, 9, 2, 4, 1, 4, 3, 7, 7, 10, 1, 3, 1, 10, 2, 8, 5, 6, 5, 10, 1, 4, 2, 8, 1, 8, 2, 4, 2, 8, 4, 8, 1, 10, 7, 9, 3, 7, 2, 6, 4, 9, 6, 7, 2, 10, 1, 10, 3, 4, 2, 4, 4, 5, 4, 10, 2, 10, 1, 6, 5, 8, 3, 6, 3, 8, 4, 8, 5, 8, 8, 9, 2, 8, 1, 8, 5, 7, 2, 6, 3, 4, 1, 5, 1, 5, 3, 9, 4, 9, 8, 10, 1, 8, 6, 7, 2, 8, 4, 10, 6, 10, 2, 7, 3, 3, 2, 5, 2, 7, 4, 8, 2, 6, 2, 7, 7, 10, 2, 10, 4, 9, 8, 8, 1, 9, 1, 4, 1, 7, 2, 6, 4, 5, 1, 7, 1, 9, 3, 10, 4, 5, 3, 5, 2, 8, 5, 6, 1, 5, 2, 10, 2, 8, 7, 10, 6, 10, 8, 8, 7, 10, 7, 10, 7, 10, 2, 8, 5, 8, 1, 5, 4, 9, 3, 8, 3, 6, 3, 7, 5, 10, 3, 9, 1, 2, 1, 3, 3, 4, 2, 10, 1, 8, 6, 10, 2, 9, 1, 8, 3, 5, 4, 9, 1, 6, 3, 10, 7, 8, 3, 8, 4, 7, 5, 10, 5, 7, 7, 9, 5, 7, 5, 6, 6, 9, 4, 9, 7, 10, 2, 9, 4, 8, 5, 9, 6, 9, 1, 7, 1, 8, 4, 7, 2, 5, 2, 2, 1, 10, 2, 6, 4, 8, 1, 8, 3, 7, 4, 9, 1, 7, 4, 6, 6, 10, 9, 10, 5, 9, 6, 6, 2, 6, 1, 10, 3, 9, 3, 3, 2, 10, 4, 7, 5, 9, 6, 6, 1, 6, 1, 7, 3, 9, 5, 7, 2, 6, 2, 10, 5, 7, 2, 9, 1, 7, 1, 10, 6, 10, 1, 7, 4, 6, 4, 6, 6, 9, 7, 10, 6, 7, 1, 7, 2, 4, 2, 7, 5, 10, 4, 8, 4, 9, 6, 8, 1, 9, 4, 10, 3, 6, 4, 7, 2, 10, 1, 8, 2, 7, 5, 10, 2, 9, 5, 10, 6, 10, 4, 9, 1, 6, 1, 10, 3, 9, 8, 10, 6, 10, 6, 9, 1, 9, 3, 10, 5, 10, 3, 9, 3, 8, 6, 9, 6, 7, 6, 7, 4, 10, 6, 10, 5, 7, 4, 8, 2, 5, 2, 10, 4, 7, 5, 5, 5, 5, 3, 10, 4, 10, 6, 10, 6, 7, 2, 8, 3, 9, 2, 10, 3, 4, 3, 9, 7, 8, 6, 7, 4, 8, 2, 7, 4, 7, 2, 2, 1, 9, 5, 9, 5, 9, 4, 5, 4, 5, 3, 8, 5, 6, 3, 9, 2, 4, 4, 6, 2, 9, 4, 8, 1, 9, 1, 8, 3, 8, 6, 7, 1, 5, 1, 8, 1, 6, 3, 8, 3, 3, 3, 6, 6, 9, 3, 4, 1, 2, 1, 10, 1, 5, 3, 9, 7, 8, 3, 10, 4, 10, 4, 10, 3, 8, 7, 10, 4, 8, 4, 10, 7, 9, 2, 8, 7, 8, 2, 5, 4, 4, 2, 8, 2, 5, 2, 10, 2, 8, 2, 6, 2, 4, 2, 8, 1, 6, 1, 1, 1, 9, 8, 8, 2, 6, 3, 7, 1, 3, 1, 7, 3, 7, 4, 9, 3, 8, 4, 9, 5, 10, 1, 8, 3, 4, 1, 9, 6, 7, 6, 6, 1, 4, 4, 9, 3, 8, 4, 4, 2, 6, 3, 6, 4, 7, 3, 7, 5, 10, 5, 5, 3, 8, 2, 6, 1, 4, 1, 7, 2, 7, 3, 7, 1, 10, 10, 10, 2, 4, 1, 5, 4, 7, 3, 8, 5, 7, 3, 10, 4, 8, 4, 7, 1, 9, 8, 8, 7, 7, 5, 6, 2, 6, 5, 5, 3, 8, 2, 10, 2, 6, 2, 8, 1, 4, 3, 4, 3, 4, 2, 10, 2, 6, 3, 8, 5, 8, 5, 10, 8, 8, 1, 3, 1, 8, 3, 7, 7, 9, 4, 9, 3, 6, 1, 3, 2, 10, 1, 5, 2, 9, 2, 9, 1, 5, 3, 9, 2, 10, 4, 5, 5, 6, 1, 5, 1, 10, 6, 9, 3, 9, 3, 10, 1, 9, 3, 6, 6, 10, 2, 7, 5, 10, 4, 9, 5, 6, 2, 9, 6, 10, 2, 7, 2, 8, 6, 8, 4, 10, 5, 7, 6, 9, 1, 2, 2, 4, 4, 5, 1, 3, 1, 7, 1, 8, 2, 4, 1, 6, 3, 8, 3, 9, 5, 9, 1, 10, 3, 7, 2, 9, 1, 8, 1, 8, 1, 9, 1, 8, 3, 10, 7, 7, 1, 4, 3, 10, 4, 8, 2, 7, 2, 6, 3, 5, 1, 7, 3, 3, 3, 10, 1, 6, 2, 6, 1, 9, 4, 7, 3, 7, 3, 9, 4, 8, 3, 6, 4, 8, 4, 4, 4, 10, 8, 9, 3, 8, 4, 9, 1, 6, 6, 9, 3, 7, 6, 8, 8, 10, 5, 8, 1, 8, 2, 6, 4, 4, 1, 1, 1, 8, 8, 10, 4, 10, 2, 5, 3, 9, 7, 10, 9, 10, 2, 8, 2, 9, 3, 8, 3, 7, 2, 5, 4, 8, 3, 10, 5, 10, 5, 8, 8, 8, 3, 10, 4, 6, 3, 8, 4, 6, 3, 10, 5, 7, 2, 3, 1, 2, 1, 5, 5, 8, 2, 3, 2, 9, 9, 10, 2, 8, 1, 6, 4, 9, 3, 9, 3, 6, 2, 10, 1, 5, 2, 10, 1, 8, 5, 6, 1, 8, 2, 5, 3, 7, 1, 7, 4, 9, 7, 8, 5, 9, 4, 7, 2, 8, 5, 7, 3, 4, 1, 10, 6, 8, 5, 9, 5, 6, 2, 4, 1, 4, 1, 5, 4, 7, 2, 9, 5, 9, 6, 10, 3, 10, 4, 9, 1, 7, 4, 8, 3, 9, 7, 10, 5, 8, 5, 9, 6, 9, 5, 6, 2, 3, 3, 7, 5, 6, 5, 8, 1, 10, 6, 8, 3, 6, 2, 4, 2, 8, 1, 4, 2, 5, 5, 9, 6, 7, 7, 7, 1, 3, 3, 10, 3, 6, 1, 8, 7, 9, 4, 8, 2, 6, 3, 5, 4, 10, 8, 9, 7, 9, 6, 7, 2, 2, 2, 3, 2, 5, 3, 6, 1, 2, 2, 4, 1, 10, 2, 8, 4, 10, 4, 7, 3, 7, 2, 6, 4, 10, 3, 6, 4, 10, 8, 10, 5, 9, 4, 6, 2, 9, 8, 9, 4, 8, 1, 9, 4, 7, 3, 6, 6, 10, 8, 8, 2, 4, 3, 10, 4, 6, 6, 7, 1, 4, 2, 5, 4, 6, 4, 10, 1, 7, 4, 9, 4, 7, 5, 6, 2, 7, 3, 8, 6, 8, 6, 7, 3, 8, 5, 6, 2, 7, 5, 9, 2, 6, 3, 8, 5, 8, 4, 7, 3, 7, 1, 5, 1, 5, 2, 3, 1, 10, 1, 10, 6, 10, 1, 7, 7, 8, 6, 7, 1, 2, 2, 8, 4, 7, 2, 7, 3, 8, 7, 10, 4, 9, 8, 10, 4, 10, 4, 8, 4, 5, 5, 9, 1, 9, 2, 6, 4, 9, 6, 10, 5, 9, 6, 8, 5, 7, 4, 6, 1, 9, 3, 8, 3, 7, 5, 8, 4, 7, 2, 5, 1, 8, 4, 8, 6, 9, 5, 7, 1, 6, 4, 9, 6, 8, 1, 7, 2, 7, 5, 7, 3, 9, 2, 7, 3, 7, 2, 7, 6, 10, 5, 8, 3, 7, 5, 7, 1, 9, 1, 9, 5, 6, 1, 10, 3, 6, 3, 5, 2, 6, 6, 7, 4, 10, 7, 10, 8, 9, 1, 6, 1, 4, 2, 5, 1, 4, 2, 10, 9, 10, 8, 10, 2, 6, 4, 5, 4, 10, 1, 7, 5, 5, 3, 10, 2, 6, 5, 8, 3, 7, 2, 7, 3, 6, 3, 7, 3, 7, 6, 6, 3, 4, 2, 6, 2, 7, 7, 8, 3, 9, 1, 6, 2, 9, 8, 9, 5, 7, 4, 5, 5, 9, 6, 9, 1, 5, 2, 5, 1, 9, 4, 9, 4, 6, 1, 9, 6, 10, 3, 8, 5, 8, 5, 9, 6, 6, 1, 8, 5, 9, 2, 8, 8, 10, 3, 9, 6, 10, 6, 10, 8, 9, 2, 2, 2, 9, 2, 3, 3, 8, 4, 8, 4, 7, 2, 6, 5, 10, 1, 10, 2, 8, 5, 8, 1, 3, 2, 8, 6, 7, 4, 6, 5, 8, 3, 5, 4, 8, 3, 6, 3, 7, 3, 9, 9, 10, 7, 9, 9, 9, 2, 8, 2, 10, 4, 8, 2, 7, 3, 10, 5, 9, 3, 6, 3, 7, 6, 9, 6, 7, 7, 9, 5, 6, 2, 6, 1, 4, 1, 5, 2, 6, 5, 10, 4, 6, 1, 2, 1, 2, 1, 5, 1, 7, 4, 10, 1, 6, 4, 10, 3, 5, 2, 3, 1, 4, 3, 10, 5, 6, 1, 7, 2, 9, 4, 8, 2, 8, 4, 7, 3, 8, 5, 9, 2, 9, 3, 10, 6, 8, 2, 8, 1, 7, 2, 10, 3, 7, 1, 7, 1, 9, 1, 5, 1, 9, 5, 9, 2, 6, 4, 6, 4, 7, 7, 8, 4, 7, 2, 8, 6, 6, 6, 7, 3, 7, 1, 7, 3, 5, 4, 10, 1, 5, 2, 10, 6, 9, 1, 5, 1, 7, 2, 4, 4, 7, 4, 7, 2, 7, 2, 7, 1, 5, 5, 10, 4, 10, 5, 7, 6, 9, 6, 10, 8, 9, 1, 9, 4, 7, 4, 4, 3, 10, 2, 2, 1, 6, 4, 5, 1, 9, 2, 5, 1, 3, 2, 6, 5, 9, 5, 5, 1, 8, 4, 5, 2, 7, 2, 8, 2, 7, 3, 9, 1, 10, 1, 5, 4, 8, 2, 10, 7, 7, 1, 5, 3, 8, 5, 10, 3, 9, 6, 9, 4, 8, 4, 9, 5, 8, 1, 8, 1, 10, 5, 10, 7, 10, 3, 5, 3, 7, 4, 5, 1, 4, 1, 6, 1, 6, 4, 7, 5, 8, 1, 7, 1, 9, 4, 8, 4, 10, 2, 4, 2, 7, 2, 8, 3, 9, 4, 8, 4, 10, 3, 7, 5, 8, 1, 8, 6, 7, 2, 2, 1, 9, 7, 9, 3, 3, 2, 9, 4, 5, 5, 10, 2, 8, 1, 7, 1, 5, 3, 9, 3, 9, 2, 10, 4, 7, 1, 10, 7, 9, 6, 9, 9, 9, 2, 2, 1, 8, 3, 3, 3, 7, 4, 6, 6, 6, 2, 6, 2, 9, 1, 10, 8, 10, 4, 10, 2, 7, 7, 10, 2, 8, 3, 8, 1, 9, 7, 8, 4, 6, 5, 9, 2, 7, 4, 4, 3, 8, 6, 7, 6, 8, 3, 7, 4, 9, 7, 10, 2, 8, 1, 2, 1, 8, 3, 4, 2, 8, 6, 7, 6, 10, 7, 9, 1, 8, 3, 3, 1, 4, 2, 4, 1, 9, 4, 10, 4, 10, 2, 4, 3, 3, 2, 10, 4, 6, 2, 6, 6, 6, 2, 10, 3, 9, 5, 8, 5, 8, 6, 9, 6, 9, 2, 7, 4, 7, 2, 8, 6, 10, 5, 8, 4, 6, 4, 10, 3, 7, 4, 9, 7, 9, 4, 7, 4, 6, 4, 6, 6, 7, 5, 5, 2, 3, 3, 5, 1, 4, 4, 9, 2, 5, 2, 8, 8, 9, 7, 8, 3, 5, 3, 8, 4, 7, 3, 10, 4, 8, 2, 7, 2, 5, 1, 4, 3, 10, 5, 6, 4, 9, 4, 5, 2, 10, 4, 6, 5, 9, 5, 6, 2, 6, 4, 8, 5, 8, 1, 6, 2, 7, 4, 4, 1, 8, 2, 9, 3, 8, 7, 8, 2, 6, 4, 5, 3, 10, 4, 5, 4, 10, 3, 10, 2, 2, 1, 9, 1, 4, 1, 4, 4, 8, 5, 7, 7, 7, 4, 7, 1, 10, 6, 7, 4, 7, 1, 1, 1, 8, 1, 10, 1, 9, 3, 10, 7, 7, 1, 10, 2, 5, 1, 7, 4, 8, 1, 5, 4, 6, 1, 6, 4, 10, 1, 5, 2, 8, 2, 9, 4, 8, 4, 7, 6, 6, 1, 6, 4, 10, 4, 10, 4, 7, 5, 10, 1, 8, 1, 3, 1, 3, 2, 8, 4, 10, 4, 6, 5, 5, 3, 6, 5, 9, 5, 7, 1, 8, 4, 7, 7, 7, 3, 10, 1, 9, 2, 8, 4, 9, 6, 7, 3, 5, 4, 8, 2, 7, 2, 7, 1, 9, 3, 6, 3, 8, 1, 8, 7, 7, 3, 10, 3, 9, 2, 9, 2, 6, 4, 9, 5, 10, 4, 10, 1, 9, 5, 10, 6, 8, 5, 9, 3, 5, 4, 9, 8, 8, 7, 10, 5, 10, 7, 7, 1, 6, 2, 4, 4, 9, 4, 7, 5, 10, 5, 8, 1, 4, 4, 9, 8, 8, 2, 3, 3, 10, 8, 8, 3, 6, 4, 8, 1, 7, 3, 8, 1, 10, 7, 9, 5, 8, 2, 4, 1, 9, 8, 9, 5, 9, 5, 6, 2, 5, 4, 8, 4, 10, 7, 7, 4, 5, 4, 10, 3, 4, 2, 9, 3, 10, 1, 10, 4, 7, 1, 10, 3, 4, 3, 6, 5, 8, 3, 6, 1, 6, 4, 6, 1, 8, 5, 8, 2, 5, 1, 9, 6, 7, 5, 9, 4, 5, 3, 8, 2, 4, 3, 7, 3, 10, 6, 7, 5, 6, 5, 10, 6, 9, 5, 6, 5, 9, 6, 6, 4, 9, 4, 9, 1, 10, 6, 8, 6, 7, 1, 8, 3, 8, 4, 10, 3, 9, 3, 9, 5, 8, 2, 8, 3, 4, 1, 10, 2, 10, 3, 7, 6, 10, 2, 4, 1, 4, 2, 10, 4, 8, 2, 8, 5, 8, 4, 7, 6, 9, 2, 5, 4, 7, 4, 5, 2, 8, 5, 8, 6, 8, 2, 8, 4, 8, 5, 9, 5, 8, 4, 6, 5, 7, 6, 10, 5, 9, 4, 7, 2, 9, 3, 5, 3, 8, 2, 5, 1, 10, 3, 7, 1, 9, 4, 5, 3, 6, 2, 5, 4, 4, 2, 2, 1, 7, 2, 9, 4, 6, 5, 9, 4, 6, 5, 8, 1, 9, 3, 9, 3, 9, 4, 10, 5, 7, 3, 6, 4, 9, 2, 8, 2, 7, 2, 9, 4, 9, 5, 9, 2, 7, 7, 8, 1, 5, 2, 7, 3, 9, 3, 4, 2, 4, 4, 8, 2, 4, 4, 9, 3, 9, 7, 8, 6, 10, 6, 7, 1, 10, 2, 7, 1, 8, 3, 5, 3, 10, 4, 10, 3, 10, 4, 10, 4, 8, 2, 4, 2, 7, 2, 4, 3, 5, 3, 5, 1, 8, 5, 7, 5, 10, 6, 9, 1, 7, 5, 6, 5, 5, 1, 5, 4, 9, 6, 9, 6, 10, 7, 10, 6, 7, 2, 4, 2, 2, 1, 6, 1, 10, 5, 8, 1, 8, 4, 10, 1, 7, 7, 7, 1, 7, 2, 10, 4, 7, 1, 8, 1, 8, 1, 8, 2, 10, 3, 5, 1, 9, 2, 3, 2, 9, 2, 10, 2, 9, 5, 8, 4, 10, 2, 2, 1, 8, 4, 6, 3, 10, 6, 10, 1, 6, 4, 10, 5, 7, 4, 9, 6, 8, 1, 8, 6, 8, 1, 9, 9, 10, 7, 9, 1, 6, 4, 10, 3, 7, 4, 5, 4, 10, 2, 5, 1, 9, 3, 10, 5, 9, 2, 5, 3, 9, 3, 7, 4, 8, 1, 9, 1, 6, 2, 7, 6, 10, 3, 6, 4, 10, 5, 9, 1, 9, 3, 4, 3, 9, 8, 9, 5, 7, 4, 7, 3, 6, 2, 9, 1, 9, 3, 6, 4, 8, 3, 10, 2, 8, 6, 8, 8, 9, 3, 10, 1, 4, 1, 9, 5, 10, 6, 7, 3, 5, 5, 5, 2, 6, 4, 6, 1, 10, 1, 9, 1, 5, 3, 5, 1, 2, 1, 7, 6, 9, 3, 6, 2, 5, 2, 9, 1, 5, 3, 9, 2, 8, 5, 9, 2, 7, 3, 10, 1, 7, 4, 7, 4, 9, 1, 7, 3, 5, 3, 5, 1, 3, 3, 8, 2, 4, 2, 10, 2, 6, 2, 6, 2, 7, 4, 10, 5, 8, 6, 9, 6, 7, 1, 7, 4, 10, 4, 7, 6, 7, 4, 10, 3, 10, 2, 2, 1, 8, 5, 8, 5, 6, 2, 9, 3, 9, 3, 4, 3, 6, 2, 5, 3, 3, 1, 9, 3, 10, 3, 7, 4, 10, 7, 9, 1, 10, 1, 6, 2, 5, 2, 3, 2, 10, 2, 9, 3, 8, 4, 8, 1, 9, 5, 9, 3, 5, 2, 8, 2, 5, 2, 4, 1, 8, 4, 5, 5, 9, 7, 10, 3, 6, 5, 10, 8, 9, 3, 8, 6, 9, 1, 10, 2, 8, 8, 8, 8, 8, 2, 8, 5, 10, 6, 9, 1, 10, 2, 5, 1, 7, 3, 8, 4, 6, 1, 7, 5, 6, 4, 4, 1, 9, 1, 9, 2, 4, 3, 10, 1, 9, 3, 10, 1, 6, 5, 10, 6, 7, 6, 10, 7, 9, 6, 10, 6, 10, 8, 9, 2, 8, 1, 9, 5, 8, 7, 8, 1, 8, 1, 10, 1, 9, 4, 9, 2, 7, 7, 10, 4, 7, 4, 10, 4, 5, 4, 9, 4, 8, 5, 9, 6, 9, 5, 7, 1, 9, 6, 8, 1, 10, 2, 9, 4, 9, 2, 10, 4, 8, 3, 8, 2, 7, 1, 10, 6, 8, 2, 9, 3, 4, 1, 4, 3, 10, 6, 8, 3, 9, 3, 9, 6, 7, 5, 9, 2, 6, 5, 9, 6, 9, 4, 8, 5, 8, 3, 10, 3, 6, 5, 6, 1, 3, 1, 2, 2, 4, 2, 5, 5, 6, 3, 5, 3, 10, 4, 10, 1, 4, 1, 9, 5, 8, 1, 6, 4, 9, 1, 7, 5, 8, 5, 10, 4, 7, 3, 10, 1, 8, 6, 10, 3, 10, 8, 9, 3, 9, 5, 9, 3, 8, 5, 10, 2, 8, 7, 9, 1, 2, 1, 10, 6, 9, 2, 9, 4, 5, 2, 9, 4, 4, 2, 3, 2, 6, 5, 10, 2, 5, 1, 7, 4, 4, 2, 8, 5, 10, 4, 5, 4, 10, 9, 9, 7, 8, 1, 2, 1, 2, 1, 4, 1, 9, 1, 6, 3, 9, 3, 8, 1, 8, 1, 6, 4, 6, 4, 8, 3, 5, 1, 3, 1, 6, 1, 7, 1, 2, 1, 10, 4, 6, 1, 3, 2, 5, 3, 10, 2, 8, 1, 10, 5, 9, 6, 9, 9, 10, 3, 8, 1, 7, 1, 7, 4, 10, 6, 7, 5, 6, 1, 8, 2, 8, 1, 3, 3, 3, 2, 7, 2, 5, 3, 10, 5, 9, 6, 8, 2, 6, 3, 5, 1, 10, 1, 10, 6, 10, 1, 3, 2, 7, 4, 9, 3, 7, 5, 7, 6, 7, 3, 5, 4, 10, 6, 10, 5, 7, 5, 10, 6, 7, 5, 10, 2, 10, 7, 9, 4, 7, 6, 7, 3, 6, 4, 9, 6, 10, 6, 9, 1, 10, 4, 7, 1, 10, 1, 3, 2, 10, 6, 9, 3, 4, 3, 10, 3, 7, 2, 9, 4, 5, 4, 10, 4, 6, 4, 5, 4, 7, 3, 6, 6, 10, 2, 7, 1, 9, 1, 3, 1, 7, 4, 10, 6, 10, 8, 9, 3, 10, 1, 9, 7, 8, 3, 10, 6, 7, 4, 7, 5, 9, 4, 8, 6, 8, 3, 8, 7, 10, 5, 6, 4, 9, 1, 6, 1, 6, 1, 9, 2, 7, 3, 4, 2, 5, 3, 8, 3, 8, 3, 6, 4, 6, 4, 10, 2, 6, 3, 5, 4, 10, 5, 5, 1, 9, 7, 9, 5, 7, 1, 6, 2, 6, 2, 6, 5, 6, 1, 5, 4, 9, 2, 5, 1, 2, 1, 2, 1, 8, 2, 10, 3, 7, 1, 8, 5, 9, 4, 6, 1, 4, 3, 4, 2, 7, 4, 8, 3, 4, 4, 8, 3, 9, 4, 5, 4, 7, 4, 9, 3, 8, 2, 7, 5, 8, 2, 10, 2, 9, 1, 5, 4, 10, 6, 9, 3, 9, 5, 8, 1, 8, 4, 6, 1, 8, 2, 7, 3, 7, 6, 8, 6, 9, 7, 10, 1, 8, 6, 9, 4, 7, 2, 7, 2, 5, 2, 9, 1, 8, 2, 6, 1, 5, 3, 9, 5, 6, 2, 3, 1, 4, 2, 4, 1, 7, 3, 9, 2, 4, 4, 10, 2, 9, 4, 9, 1, 6, 2, 6, 3, 5, 3, 6, 2, 7, 4, 7, 4, 7, 1, 8, 3, 8, 5, 6, 1, 8, 2, 8, 1, 8, 2, 7, 3, 7, 6, 10, 2, 8, 8, 8, 1, 6, 2, 5, 1, 8, 1, 8, 3, 7, 2, 4, 3, 7, 4, 10, 7, 8, 7, 7, 1, 9, 8, 8, 2, 6, 3, 6, 2, 7, 1, 4, 2, 7, 3, 9, 5, 6, 2, 5, 1, 6, 1, 9, 2, 6, 1, 9, 3, 7, 4, 8, 1, 10, 3, 5, 1, 8, 2, 9, 5, 10, 6, 10, 4, 5, 1, 6, 2, 8, 2, 8, 6, 8, 4, 9, 6, 9, 5, 8, 7, 9, 5, 10, 5, 6, 1, 7, 1, 4, 2, 6, 1, 2, 1, 5, 3, 4, 3, 10, 6, 7, 1, 7, 4, 6, 2, 9, 4, 5, 3, 8, 1, 4, 2, 8, 2, 7, 1, 8, 4, 6, 4, 8, 3, 6, 5, 10, 2, 8, 3, 4, 2, 5, 4, 6, 1, 4, 4, 10, 3, 6, 5, 9, 3, 9, 1, 6, 1, 7, 2, 4, 1, 4, 3, 7, 4, 9, 3, 9, 1, 4, 1, 7, 4, 6, 3, 6, 5, 10, 2, 10, 5, 10, 2, 10, 5, 8, 1, 6, 4, 10, 5, 9, 5, 8, 2, 4, 1, 7, 3, 6, 1, 10, 1, 8, 6, 10, 7, 8, 6, 9, 8, 10, 3, 10, 5, 10, 3, 10, 3, 10, 3, 8, 1, 5, 2, 5, 2, 6, 5, 10, 4, 9, 3, 6, 6, 10, 7, 10, 3, 7, 2, 4, 3, 9, 4, 9, 2, 6, 3, 6, 2, 8, 3, 7, 2, 7, 3, 10, 5, 10, 1, 10, 6, 8, 2, 6, 2, 7, 4, 6, 5, 9, 3, 6, 4, 5, 3, 10, 1, 8, 2, 7, 5, 10, 6, 8, 4, 6, 1, 10, 2, 6, 4, 6, 1, 3, 3, 8, 2, 10, 5, 7, 2, 8, 2, 9, 4, 5, 2, 9, 2, 4, 2, 6, 4, 9, 7, 8, 2, 6, 2, 6, 5, 6, 5, 5, 2, 7, 4, 8, 5, 7, 2, 7, 4, 4, 2, 9, 6, 6, 1, 6, 3, 5, 2, 10, 2, 10, 3, 4, 1, 7, 2, 4, 3, 8, 7, 9, 4, 9, 6, 10, 5, 9, 4, 8, 7, 8, 1, 7, 4, 9, 3, 4, 3, 5, 4, 10, 5, 8, 2, 3, 1, 3, 3, 9, 2, 8, 1, 6, 2, 6, 3, 8, 5, 10, 2, 7, 3, 8, 3, 5, 4, 6, 3, 9, 3, 7, 5, 8, 5, 10, 6, 7, 6, 8, 6, 8, 2, 3, 1, 8, 6, 7, 5, 7, 2, 6, 6, 9, 5, 7, 1, 7, 3, 9, 6, 7, 6, 10, 4, 5, 2, 4, 4, 10, 3, 7, 1, 7, 1, 6, 5, 6, 3, 9, 6, 6, 1, 10, 2, 6, 3, 6, 3, 8, 2, 5, 4, 8, 2, 6, 1, 6, 5, 5, 5, 10, 7, 9, 3, 8, 4, 9, 3, 7, 2, 6, 2, 4, 2, 5, 3, 4, 3, 8, 3, 7, 1, 8, 5, 8, 6, 9, 6, 9, 3, 10, 4, 10, 4, 8, 6, 10, 9, 9, 2, 10, 10, 10, 3, 9, 1, 10, 1, 8, 6, 8, 7, 10, 7, 9, 1, 9, 3, 3, 1, 10, 5, 9, 1, 8, 1, 8, 2, 6, 6, 10, 1, 5, 4, 8, 4, 9, 4, 9, 4, 5, 5, 10, 2, 7, 2, 8, 1, 9, 1, 6, 4, 10, 1, 9, 1, 8, 4, 10, 1, 10, 3, 7, 3, 10, 2, 8, 3, 10, 4, 10, 4, 7, 4, 5, 1, 9, 3, 9, 3, 9, 2, 3, 1, 7, 5, 8, 2, 10, 4, 9, 4, 9, 9, 10, 2, 10, 3, 10, 9, 10, 6, 10, 2, 6, 3, 7, 2, 6, 5, 9, 2, 8, 2, 4, 3, 8, 2, 9, 7, 7, 5, 9, 3, 7, 6, 8, 3, 8, 3, 10, 6, 8, 2, 7, 2, 6, 6, 10, 1, 3, 3, 5, 5, 10, 3, 4, 3, 6, 4, 8, 5, 7, 1, 9, 2, 6, 1, 7, 2, 10, 6, 7, 1, 4, 3, 10, 6, 9, 3, 6, 6, 10, 1, 6, 6, 7, 3, 8, 1, 7, 5, 9, 7, 8, 1, 6, 4, 8, 2, 7, 2, 10, 1, 10, 3, 9, 6, 9, 8, 9, 1, 5, 2, 10, 5, 5, 2, 10, 5, 7, 4, 5, 1, 7, 2, 8, 2, 6, 3, 8, 4, 6, 3, 4, 3, 6, 5, 9, 4, 6, 1, 10, 3, 10, 3, 7, 3, 6, 1, 4, 1, 10, 8, 9, 1, 9, 3, 10, 2, 9, 1, 7, 4, 6, 2, 7, 1, 4, 3, 10, 7, 10, 9, 9, 2, 9, 2, 7, 2, 3, 2, 8, 5, 10, 6, 8, 7, 10, 6, 8, 3, 9, 3, 8, 6, 7, 1, 3, 2, 5, 3, 4, 1, 8, 1, 5, 1, 7, 1, 10, 1, 9, 3, 10, 5, 6, 6, 7, 2, 4, 1, 10, 3, 10, 1, 4, 1, 5, 2, 3, 1, 3, 2, 6, 2, 8, 4, 10, 7, 8, 6, 7, 3, 10, 4, 7, 6, 10, 2, 9, 3, 5, 3, 10, 5, 5, 1, 8, 3, 5, 1, 9, 5, 8, 5, 9, 7, 9, 1, 10, 3, 7, 1, 7, 4, 6, 3, 6, 5, 9, 6, 6, 4, 6, 4, 7, 1, 6, 4, 5, 4, 4, 4, 6, 6, 8, 1, 7, 5, 7, 1, 7, 1, 10, 6, 7, 1, 10, 1, 8, 7, 9, 1, 5, 4, 7, 4, 6, 5, 6, 6, 10, 4, 10, 7, 10, 4, 10, 1, 10, 5, 9, 3, 6, 2, 7, 3, 4, 2, 5, 3, 10, 4, 10, 4, 9, 6, 10, 7, 8, 1, 6, 2, 2, 2, 4, 3, 5, 2, 3, 1, 4, 3, 9, 2, 6, 2, 6, 1, 5, 3, 6, 4, 8, 3, 6, 6, 9, 9, 10, 2, 6, 3, 3, 2, 5, 1, 8, 2, 9, 3, 6, 5, 10, 1, 6, 5, 6, 5, 8, 2, 10, 6, 8, 1, 10, 3, 9, 2, 9, 4, 6, 4, 9, 4, 8, 3, 9, 7, 8, 4, 6, 2, 8, 3, 4, 3, 6, 3, 8, 1, 6, 2, 8, 4, 8, 6, 7, 4, 7, 1, 10, 5, 10, 2, 7, 4, 6, 2, 4, 3, 10, 5, 7, 3, 8, 7, 8, 4, 6, 1, 8, 2, 4, 4, 5, 5, 7, 5, 6, 4, 9, 7, 8, 2, 10, 1, 6, 5, 7, 4, 6, 2, 6, 2, 10, 7, 9, 5, 8, 2, 7, 7, 10, 5, 9, 1, 6, 3, 6, 2, 10, 2, 5, 5, 5, 2, 7, 5, 10, 2, 6, 2, 9, 3, 8, 6, 6, 5, 10, 6, 6, 1, 8, 6, 10, 1, 8, 4, 8, 1, 7, 1, 4, 2, 10, 2, 10, 8, 9, 4, 9, 1, 4, 2, 9, 3, 9, 7, 9, 2, 10, 7, 10, 4, 9, 3, 7, 5, 8, 5, 8, 3, 4, 3, 6, 2, 6, 2, 9, 2, 8, 2, 8, 4, 9, 5, 10, 1, 10, 3, 8, 4, 10, 1, 7, 2, 10, 3, 9, 8, 10, 1, 4, 3, 9, 7, 8, 6, 7, 7, 10, 8, 9, 7, 9, 1, 8, 5, 5, 1, 6, 5, 5, 2, 7, 2, 3, 2, 10, 5, 5, 4, 9, 4, 5, 2, 8, 3, 7, 2, 8, 6, 10, 3, 10, 7, 8, 5, 7, 1, 9, 1, 4, 3, 7, 6, 9, 7, 9, 8, 10, 1, 5, 2, 10, 4, 10, 6, 6, 1, 6, 5, 6, 5, 8, 5, 8, 6, 8, 7, 9, 7, 9, 8, 10, 5, 8, 4, 7, 4, 10, 6, 7, 4, 6, 5, 6, 1, 10, 4, 5, 4, 8, 5, 10, 1, 9, 1, 2, 2, 10, 1, 8, 1, 8, 4, 9, 2, 9, 3, 5, 1, 10, 1, 6, 2, 8, 2, 9, 4, 8, 4, 6, 1, 10, 9, 9, 3, 7, 4, 7, 4, 6, 3, 8, 5, 10, 1, 6, 2, 5, 5, 8, 5, 7, 1, 6, 5, 8, 5, 7, 4, 10, 5, 10, 3, 6, 2, 5, 3, 8, 3, 8, 5, 7, 7, 7, 5, 10, 4, 7, 6, 8, 4, 8, 4, 10, 1, 7, 4, 10, 5, 9, 4, 6, 4, 6, 5, 10, 6, 10, 2, 8, 7, 10, 9, 10, 1, 5, 4, 9, 4, 10, 2, 6, 2, 3, 2, 4, 2, 5, 3, 10, 1, 10, 2, 5, 5, 9, 1, 5, 3, 8, 7, 9, 1, 9, 1, 6, 3, 7, 4, 7, 2, 10, 5, 8, 2, 5, 3, 7, 2, 8, 1, 7, 4, 8, 1, 7, 5, 6, 5, 7, 5, 7, 3, 6, 4, 9, 2, 3, 2, 4, 3, 4, 1, 5, 2, 4, 1, 9, 6, 10, 8, 10, 2, 2, 1, 6, 2, 6, 5, 8, 6, 10, 4, 7, 1, 10, 4, 10, 3, 8, 1, 5, 5, 9, 6, 9, 1, 5, 4, 7, 6, 8, 3, 8, 3, 4, 1, 9, 2, 9, 5, 8, 2, 5, 1, 7, 3, 10, 6, 7, 3, 5, 3, 4, 4, 6, 2, 6, 5, 7, 3, 7, 1, 6, 1, 9, 3, 4, 3, 8, 1, 7, 5, 8, 6, 10, 8, 10, 3, 10, 1, 9, 5, 10, 8, 10, 6, 10, 3, 8, 1, 6, 1, 4, 4, 7, 3, 5, 1, 10, 4, 10, 2, 7, 2, 10, 3, 9, 3, 9, 5, 7, 6, 7, 1, 6, 2, 6, 2, 6, 5, 9, 7, 8, 5, 8, 4, 7, 3, 8, 1, 7, 1, 3, 2, 9, 1, 6, 5, 5, 2, 5, 1, 10, 3, 4, 1, 7, 2, 4, 4, 9, 4, 9, 4, 8, 4, 10, 7, 9, 2, 8, 3, 7, 1, 10, 6, 8, 2, 8, 2, 10, 8, 10, 7, 8, 1, 9, 2, 6, 4, 5, 2, 3, 2, 8, 2, 7, 2, 9, 6, 8, 2, 9, 5, 7, 3, 7, 7, 10, 9, 10, 2, 9, 2, 6, 4, 9, 1, 9, 8, 10, 3, 7, 4, 6, 4, 9, 3, 10, 2, 7, 1, 6, 4, 8, 5, 7, 6, 9, 2, 10, 4, 6, 3, 10, 5, 10, 6, 10, 8, 9, 4, 8, 4, 6, 2, 8, 5, 5, 1, 7, 3, 5, 3, 9, 2, 9, 6, 10, 3, 9, 5, 9, 4, 9, 6, 8, 1, 4, 1, 10, 8, 8, 8, 9, 3, 8, 4, 10, 6, 8, 7, 10, 1, 3, 2, 10, 8, 9, 2, 6, 4, 5, 1, 5, 3, 4, 4, 8, 5, 7, 6, 8, 4, 7, 4, 10, 6, 10, 4, 7, 1, 5, 3, 7, 4, 4, 4, 10, 6, 8, 4, 10, 7, 7, 4, 5, 1, 7, 5, 10, 8, 9, 4, 10, 7, 10, 6, 9, 2, 5, 1, 7, 2, 9, 1, 9, 5, 8, 4, 4, 2, 7, 2, 10, 2, 3, 1, 4, 2, 7, 2, 4, 4, 9, 2, 10, 8, 10, 6, 10, 2, 7, 3, 6, 6, 9, 3, 5, 4, 9, 5, 9, 1, 6, 1, 4, 4, 9, 2, 5, 3, 10, 4, 4, 1, 9, 5, 10, 5, 8, 5, 5, 1, 10, 4, 4, 1, 5, 1, 4, 1, 2, 2, 2, 1, 9, 6, 9, 1, 7, 1, 7, 2, 2, 1, 4, 2, 4, 3, 9, 4, 10, 3, 9, 7, 7, 1, 9, 1, 4, 1, 4, 4, 8] TODO -[9998, 9999, 9996, 9997, 9994, 9995, 9992, 9993, 9990, 9991, 9988, 9989, 9986, 9987, 9984, 9985, 9982, 9983, 9980, 9981, 9978, 9979, 9976, 9977, 9974, 9975, 9972, 9973, 9970, 9971, 9968, 9969, 9966, 9967, 9964, 9965, 9962, 9963, 9960, 9961, 9958, 9959, 9956, 9957, 9954, 9955, 9952, 9953, 9950, 9951, 9948, 9949, 9946, 9947, 9944, 9945, 9942, 9943, 9940, 9941, 9938, 9939, 9936, 9937, 9934, 9935, 9932, 9933, 9930, 9931, 9928, 9929, 9926, 9927, 9924, 9925, 9922, 9923, 9920, 9921, 9918, 9919, 9916, 9917, 9914, 9915, 9912, 9913, 9910, 9911, 9908, 9909, 9906, 9907, 9904, 9905, 9902, 9903, 9900, 9901, 9898, 9899, 9896, 9897, 9894, 9895, 9892, 9893, 9890, 9891, 9888, 9889, 9886, 9887, 9884, 9885, 9882, 9883, 9880, 9881, 9878, 9879, 9876, 9877, 9874, 9875, 9872, 9873, 9870, 9871, 9868, 9869, 9866, 9867, 9864, 9865, 9862, 9863, 9860, 9861, 9858, 9859, 9856, 9857, 9854, 9855, 9852, 9853, 9850, 9851, 9848, 9849, 9846, 9847, 9844, 9845, 9842, 9843, 9840, 9841, 9838, 9839, 9836, 9837, 9834, 9835, 9832, 9833, 9830, 9831, 9828, 9829, 9826, 9827, 9824, 9825, 9822, 9823, 9820, 9821, 9818, 9819, 9816, 9817, 9814, 9815, 9812, 9813, 9810, 9811, 9808, 9809, 9806, 9807, 9804, 9805, 9802, 9803, 9800, 9801, 9798, 9799, 9796, 9797, 9794, 9795, 9792, 9793, 9790, 9791, 9788, 9789, 9786, 9787, 9784, 9785, 9782, 9783, 9780, 9781, 9778, 9779, 9776, 9777, 9774, 9775, 9772, 9773, 9770, 9771, 9768, 9769, 9766, 9767, 9764, 9765, 9762, 9763, 9760, 9761, 9758, 9759, 9756, 9757, 9754, 9755, 9752, 9753, 9750, 9751, 9748, 9749, 9746, 9747, 9744, 9745, 9742, 9743, 9740, 9741, 9738, 9739, 9736, 9737, 9734, 9735, 9732, 9733, 9730, 9731, 9728, 9729, 9726, 9727, 9724, 9725, 9722, 9723, 9720, 9721, 9718, 9719, 9716, 9717, 9714, 9715, 9712, 9713, 9710, 9711, 9708, 9709, 9706, 9707, 9704, 9705, 9702, 9703, 9700, 9701, 9698, 9699, 9696, 9697, 9694, 9695, 9692, 9693, 9690, 9691, 9688, 9689, 9686, 9687, 9684, 9685, 9682, 9683, 9680, 9681, 9678, 9679, 9676, 9677, 9674, 9675, 9672, 9673, 9670, 9671, 9668, 9669, 9666, 9667, 9664, 9665, 9662, 9663, 9660, 9661, 9658, 9659, 9656, 9657, 9654, 9655, 9652, 9653, 9650, 9651, 9648, 9649, 9646, 9647, 9644, 9645, 9642, 9643, 9640, 9641, 9638, 9639, 9636, 9637, 9634, 9635, 9632, 9633, 9630, 9631, 9628, 9629, 9626, 9627, 9624, 9625, 9622, 9623, 9620, 9621, 9618, 9619, 9616, 9617, 9614, 9615, 9612, 9613, 9610, 9611, 9608, 9609, 9606, 9607, 9604, 9605, 9602, 9603, 9600, 9601, 9598, 9599, 9596, 9597, 9594, 9595, 9592, 9593, 9590, 9591, 9588, 9589, 9586, 9587, 9584, 9585, 9582, 9583, 9580, 9581, 9578, 9579, 9576, 9577, 9574, 9575, 9572, 9573, 9570, 9571, 9568, 9569, 9566, 9567, 9564, 9565, 9562, 9563, 9560, 9561, 9558, 9559, 9556, 9557, 9554, 9555, 9552, 9553, 9550, 9551, 9548, 9549, 9546, 9547, 9544, 9545, 9542, 9543, 9540, 9541, 9538, 9539, 9536, 9537, 9534, 9535, 9532, 9533, 9530, 9531, 9528, 9529, 9526, 9527, 9524, 9525, 9522, 9523, 9520, 9521, 9518, 9519, 9516, 9517, 9514, 9515, 9512, 9513, 9510, 9511, 9508, 9509, 9506, 9507, 9504, 9505, 9502, 9503, 9500, 9501, 9498, 9499, 9496, 9497, 9494, 9495, 9492, 9493, 9490, 9491, 9488, 9489, 9486, 9487, 9484, 9485, 9482, 9483, 9480, 9481, 9478, 9479, 9476, 9477, 9474, 9475, 9472, 9473, 9470, 9471, 9468, 9469, 9466, 9467, 9464, 9465, 9462, 9463, 9460, 9461, 9458, 9459, 9456, 9457, 9454, 9455, 9452, 9453, 9450, 9451, 9448, 9449, 9446, 9447, 9444, 9445, 9442, 9443, 9440, 9441, 9438, 9439, 9436, 9437, 9434, 9435, 9432, 9433, 9430, 9431, 9428, 9429, 9426, 9427, 9424, 9425, 9422, 9423, 9420, 9421, 9418, 9419, 9416, 9417, 9414, 9415, 9412, 9413, 9410, 9411, 9408, 9409, 9406, 9407, 9404, 9405, 9402, 9403, 9400, 9401, 9398, 9399, 9396, 9397, 9394, 9395, 9392, 9393, 9390, 9391, 9388, 9389, 9386, 9387, 9384, 9385, 9382, 9383, 9380, 9381, 9378, 9379, 9376, 9377, 9374, 9375, 9372, 9373, 9370, 9371, 9368, 9369, 9366, 9367, 9364, 9365, 9362, 9363, 9360, 9361, 9358, 9359, 9356, 9357, 9354, 9355, 9352, 9353, 9350, 9351, 9348, 9349, 9346, 9347, 9344, 9345, 9342, 9343, 9340, 9341, 9338, 9339, 9336, 9337, 9334, 9335, 9332, 9333, 9330, 9331, 9328, 9329, 9326, 9327, 9324, 9325, 9322, 9323, 9320, 9321, 9318, 9319, 9316, 9317, 9314, 9315, 9312, 9313, 9310, 9311, 9308, 9309, 9306, 9307, 9304, 9305, 9302, 9303, 9300, 9301, 9298, 9299, 9296, 9297, 9294, 9295, 9292, 9293, 9290, 9291, 9288, 9289, 9286, 9287, 9284, 9285, 9282, 9283, 9280, 9281, 9278, 9279, 9276, 9277, 9274, 9275, 9272, 9273, 9270, 9271, 9268, 9269, 9266, 9267, 9264, 9265, 9262, 9263, 9260, 9261, 9258, 9259, 9256, 9257, 9254, 9255, 9252, 9253, 9250, 9251, 9248, 9249, 9246, 9247, 9244, 9245, 9242, 9243, 9240, 9241, 9238, 9239, 9236, 9237, 9234, 9235, 9232, 9233, 9230, 9231, 9228, 9229, 9226, 9227, 9224, 9225, 9222, 9223, 9220, 9221, 9218, 9219, 9216, 9217, 9214, 9215, 9212, 9213, 9210, 9211, 9208, 9209, 9206, 9207, 9204, 9205, 9202, 9203, 9200, 9201, 9198, 9199, 9196, 9197, 9194, 9195, 9192, 9193, 9190, 9191, 9188, 9189, 9186, 9187, 9184, 9185, 9182, 9183, 9180, 9181, 9178, 9179, 9176, 9177, 9174, 9175, 9172, 9173, 9170, 9171, 9168, 9169, 9166, 9167, 9164, 9165, 9162, 9163, 9160, 9161, 9158, 9159, 9156, 9157, 9154, 9155, 9152, 9153, 9150, 9151, 9148, 9149, 9146, 9147, 9144, 9145, 9142, 9143, 9140, 9141, 9138, 9139, 9136, 9137, 9134, 9135, 9132, 9133, 9130, 9131, 9128, 9129, 9126, 9127, 9124, 9125, 9122, 9123, 9120, 9121, 9118, 9119, 9116, 9117, 9114, 9115, 9112, 9113, 9110, 9111, 9108, 9109, 9106, 9107, 9104, 9105, 9102, 9103, 9100, 9101, 9098, 9099, 9096, 9097, 9094, 9095, 9092, 9093, 9090, 9091, 9088, 9089, 9086, 9087, 9084, 9085, 9082, 9083, 9080, 9081, 9078, 9079, 9076, 9077, 9074, 9075, 9072, 9073, 9070, 9071, 9068, 9069, 9066, 9067, 9064, 9065, 9062, 9063, 9060, 9061, 9058, 9059, 9056, 9057, 9054, 9055, 9052, 9053, 9050, 9051, 9048, 9049, 9046, 9047, 9044, 9045, 9042, 9043, 9040, 9041, 9038, 9039, 9036, 9037, 9034, 9035, 9032, 9033, 9030, 9031, 9028, 9029, 9026, 9027, 9024, 9025, 9022, 9023, 9020, 9021, 9018, 9019, 9016, 9017, 9014, 9015, 9012, 9013, 9010, 9011, 9008, 9009, 9006, 9007, 9004, 9005, 9002, 9003, 9000, 9001, 8998, 8999, 8996, 8997, 8994, 8995, 8992, 8993, 8990, 8991, 8988, 8989, 8986, 8987, 8984, 8985, 8982, 8983, 8980, 8981, 8978, 8979, 8976, 8977, 8974, 8975, 8972, 8973, 8970, 8971, 8968, 8969, 8966, 8967, 8964, 8965, 8962, 8963, 8960, 8961, 8958, 8959, 8956, 8957, 8954, 8955, 8952, 8953, 8950, 8951, 8948, 8949, 8946, 8947, 8944, 8945, 8942, 8943, 8940, 8941, 8938, 8939, 8936, 8937, 8934, 8935, 8932, 8933, 8930, 8931, 8928, 8929, 8926, 8927, 8924, 8925, 8922, 8923, 8920, 8921, 8918, 8919, 8916, 8917, 8914, 8915, 8912, 8913, 8910, 8911, 8908, 8909, 8906, 8907, 8904, 8905, 8902, 8903, 8900, 8901, 8898, 8899, 8896, 8897, 8894, 8895, 8892, 8893, 8890, 8891, 8888, 8889, 8886, 8887, 8884, 8885, 8882, 8883, 8880, 8881, 8878, 8879, 8876, 8877, 8874, 8875, 8872, 8873, 8870, 8871, 8868, 8869, 8866, 8867, 8864, 8865, 8862, 8863, 8860, 8861, 8858, 8859, 8856, 8857, 8854, 8855, 8852, 8853, 8850, 8851, 8848, 8849, 8846, 8847, 8844, 8845, 8842, 8843, 8840, 8841, 8838, 8839, 8836, 8837, 8834, 8835, 8832, 8833, 8830, 8831, 8828, 8829, 8826, 8827, 8824, 8825, 8822, 8823, 8820, 8821, 8818, 8819, 8816, 8817, 8814, 8815, 8812, 8813, 8810, 8811, 8808, 8809, 8806, 8807, 8804, 8805, 8802, 8803, 8800, 8801, 8798, 8799, 8796, 8797, 8794, 8795, 8792, 8793, 8790, 8791, 8788, 8789, 8786, 8787, 8784, 8785, 8782, 8783, 8780, 8781, 8778, 8779, 8776, 8777, 8774, 8775, 8772, 8773, 8770, 8771, 8768, 8769, 8766, 8767, 8764, 8765, 8762, 8763, 8760, 8761, 8758, 8759, 8756, 8757, 8754, 8755, 8752, 8753, 8750, 8751, 8748, 8749, 8746, 8747, 8744, 8745, 8742, 8743, 8740, 8741, 8738, 8739, 8736, 8737, 8734, 8735, 8732, 8733, 8730, 8731, 8728, 8729, 8726, 8727, 8724, 8725, 8722, 8723, 8720, 8721, 8718, 8719, 8716, 8717, 8714, 8715, 8712, 8713, 8710, 8711, 8708, 8709, 8706, 8707, 8704, 8705, 8702, 8703, 8700, 8701, 8698, 8699, 8696, 8697, 8694, 8695, 8692, 8693, 8690, 8691, 8688, 8689, 8686, 8687, 8684, 8685, 8682, 8683, 8680, 8681, 8678, 8679, 8676, 8677, 8674, 8675, 8672, 8673, 8670, 8671, 8668, 8669, 8666, 8667, 8664, 8665, 8662, 8663, 8660, 8661, 8658, 8659, 8656, 8657, 8654, 8655, 8652, 8653, 8650, 8651, 8648, 8649, 8646, 8647, 8644, 8645, 8642, 8643, 8640, 8641, 8638, 8639, 8636, 8637, 8634, 8635, 8632, 8633, 8630, 8631, 8628, 8629, 8626, 8627, 8624, 8625, 8622, 8623, 8620, 8621, 8618, 8619, 8616, 8617, 8614, 8615, 8612, 8613, 8610, 8611, 8608, 8609, 8606, 8607, 8604, 8605, 8602, 8603, 8600, 8601, 8598, 8599, 8596, 8597, 8594, 8595, 8592, 8593, 8590, 8591, 8588, 8589, 8586, 8587, 8584, 8585, 8582, 8583, 8580, 8581, 8578, 8579, 8576, 8577, 8574, 8575, 8572, 8573, 8570, 8571, 8568, 8569, 8566, 8567, 8564, 8565, 8562, 8563, 8560, 8561, 8558, 8559, 8556, 8557, 8554, 8555, 8552, 8553, 8550, 8551, 8548, 8549, 8546, 8547, 8544, 8545, 8542, 8543, 8540, 8541, 8538, 8539, 8536, 8537, 8534, 8535, 8532, 8533, 8530, 8531, 8528, 8529, 8526, 8527, 8524, 8525, 8522, 8523, 8520, 8521, 8518, 8519, 8516, 8517, 8514, 8515, 8512, 8513, 8510, 8511, 8508, 8509, 8506, 8507, 8504, 8505, 8502, 8503, 8500, 8501, 8498, 8499, 8496, 8497, 8494, 8495, 8492, 8493, 8490, 8491, 8488, 8489, 8486, 8487, 8484, 8485, 8482, 8483, 8480, 8481, 8478, 8479, 8476, 8477, 8474, 8475, 8472, 8473, 8470, 8471, 8468, 8469, 8466, 8467, 8464, 8465, 8462, 8463, 8460, 8461, 8458, 8459, 8456, 8457, 8454, 8455, 8452, 8453, 8450, 8451, 8448, 8449, 8446, 8447, 8444, 8445, 8442, 8443, 8440, 8441, 8438, 8439, 8436, 8437, 8434, 8435, 8432, 8433, 8430, 8431, 8428, 8429, 8426, 8427, 8424, 8425, 8422, 8423, 8420, 8421, 8418, 8419, 8416, 8417, 8414, 8415, 8412, 8413, 8410, 8411, 8408, 8409, 8406, 8407, 8404, 8405, 8402, 8403, 8400, 8401, 8398, 8399, 8396, 8397, 8394, 8395, 8392, 8393, 8390, 8391, 8388, 8389, 8386, 8387, 8384, 8385, 8382, 8383, 8380, 8381, 8378, 8379, 8376, 8377, 8374, 8375, 8372, 8373, 8370, 8371, 8368, 8369, 8366, 8367, 8364, 8365, 8362, 8363, 8360, 8361, 8358, 8359, 8356, 8357, 8354, 8355, 8352, 8353, 8350, 8351, 8348, 8349, 8346, 8347, 8344, 8345, 8342, 8343, 8340, 8341, 8338, 8339, 8336, 8337, 8334, 8335, 8332, 8333, 8330, 8331, 8328, 8329, 8326, 8327, 8324, 8325, 8322, 8323, 8320, 8321, 8318, 8319, 8316, 8317, 8314, 8315, 8312, 8313, 8310, 8311, 8308, 8309, 8306, 8307, 8304, 8305, 8302, 8303, 8300, 8301, 8298, 8299, 8296, 8297, 8294, 8295, 8292, 8293, 8290, 8291, 8288, 8289, 8286, 8287, 8284, 8285, 8282, 8283, 8280, 8281, 8278, 8279, 8276, 8277, 8274, 8275, 8272, 8273, 8270, 8271, 8268, 8269, 8266, 8267, 8264, 8265, 8262, 8263, 8260, 8261, 8258, 8259, 8256, 8257, 8254, 8255, 8252, 8253, 8250, 8251, 8248, 8249, 8246, 8247, 8244, 8245, 8242, 8243, 8240, 8241, 8238, 8239, 8236, 8237, 8234, 8235, 8232, 8233, 8230, 8231, 8228, 8229, 8226, 8227, 8224, 8225, 8222, 8223, 8220, 8221, 8218, 8219, 8216, 8217, 8214, 8215, 8212, 8213, 8210, 8211, 8208, 8209, 8206, 8207, 8204, 8205, 8202, 8203, 8200, 8201, 8198, 8199, 8196, 8197, 8194, 8195, 8192, 8193, 8190, 8191, 8188, 8189, 8186, 8187, 8184, 8185, 8182, 8183, 8180, 8181, 8178, 8179, 8176, 8177, 8174, 8175, 8172, 8173, 8170, 8171, 8168, 8169, 8166, 8167, 8164, 8165, 8162, 8163, 8160, 8161, 8158, 8159, 8156, 8157, 8154, 8155, 8152, 8153, 8150, 8151, 8148, 8149, 8146, 8147, 8144, 8145, 8142, 8143, 8140, 8141, 8138, 8139, 8136, 8137, 8134, 8135, 8132, 8133, 8130, 8131, 8128, 8129, 8126, 8127, 8124, 8125, 8122, 8123, 8120, 8121, 8118, 8119, 8116, 8117, 8114, 8115, 8112, 8113, 8110, 8111, 8108, 8109, 8106, 8107, 8104, 8105, 8102, 8103, 8100, 8101, 8098, 8099, 8096, 8097, 8094, 8095, 8092, 8093, 8090, 8091, 8088, 8089, 8086, 8087, 8084, 8085, 8082, 8083, 8080, 8081, 8078, 8079, 8076, 8077, 8074, 8075, 8072, 8073, 8070, 8071, 8068, 8069, 8066, 8067, 8064, 8065, 8062, 8063, 8060, 8061, 8058, 8059, 8056, 8057, 8054, 8055, 8052, 8053, 8050, 8051, 8048, 8049, 8046, 8047, 8044, 8045, 8042, 8043, 8040, 8041, 8038, 8039, 8036, 8037, 8034, 8035, 8032, 8033, 8030, 8031, 8028, 8029, 8026, 8027, 8024, 8025, 8022, 8023, 8020, 8021, 8018, 8019, 8016, 8017, 8014, 8015, 8012, 8013, 8010, 8011, 8008, 8009, 8006, 8007, 8004, 8005, 8002, 8003, 8000, 8001, 7998, 7999, 7996, 7997, 7994, 7995, 7992, 7993, 7990, 7991, 7988, 7989, 7986, 7987, 7984, 7985, 7982, 7983, 7980, 7981, 7978, 7979, 7976, 7977, 7974, 7975, 7972, 7973, 7970, 7971, 7968, 7969, 7966, 7967, 7964, 7965, 7962, 7963, 7960, 7961, 7958, 7959, 7956, 7957, 7954, 7955, 7952, 7953, 7950, 7951, 7948, 7949, 7946, 7947, 7944, 7945, 7942, 7943, 7940, 7941, 7938, 7939, 7936, 7937, 7934, 7935, 7932, 7933, 7930, 7931, 7928, 7929, 7926, 7927, 7924, 7925, 7922, 7923, 7920, 7921, 7918, 7919, 7916, 7917, 7914, 7915, 7912, 7913, 7910, 7911, 7908, 7909, 7906, 7907, 7904, 7905, 7902, 7903, 7900, 7901, 7898, 7899, 7896, 7897, 7894, 7895, 7892, 7893, 7890, 7891, 7888, 7889, 7886, 7887, 7884, 7885, 7882, 7883, 7880, 7881, 7878, 7879, 7876, 7877, 7874, 7875, 7872, 7873, 7870, 7871, 7868, 7869, 7866, 7867, 7864, 7865, 7862, 7863, 7860, 7861, 7858, 7859, 7856, 7857, 7854, 7855, 7852, 7853, 7850, 7851, 7848, 7849, 7846, 7847, 7844, 7845, 7842, 7843, 7840, 7841, 7838, 7839, 7836, 7837, 7834, 7835, 7832, 7833, 7830, 7831, 7828, 7829, 7826, 7827, 7824, 7825, 7822, 7823, 7820, 7821, 7818, 7819, 7816, 7817, 7814, 7815, 7812, 7813, 7810, 7811, 7808, 7809, 7806, 7807, 7804, 7805, 7802, 7803, 7800, 7801, 7798, 7799, 7796, 7797, 7794, 7795, 7792, 7793, 7790, 7791, 7788, 7789, 7786, 7787, 7784, 7785, 7782, 7783, 7780, 7781, 7778, 7779, 7776, 7777, 7774, 7775, 7772, 7773, 7770, 7771, 7768, 7769, 7766, 7767, 7764, 7765, 7762, 7763, 7760, 7761, 7758, 7759, 7756, 7757, 7754, 7755, 7752, 7753, 7750, 7751, 7748, 7749, 7746, 7747, 7744, 7745, 7742, 7743, 7740, 7741, 7738, 7739, 7736, 7737, 7734, 7735, 7732, 7733, 7730, 7731, 7728, 7729, 7726, 7727, 7724, 7725, 7722, 7723, 7720, 7721, 7718, 7719, 7716, 7717, 7714, 7715, 7712, 7713, 7710, 7711, 7708, 7709, 7706, 7707, 7704, 7705, 7702, 7703, 7700, 7701, 7698, 7699, 7696, 7697, 7694, 7695, 7692, 7693, 7690, 7691, 7688, 7689, 7686, 7687, 7684, 7685, 7682, 7683, 7680, 7681, 7678, 7679, 7676, 7677, 7674, 7675, 7672, 7673, 7670, 7671, 7668, 7669, 7666, 7667, 7664, 7665, 7662, 7663, 7660, 7661, 7658, 7659, 7656, 7657, 7654, 7655, 7652, 7653, 7650, 7651, 7648, 7649, 7646, 7647, 7644, 7645, 7642, 7643, 7640, 7641, 7638, 7639, 7636, 7637, 7634, 7635, 7632, 7633, 7630, 7631, 7628, 7629, 7626, 7627, 7624, 7625, 7622, 7623, 7620, 7621, 7618, 7619, 7616, 7617, 7614, 7615, 7612, 7613, 7610, 7611, 7608, 7609, 7606, 7607, 7604, 7605, 7602, 7603, 7600, 7601, 7598, 7599, 7596, 7597, 7594, 7595, 7592, 7593, 7590, 7591, 7588, 7589, 7586, 7587, 7584, 7585, 7582, 7583, 7580, 7581, 7578, 7579, 7576, 7577, 7574, 7575, 7572, 7573, 7570, 7571, 7568, 7569, 7566, 7567, 7564, 7565, 7562, 7563, 7560, 7561, 7558, 7559, 7556, 7557, 7554, 7555, 7552, 7553, 7550, 7551, 7548, 7549, 7546, 7547, 7544, 7545, 7542, 7543, 7540, 7541, 7538, 7539, 7536, 7537, 7534, 7535, 7532, 7533, 7530, 7531, 7528, 7529, 7526, 7527, 7524, 7525, 7522, 7523, 7520, 7521, 7518, 7519, 7516, 7517, 7514, 7515, 7512, 7513, 7510, 7511, 7508, 7509, 7506, 7507, 7504, 7505, 7502, 7503, 7500, 7501, 7498, 7499, 7496, 7497, 7494, 7495, 7492, 7493, 7490, 7491, 7488, 7489, 7486, 7487, 7484, 7485, 7482, 7483, 7480, 7481, 7478, 7479, 7476, 7477, 7474, 7475, 7472, 7473, 7470, 7471, 7468, 7469, 7466, 7467, 7464, 7465, 7462, 7463, 7460, 7461, 7458, 7459, 7456, 7457, 7454, 7455, 7452, 7453, 7450, 7451, 7448, 7449, 7446, 7447, 7444, 7445, 7442, 7443, 7440, 7441, 7438, 7439, 7436, 7437, 7434, 7435, 7432, 7433, 7430, 7431, 7428, 7429, 7426, 7427, 7424, 7425, 7422, 7423, 7420, 7421, 7418, 7419, 7416, 7417, 7414, 7415, 7412, 7413, 7410, 7411, 7408, 7409, 7406, 7407, 7404, 7405, 7402, 7403, 7400, 7401, 7398, 7399, 7396, 7397, 7394, 7395, 7392, 7393, 7390, 7391, 7388, 7389, 7386, 7387, 7384, 7385, 7382, 7383, 7380, 7381, 7378, 7379, 7376, 7377, 7374, 7375, 7372, 7373, 7370, 7371, 7368, 7369, 7366, 7367, 7364, 7365, 7362, 7363, 7360, 7361, 7358, 7359, 7356, 7357, 7354, 7355, 7352, 7353, 7350, 7351, 7348, 7349, 7346, 7347, 7344, 7345, 7342, 7343, 7340, 7341, 7338, 7339, 7336, 7337, 7334, 7335, 7332, 7333, 7330, 7331, 7328, 7329, 7326, 7327, 7324, 7325, 7322, 7323, 7320, 7321, 7318, 7319, 7316, 7317, 7314, 7315, 7312, 7313, 7310, 7311, 7308, 7309, 7306, 7307, 7304, 7305, 7302, 7303, 7300, 7301, 7298, 7299, 7296, 7297, 7294, 7295, 7292, 7293, 7290, 7291, 7288, 7289, 7286, 7287, 7284, 7285, 7282, 7283, 7280, 7281, 7278, 7279, 7276, 7277, 7274, 7275, 7272, 7273, 7270, 7271, 7268, 7269, 7266, 7267, 7264, 7265, 7262, 7263, 7260, 7261, 7258, 7259, 7256, 7257, 7254, 7255, 7252, 7253, 7250, 7251, 7248, 7249, 7246, 7247, 7244, 7245, 7242, 7243, 7240, 7241, 7238, 7239, 7236, 7237, 7234, 7235, 7232, 7233, 7230, 7231, 7228, 7229, 7226, 7227, 7224, 7225, 7222, 7223, 7220, 7221, 7218, 7219, 7216, 7217, 7214, 7215, 7212, 7213, 7210, 7211, 7208, 7209, 7206, 7207, 7204, 7205, 7202, 7203, 7200, 7201, 7198, 7199, 7196, 7197, 7194, 7195, 7192, 7193, 7190, 7191, 7188, 7189, 7186, 7187, 7184, 7185, 7182, 7183, 7180, 7181, 7178, 7179, 7176, 7177, 7174, 7175, 7172, 7173, 7170, 7171, 7168, 7169, 7166, 7167, 7164, 7165, 7162, 7163, 7160, 7161, 7158, 7159, 7156, 7157, 7154, 7155, 7152, 7153, 7150, 7151, 7148, 7149, 7146, 7147, 7144, 7145, 7142, 7143, 7140, 7141, 7138, 7139, 7136, 7137, 7134, 7135, 7132, 7133, 7130, 7131, 7128, 7129, 7126, 7127, 7124, 7125, 7122, 7123, 7120, 7121, 7118, 7119, 7116, 7117, 7114, 7115, 7112, 7113, 7110, 7111, 7108, 7109, 7106, 7107, 7104, 7105, 7102, 7103, 7100, 7101, 7098, 7099, 7096, 7097, 7094, 7095, 7092, 7093, 7090, 7091, 7088, 7089, 7086, 7087, 7084, 7085, 7082, 7083, 7080, 7081, 7078, 7079, 7076, 7077, 7074, 7075, 7072, 7073, 7070, 7071, 7068, 7069, 7066, 7067, 7064, 7065, 7062, 7063, 7060, 7061, 7058, 7059, 7056, 7057, 7054, 7055, 7052, 7053, 7050, 7051, 7048, 7049, 7046, 7047, 7044, 7045, 7042, 7043, 7040, 7041, 7038, 7039, 7036, 7037, 7034, 7035, 7032, 7033, 7030, 7031, 7028, 7029, 7026, 7027, 7024, 7025, 7022, 7023, 7020, 7021, 7018, 7019, 7016, 7017, 7014, 7015, 7012, 7013, 7010, 7011, 7008, 7009, 7006, 7007, 7004, 7005, 7002, 7003, 7000, 7001, 6998, 6999, 6996, 6997, 6994, 6995, 6992, 6993, 6990, 6991, 6988, 6989, 6986, 6987, 6984, 6985, 6982, 6983, 6980, 6981, 6978, 6979, 6976, 6977, 6974, 6975, 6972, 6973, 6970, 6971, 6968, 6969, 6966, 6967, 6964, 6965, 6962, 6963, 6960, 6961, 6958, 6959, 6956, 6957, 6954, 6955, 6952, 6953, 6950, 6951, 6948, 6949, 6946, 6947, 6944, 6945, 6942, 6943, 6940, 6941, 6938, 6939, 6936, 6937, 6934, 6935, 6932, 6933, 6930, 6931, 6928, 6929, 6926, 6927, 6924, 6925, 6922, 6923, 6920, 6921, 6918, 6919, 6916, 6917, 6914, 6915, 6912, 6913, 6910, 6911, 6908, 6909, 6906, 6907, 6904, 6905, 6902, 6903, 6900, 6901, 6898, 6899, 6896, 6897, 6894, 6895, 6892, 6893, 6890, 6891, 6888, 6889, 6886, 6887, 6884, 6885, 6882, 6883, 6880, 6881, 6878, 6879, 6876, 6877, 6874, 6875, 6872, 6873, 6870, 6871, 6868, 6869, 6866, 6867, 6864, 6865, 6862, 6863, 6860, 6861, 6858, 6859, 6856, 6857, 6854, 6855, 6852, 6853, 6850, 6851, 6848, 6849, 6846, 6847, 6844, 6845, 6842, 6843, 6840, 6841, 6838, 6839, 6836, 6837, 6834, 6835, 6832, 6833, 6830, 6831, 6828, 6829, 6826, 6827, 6824, 6825, 6822, 6823, 6820, 6821, 6818, 6819, 6816, 6817, 6814, 6815, 6812, 6813, 6810, 6811, 6808, 6809, 6806, 6807, 6804, 6805, 6802, 6803, 6800, 6801, 6798, 6799, 6796, 6797, 6794, 6795, 6792, 6793, 6790, 6791, 6788, 6789, 6786, 6787, 6784, 6785, 6782, 6783, 6780, 6781, 6778, 6779, 6776, 6777, 6774, 6775, 6772, 6773, 6770, 6771, 6768, 6769, 6766, 6767, 6764, 6765, 6762, 6763, 6760, 6761, 6758, 6759, 6756, 6757, 6754, 6755, 6752, 6753, 6750, 6751, 6748, 6749, 6746, 6747, 6744, 6745, 6742, 6743, 6740, 6741, 6738, 6739, 6736, 6737, 6734, 6735, 6732, 6733, 6730, 6731, 6728, 6729, 6726, 6727, 6724, 6725, 6722, 6723, 6720, 6721, 6718, 6719, 6716, 6717, 6714, 6715, 6712, 6713, 6710, 6711, 6708, 6709, 6706, 6707, 6704, 6705, 6702, 6703, 6700, 6701, 6698, 6699, 6696, 6697, 6694, 6695, 6692, 6693, 6690, 6691, 6688, 6689, 6686, 6687, 6684, 6685, 6682, 6683, 6680, 6681, 6678, 6679, 6676, 6677, 6674, 6675, 6672, 6673, 6670, 6671, 6668, 6669, 6666, 6667, 6664, 6665, 6662, 6663, 6660, 6661, 6658, 6659, 6656, 6657, 6654, 6655, 6652, 6653, 6650, 6651, 6648, 6649, 6646, 6647, 6644, 6645, 6642, 6643, 6640, 6641, 6638, 6639, 6636, 6637, 6634, 6635, 6632, 6633, 6630, 6631, 6628, 6629, 6626, 6627, 6624, 6625, 6622, 6623, 6620, 6621, 6618, 6619, 6616, 6617, 6614, 6615, 6612, 6613, 6610, 6611, 6608, 6609, 6606, 6607, 6604, 6605, 6602, 6603, 6600, 6601, 6598, 6599, 6596, 6597, 6594, 6595, 6592, 6593, 6590, 6591, 6588, 6589, 6586, 6587, 6584, 6585, 6582, 6583, 6580, 6581, 6578, 6579, 6576, 6577, 6574, 6575, 6572, 6573, 6570, 6571, 6568, 6569, 6566, 6567, 6564, 6565, 6562, 6563, 6560, 6561, 6558, 6559, 6556, 6557, 6554, 6555, 6552, 6553, 6550, 6551, 6548, 6549, 6546, 6547, 6544, 6545, 6542, 6543, 6540, 6541, 6538, 6539, 6536, 6537, 6534, 6535, 6532, 6533, 6530, 6531, 6528, 6529, 6526, 6527, 6524, 6525, 6522, 6523, 6520, 6521, 6518, 6519, 6516, 6517, 6514, 6515, 6512, 6513, 6510, 6511, 6508, 6509, 6506, 6507, 6504, 6505, 6502, 6503, 6500, 6501, 6498, 6499, 6496, 6497, 6494, 6495, 6492, 6493, 6490, 6491, 6488, 6489, 6486, 6487, 6484, 6485, 6482, 6483, 6480, 6481, 6478, 6479, 6476, 6477, 6474, 6475, 6472, 6473, 6470, 6471, 6468, 6469, 6466, 6467, 6464, 6465, 6462, 6463, 6460, 6461, 6458, 6459, 6456, 6457, 6454, 6455, 6452, 6453, 6450, 6451, 6448, 6449, 6446, 6447, 6444, 6445, 6442, 6443, 6440, 6441, 6438, 6439, 6436, 6437, 6434, 6435, 6432, 6433, 6430, 6431, 6428, 6429, 6426, 6427, 6424, 6425, 6422, 6423, 6420, 6421, 6418, 6419, 6416, 6417, 6414, 6415, 6412, 6413, 6410, 6411, 6408, 6409, 6406, 6407, 6404, 6405, 6402, 6403, 6400, 6401, 6398, 6399, 6396, 6397, 6394, 6395, 6392, 6393, 6390, 6391, 6388, 6389, 6386, 6387, 6384, 6385, 6382, 6383, 6380, 6381, 6378, 6379, 6376, 6377, 6374, 6375, 6372, 6373, 6370, 6371, 6368, 6369, 6366, 6367, 6364, 6365, 6362, 6363, 6360, 6361, 6358, 6359, 6356, 6357, 6354, 6355, 6352, 6353, 6350, 6351, 6348, 6349, 6346, 6347, 6344, 6345, 6342, 6343, 6340, 6341, 6338, 6339, 6336, 6337, 6334, 6335, 6332, 6333, 6330, 6331, 6328, 6329, 6326, 6327, 6324, 6325, 6322, 6323, 6320, 6321, 6318, 6319, 6316, 6317, 6314, 6315, 6312, 6313, 6310, 6311, 6308, 6309, 6306, 6307, 6304, 6305, 6302, 6303, 6300, 6301, 6298, 6299, 6296, 6297, 6294, 6295, 6292, 6293, 6290, 6291, 6288, 6289, 6286, 6287, 6284, 6285, 6282, 6283, 6280, 6281, 6278, 6279, 6276, 6277, 6274, 6275, 6272, 6273, 6270, 6271, 6268, 6269, 6266, 6267, 6264, 6265, 6262, 6263, 6260, 6261, 6258, 6259, 6256, 6257, 6254, 6255, 6252, 6253, 6250, 6251, 6248, 6249, 6246, 6247, 6244, 6245, 6242, 6243, 6240, 6241, 6238, 6239, 6236, 6237, 6234, 6235, 6232, 6233, 6230, 6231, 6228, 6229, 6226, 6227, 6224, 6225, 6222, 6223, 6220, 6221, 6218, 6219, 6216, 6217, 6214, 6215, 6212, 6213, 6210, 6211, 6208, 6209, 6206, 6207, 6204, 6205, 6202, 6203, 6200, 6201, 6198, 6199, 6196, 6197, 6194, 6195, 6192, 6193, 6190, 6191, 6188, 6189, 6186, 6187, 6184, 6185, 6182, 6183, 6180, 6181, 6178, 6179, 6176, 6177, 6174, 6175, 6172, 6173, 6170, 6171, 6168, 6169, 6166, 6167, 6164, 6165, 6162, 6163, 6160, 6161, 6158, 6159, 6156, 6157, 6154, 6155, 6152, 6153, 6150, 6151, 6148, 6149, 6146, 6147, 6144, 6145, 6142, 6143, 6140, 6141, 6138, 6139, 6136, 6137, 6134, 6135, 6132, 6133, 6130, 6131, 6128, 6129, 6126, 6127, 6124, 6125, 6122, 6123, 6120, 6121, 6118, 6119, 6116, 6117, 6114, 6115, 6112, 6113, 6110, 6111, 6108, 6109, 6106, 6107, 6104, 6105, 6102, 6103, 6100, 6101, 6098, 6099, 6096, 6097, 6094, 6095, 6092, 6093, 6090, 6091, 6088, 6089, 6086, 6087, 6084, 6085, 6082, 6083, 6080, 6081, 6078, 6079, 6076, 6077, 6074, 6075, 6072, 6073, 6070, 6071, 6068, 6069, 6066, 6067, 6064, 6065, 6062, 6063, 6060, 6061, 6058, 6059, 6056, 6057, 6054, 6055, 6052, 6053, 6050, 6051, 6048, 6049, 6046, 6047, 6044, 6045, 6042, 6043, 6040, 6041, 6038, 6039, 6036, 6037, 6034, 6035, 6032, 6033, 6030, 6031, 6028, 6029, 6026, 6027, 6024, 6025, 6022, 6023, 6020, 6021, 6018, 6019, 6016, 6017, 6014, 6015, 6012, 6013, 6010, 6011, 6008, 6009, 6006, 6007, 6004, 6005, 6002, 6003, 6000, 6001, 5998, 5999, 5996, 5997, 5994, 5995, 5992, 5993, 5990, 5991, 5988, 5989, 5986, 5987, 5984, 5985, 5982, 5983, 5980, 5981, 5978, 5979, 5976, 5977, 5974, 5975, 5972, 5973, 5970, 5971, 5968, 5969, 5966, 5967, 5964, 5965, 5962, 5963, 5960, 5961, 5958, 5959, 5956, 5957, 5954, 5955, 5952, 5953, 5950, 5951, 5948, 5949, 5946, 5947, 5944, 5945, 5942, 5943, 5940, 5941, 5938, 5939, 5936, 5937, 5934, 5935, 5932, 5933, 5930, 5931, 5928, 5929, 5926, 5927, 5924, 5925, 5922, 5923, 5920, 5921, 5918, 5919, 5916, 5917, 5914, 5915, 5912, 5913, 5910, 5911, 5908, 5909, 5906, 5907, 5904, 5905, 5902, 5903, 5900, 5901, 5898, 5899, 5896, 5897, 5894, 5895, 5892, 5893, 5890, 5891, 5888, 5889, 5886, 5887, 5884, 5885, 5882, 5883, 5880, 5881, 5878, 5879, 5876, 5877, 5874, 5875, 5872, 5873, 5870, 5871, 5868, 5869, 5866, 5867, 5864, 5865, 5862, 5863, 5860, 5861, 5858, 5859, 5856, 5857, 5854, 5855, 5852, 5853, 5850, 5851, 5848, 5849, 5846, 5847, 5844, 5845, 5842, 5843, 5840, 5841, 5838, 5839, 5836, 5837, 5834, 5835, 5832, 5833, 5830, 5831, 5828, 5829, 5826, 5827, 5824, 5825, 5822, 5823, 5820, 5821, 5818, 5819, 5816, 5817, 5814, 5815, 5812, 5813, 5810, 5811, 5808, 5809, 5806, 5807, 5804, 5805, 5802, 5803, 5800, 5801, 5798, 5799, 5796, 5797, 5794, 5795, 5792, 5793, 5790, 5791, 5788, 5789, 5786, 5787, 5784, 5785, 5782, 5783, 5780, 5781, 5778, 5779, 5776, 5777, 5774, 5775, 5772, 5773, 5770, 5771, 5768, 5769, 5766, 5767, 5764, 5765, 5762, 5763, 5760, 5761, 5758, 5759, 5756, 5757, 5754, 5755, 5752, 5753, 5750, 5751, 5748, 5749, 5746, 5747, 5744, 5745, 5742, 5743, 5740, 5741, 5738, 5739, 5736, 5737, 5734, 5735, 5732, 5733, 5730, 5731, 5728, 5729, 5726, 5727, 5724, 5725, 5722, 5723, 5720, 5721, 5718, 5719, 5716, 5717, 5714, 5715, 5712, 5713, 5710, 5711, 5708, 5709, 5706, 5707, 5704, 5705, 5702, 5703, 5700, 5701, 5698, 5699, 5696, 5697, 5694, 5695, 5692, 5693, 5690, 5691, 5688, 5689, 5686, 5687, 5684, 5685, 5682, 5683, 5680, 5681, 5678, 5679, 5676, 5677, 5674, 5675, 5672, 5673, 5670, 5671, 5668, 5669, 5666, 5667, 5664, 5665, 5662, 5663, 5660, 5661, 5658, 5659, 5656, 5657, 5654, 5655, 5652, 5653, 5650, 5651, 5648, 5649, 5646, 5647, 5644, 5645, 5642, 5643, 5640, 5641, 5638, 5639, 5636, 5637, 5634, 5635, 5632, 5633, 5630, 5631, 5628, 5629, 5626, 5627, 5624, 5625, 5622, 5623, 5620, 5621, 5618, 5619, 5616, 5617, 5614, 5615, 5612, 5613, 5610, 5611, 5608, 5609, 5606, 5607, 5604, 5605, 5602, 5603, 5600, 5601, 5598, 5599, 5596, 5597, 5594, 5595, 5592, 5593, 5590, 5591, 5588, 5589, 5586, 5587, 5584, 5585, 5582, 5583, 5580, 5581, 5578, 5579, 5576, 5577, 5574, 5575, 5572, 5573, 5570, 5571, 5568, 5569, 5566, 5567, 5564, 5565, 5562, 5563, 5560, 5561, 5558, 5559, 5556, 5557, 5554, 5555, 5552, 5553, 5550, 5551, 5548, 5549, 5546, 5547, 5544, 5545, 5542, 5543, 5540, 5541, 5538, 5539, 5536, 5537, 5534, 5535, 5532, 5533, 5530, 5531, 5528, 5529, 5526, 5527, 5524, 5525, 5522, 5523, 5520, 5521, 5518, 5519, 5516, 5517, 5514, 5515, 5512, 5513, 5510, 5511, 5508, 5509, 5506, 5507, 5504, 5505, 5502, 5503, 5500, 5501, 5498, 5499, 5496, 5497, 5494, 5495, 5492, 5493, 5490, 5491, 5488, 5489, 5486, 5487, 5484, 5485, 5482, 5483, 5480, 5481, 5478, 5479, 5476, 5477, 5474, 5475, 5472, 5473, 5470, 5471, 5468, 5469, 5466, 5467, 5464, 5465, 5462, 5463, 5460, 5461, 5458, 5459, 5456, 5457, 5454, 5455, 5452, 5453, 5450, 5451, 5448, 5449, 5446, 5447, 5444, 5445, 5442, 5443, 5440, 5441, 5438, 5439, 5436, 5437, 5434, 5435, 5432, 5433, 5430, 5431, 5428, 5429, 5426, 5427, 5424, 5425, 5422, 5423, 5420, 5421, 5418, 5419, 5416, 5417, 5414, 5415, 5412, 5413, 5410, 5411, 5408, 5409, 5406, 5407, 5404, 5405, 5402, 5403, 5400, 5401, 5398, 5399, 5396, 5397, 5394, 5395, 5392, 5393, 5390, 5391, 5388, 5389, 5386, 5387, 5384, 5385, 5382, 5383, 5380, 5381, 5378, 5379, 5376, 5377, 5374, 5375, 5372, 5373, 5370, 5371, 5368, 5369, 5366, 5367, 5364, 5365, 5362, 5363, 5360, 5361, 5358, 5359, 5356, 5357, 5354, 5355, 5352, 5353, 5350, 5351, 5348, 5349, 5346, 5347, 5344, 5345, 5342, 5343, 5340, 5341, 5338, 5339, 5336, 5337, 5334, 5335, 5332, 5333, 5330, 5331, 5328, 5329, 5326, 5327, 5324, 5325, 5322, 5323, 5320, 5321, 5318, 5319, 5316, 5317, 5314, 5315, 5312, 5313, 5310, 5311, 5308, 5309, 5306, 5307, 5304, 5305, 5302, 5303, 5300, 5301, 5298, 5299, 5296, 5297, 5294, 5295, 5292, 5293, 5290, 5291, 5288, 5289, 5286, 5287, 5284, 5285, 5282, 5283, 5280, 5281, 5278, 5279, 5276, 5277, 5274, 5275, 5272, 5273, 5270, 5271, 5268, 5269, 5266, 5267, 5264, 5265, 5262, 5263, 5260, 5261, 5258, 5259, 5256, 5257, 5254, 5255, 5252, 5253, 5250, 5251, 5248, 5249, 5246, 5247, 5244, 5245, 5242, 5243, 5240, 5241, 5238, 5239, 5236, 5237, 5234, 5235, 5232, 5233, 5230, 5231, 5228, 5229, 5226, 5227, 5224, 5225, 5222, 5223, 5220, 5221, 5218, 5219, 5216, 5217, 5214, 5215, 5212, 5213, 5210, 5211, 5208, 5209, 5206, 5207, 5204, 5205, 5202, 5203, 5200, 5201, 5198, 5199, 5196, 5197, 5194, 5195, 5192, 5193, 5190, 5191, 5188, 5189, 5186, 5187, 5184, 5185, 5182, 5183, 5180, 5181, 5178, 5179, 5176, 5177, 5174, 5175, 5172, 5173, 5170, 5171, 5168, 5169, 5166, 5167, 5164, 5165, 5162, 5163, 5160, 5161, 5158, 5159, 5156, 5157, 5154, 5155, 5152, 5153, 5150, 5151, 5148, 5149, 5146, 5147, 5144, 5145, 5142, 5143, 5140, 5141, 5138, 5139, 5136, 5137, 5134, 5135, 5132, 5133, 5130, 5131, 5128, 5129, 5126, 5127, 5124, 5125, 5122, 5123, 5120, 5121, 5118, 5119, 5116, 5117, 5114, 5115, 5112, 5113, 5110, 5111, 5108, 5109, 5106, 5107, 5104, 5105, 5102, 5103, 5100, 5101, 5098, 5099, 5096, 5097, 5094, 5095, 5092, 5093, 5090, 5091, 5088, 5089, 5086, 5087, 5084, 5085, 5082, 5083, 5080, 5081, 5078, 5079, 5076, 5077, 5074, 5075, 5072, 5073, 5070, 5071, 5068, 5069, 5066, 5067, 5064, 5065, 5062, 5063, 5060, 5061, 5058, 5059, 5056, 5057, 5054, 5055, 5052, 5053, 5050, 5051, 5048, 5049, 5046, 5047, 5044, 5045, 5042, 5043, 5040, 5041, 5038, 5039, 5036, 5037, 5034, 5035, 5032, 5033, 5030, 5031, 5028, 5029, 5026, 5027, 5024, 5025, 5022, 5023, 5020, 5021, 5018, 5019, 5016, 5017, 5014, 5015, 5012, 5013, 5010, 5011, 5008, 5009, 5006, 5007, 5004, 5005, 5002, 5003, 5000, 5001, 4998, 4999, 4996, 4997, 4994, 4995, 4992, 4993, 4990, 4991, 4988, 4989, 4986, 4987, 4984, 4985, 4982, 4983, 4980, 4981, 4978, 4979, 4976, 4977, 4974, 4975, 4972, 4973, 4970, 4971, 4968, 4969, 4966, 4967, 4964, 4965, 4962, 4963, 4960, 4961, 4958, 4959, 4956, 4957, 4954, 4955, 4952, 4953, 4950, 4951, 4948, 4949, 4946, 4947, 4944, 4945, 4942, 4943, 4940, 4941, 4938, 4939, 4936, 4937, 4934, 4935, 4932, 4933, 4930, 4931, 4928, 4929, 4926, 4927, 4924, 4925, 4922, 4923, 4920, 4921, 4918, 4919, 4916, 4917, 4914, 4915, 4912, 4913, 4910, 4911, 4908, 4909, 4906, 4907, 4904, 4905, 4902, 4903, 4900, 4901, 4898, 4899, 4896, 4897, 4894, 4895, 4892, 4893, 4890, 4891, 4888, 4889, 4886, 4887, 4884, 4885, 4882, 4883, 4880, 4881, 4878, 4879, 4876, 4877, 4874, 4875, 4872, 4873, 4870, 4871, 4868, 4869, 4866, 4867, 4864, 4865, 4862, 4863, 4860, 4861, 4858, 4859, 4856, 4857, 4854, 4855, 4852, 4853, 4850, 4851, 4848, 4849, 4846, 4847, 4844, 4845, 4842, 4843, 4840, 4841, 4838, 4839, 4836, 4837, 4834, 4835, 4832, 4833, 4830, 4831, 4828, 4829, 4826, 4827, 4824, 4825, 4822, 4823, 4820, 4821, 4818, 4819, 4816, 4817, 4814, 4815, 4812, 4813, 4810, 4811, 4808, 4809, 4806, 4807, 4804, 4805, 4802, 4803, 4800, 4801, 4798, 4799, 4796, 4797, 4794, 4795, 4792, 4793, 4790, 4791, 4788, 4789, 4786, 4787, 4784, 4785, 4782, 4783, 4780, 4781, 4778, 4779, 4776, 4777, 4774, 4775, 4772, 4773, 4770, 4771, 4768, 4769, 4766, 4767, 4764, 4765, 4762, 4763, 4760, 4761, 4758, 4759, 4756, 4757, 4754, 4755, 4752, 4753, 4750, 4751, 4748, 4749, 4746, 4747, 4744, 4745, 4742, 4743, 4740, 4741, 4738, 4739, 4736, 4737, 4734, 4735, 4732, 4733, 4730, 4731, 4728, 4729, 4726, 4727, 4724, 4725, 4722, 4723, 4720, 4721, 4718, 4719, 4716, 4717, 4714, 4715, 4712, 4713, 4710, 4711, 4708, 4709, 4706, 4707, 4704, 4705, 4702, 4703, 4700, 4701, 4698, 4699, 4696, 4697, 4694, 4695, 4692, 4693, 4690, 4691, 4688, 4689, 4686, 4687, 4684, 4685, 4682, 4683, 4680, 4681, 4678, 4679, 4676, 4677, 4674, 4675, 4672, 4673, 4670, 4671, 4668, 4669, 4666, 4667, 4664, 4665, 4662, 4663, 4660, 4661, 4658, 4659, 4656, 4657, 4654, 4655, 4652, 4653, 4650, 4651, 4648, 4649, 4646, 4647, 4644, 4645, 4642, 4643, 4640, 4641, 4638, 4639, 4636, 4637, 4634, 4635, 4632, 4633, 4630, 4631, 4628, 4629, 4626, 4627, 4624, 4625, 4622, 4623, 4620, 4621, 4618, 4619, 4616, 4617, 4614, 4615, 4612, 4613, 4610, 4611, 4608, 4609, 4606, 4607, 4604, 4605, 4602, 4603, 4600, 4601, 4598, 4599, 4596, 4597, 4594, 4595, 4592, 4593, 4590, 4591, 4588, 4589, 4586, 4587, 4584, 4585, 4582, 4583, 4580, 4581, 4578, 4579, 4576, 4577, 4574, 4575, 4572, 4573, 4570, 4571, 4568, 4569, 4566, 4567, 4564, 4565, 4562, 4563, 4560, 4561, 4558, 4559, 4556, 4557, 4554, 4555, 4552, 4553, 4550, 4551, 4548, 4549, 4546, 4547, 4544, 4545, 4542, 4543, 4540, 4541, 4538, 4539, 4536, 4537, 4534, 4535, 4532, 4533, 4530, 4531, 4528, 4529, 4526, 4527, 4524, 4525, 4522, 4523, 4520, 4521, 4518, 4519, 4516, 4517, 4514, 4515, 4512, 4513, 4510, 4511, 4508, 4509, 4506, 4507, 4504, 4505, 4502, 4503, 4500, 4501, 4498, 4499, 4496, 4497, 4494, 4495, 4492, 4493, 4490, 4491, 4488, 4489, 4486, 4487, 4484, 4485, 4482, 4483, 4480, 4481, 4478, 4479, 4476, 4477, 4474, 4475, 4472, 4473, 4470, 4471, 4468, 4469, 4466, 4467, 4464, 4465, 4462, 4463, 4460, 4461, 4458, 4459, 4456, 4457, 4454, 4455, 4452, 4453, 4450, 4451, 4448, 4449, 4446, 4447, 4444, 4445, 4442, 4443, 4440, 4441, 4438, 4439, 4436, 4437, 4434, 4435, 4432, 4433, 4430, 4431, 4428, 4429, 4426, 4427, 4424, 4425, 4422, 4423, 4420, 4421, 4418, 4419, 4416, 4417, 4414, 4415, 4412, 4413, 4410, 4411, 4408, 4409, 4406, 4407, 4404, 4405, 4402, 4403, 4400, 4401, 4398, 4399, 4396, 4397, 4394, 4395, 4392, 4393, 4390, 4391, 4388, 4389, 4386, 4387, 4384, 4385, 4382, 4383, 4380, 4381, 4378, 4379, 4376, 4377, 4374, 4375, 4372, 4373, 4370, 4371, 4368, 4369, 4366, 4367, 4364, 4365, 4362, 4363, 4360, 4361, 4358, 4359, 4356, 4357, 4354, 4355, 4352, 4353, 4350, 4351, 4348, 4349, 4346, 4347, 4344, 4345, 4342, 4343, 4340, 4341, 4338, 4339, 4336, 4337, 4334, 4335, 4332, 4333, 4330, 4331, 4328, 4329, 4326, 4327, 4324, 4325, 4322, 4323, 4320, 4321, 4318, 4319, 4316, 4317, 4314, 4315, 4312, 4313, 4310, 4311, 4308, 4309, 4306, 4307, 4304, 4305, 4302, 4303, 4300, 4301, 4298, 4299, 4296, 4297, 4294, 4295, 4292, 4293, 4290, 4291, 4288, 4289, 4286, 4287, 4284, 4285, 4282, 4283, 4280, 4281, 4278, 4279, 4276, 4277, 4274, 4275, 4272, 4273, 4270, 4271, 4268, 4269, 4266, 4267, 4264, 4265, 4262, 4263, 4260, 4261, 4258, 4259, 4256, 4257, 4254, 4255, 4252, 4253, 4250, 4251, 4248, 4249, 4246, 4247, 4244, 4245, 4242, 4243, 4240, 4241, 4238, 4239, 4236, 4237, 4234, 4235, 4232, 4233, 4230, 4231, 4228, 4229, 4226, 4227, 4224, 4225, 4222, 4223, 4220, 4221, 4218, 4219, 4216, 4217, 4214, 4215, 4212, 4213, 4210, 4211, 4208, 4209, 4206, 4207, 4204, 4205, 4202, 4203, 4200, 4201, 4198, 4199, 4196, 4197, 4194, 4195, 4192, 4193, 4190, 4191, 4188, 4189, 4186, 4187, 4184, 4185, 4182, 4183, 4180, 4181, 4178, 4179, 4176, 4177, 4174, 4175, 4172, 4173, 4170, 4171, 4168, 4169, 4166, 4167, 4164, 4165, 4162, 4163, 4160, 4161, 4158, 4159, 4156, 4157, 4154, 4155, 4152, 4153, 4150, 4151, 4148, 4149, 4146, 4147, 4144, 4145, 4142, 4143, 4140, 4141, 4138, 4139, 4136, 4137, 4134, 4135, 4132, 4133, 4130, 4131, 4128, 4129, 4126, 4127, 4124, 4125, 4122, 4123, 4120, 4121, 4118, 4119, 4116, 4117, 4114, 4115, 4112, 4113, 4110, 4111, 4108, 4109, 4106, 4107, 4104, 4105, 4102, 4103, 4100, 4101, 4098, 4099, 4096, 4097, 4094, 4095, 4092, 4093, 4090, 4091, 4088, 4089, 4086, 4087, 4084, 4085, 4082, 4083, 4080, 4081, 4078, 4079, 4076, 4077, 4074, 4075, 4072, 4073, 4070, 4071, 4068, 4069, 4066, 4067, 4064, 4065, 4062, 4063, 4060, 4061, 4058, 4059, 4056, 4057, 4054, 4055, 4052, 4053, 4050, 4051, 4048, 4049, 4046, 4047, 4044, 4045, 4042, 4043, 4040, 4041, 4038, 4039, 4036, 4037, 4034, 4035, 4032, 4033, 4030, 4031, 4028, 4029, 4026, 4027, 4024, 4025, 4022, 4023, 4020, 4021, 4018, 4019, 4016, 4017, 4014, 4015, 4012, 4013, 4010, 4011, 4008, 4009, 4006, 4007, 4004, 4005, 4002, 4003, 4000, 4001, 3998, 3999, 3996, 3997, 3994, 3995, 3992, 3993, 3990, 3991, 3988, 3989, 3986, 3987, 3984, 3985, 3982, 3983, 3980, 3981, 3978, 3979, 3976, 3977, 3974, 3975, 3972, 3973, 3970, 3971, 3968, 3969, 3966, 3967, 3964, 3965, 3962, 3963, 3960, 3961, 3958, 3959, 3956, 3957, 3954, 3955, 3952, 3953, 3950, 3951, 3948, 3949, 3946, 3947, 3944, 3945, 3942, 3943, 3940, 3941, 3938, 3939, 3936, 3937, 3934, 3935, 3932, 3933, 3930, 3931, 3928, 3929, 3926, 3927, 3924, 3925, 3922, 3923, 3920, 3921, 3918, 3919, 3916, 3917, 3914, 3915, 3912, 3913, 3910, 3911, 3908, 3909, 3906, 3907, 3904, 3905, 3902, 3903, 3900, 3901, 3898, 3899, 3896, 3897, 3894, 3895, 3892, 3893, 3890, 3891, 3888, 3889, 3886, 3887, 3884, 3885, 3882, 3883, 3880, 3881, 3878, 3879, 3876, 3877, 3874, 3875, 3872, 3873, 3870, 3871, 3868, 3869, 3866, 3867, 3864, 3865, 3862, 3863, 3860, 3861, 3858, 3859, 3856, 3857, 3854, 3855, 3852, 3853, 3850, 3851, 3848, 3849, 3846, 3847, 3844, 3845, 3842, 3843, 3840, 3841, 3838, 3839, 3836, 3837, 3834, 3835, 3832, 3833, 3830, 3831, 3828, 3829, 3826, 3827, 3824, 3825, 3822, 3823, 3820, 3821, 3818, 3819, 3816, 3817, 3814, 3815, 3812, 3813, 3810, 3811, 3808, 3809, 3806, 3807, 3804, 3805, 3802, 3803, 3800, 3801, 3798, 3799, 3796, 3797, 3794, 3795, 3792, 3793, 3790, 3791, 3788, 3789, 3786, 3787, 3784, 3785, 3782, 3783, 3780, 3781, 3778, 3779, 3776, 3777, 3774, 3775, 3772, 3773, 3770, 3771, 3768, 3769, 3766, 3767, 3764, 3765, 3762, 3763, 3760, 3761, 3758, 3759, 3756, 3757, 3754, 3755, 3752, 3753, 3750, 3751, 3748, 3749, 3746, 3747, 3744, 3745, 3742, 3743, 3740, 3741, 3738, 3739, 3736, 3737, 3734, 3735, 3732, 3733, 3730, 3731, 3728, 3729, 3726, 3727, 3724, 3725, 3722, 3723, 3720, 3721, 3718, 3719, 3716, 3717, 3714, 3715, 3712, 3713, 3710, 3711, 3708, 3709, 3706, 3707, 3704, 3705, 3702, 3703, 3700, 3701, 3698, 3699, 3696, 3697, 3694, 3695, 3692, 3693, 3690, 3691, 3688, 3689, 3686, 3687, 3684, 3685, 3682, 3683, 3680, 3681, 3678, 3679, 3676, 3677, 3674, 3675, 3672, 3673, 3670, 3671, 3668, 3669, 3666, 3667, 3664, 3665, 3662, 3663, 3660, 3661, 3658, 3659, 3656, 3657, 3654, 3655, 3652, 3653, 3650, 3651, 3648, 3649, 3646, 3647, 3644, 3645, 3642, 3643, 3640, 3641, 3638, 3639, 3636, 3637, 3634, 3635, 3632, 3633, 3630, 3631, 3628, 3629, 3626, 3627, 3624, 3625, 3622, 3623, 3620, 3621, 3618, 3619, 3616, 3617, 3614, 3615, 3612, 3613, 3610, 3611, 3608, 3609, 3606, 3607, 3604, 3605, 3602, 3603, 3600, 3601, 3598, 3599, 3596, 3597, 3594, 3595, 3592, 3593, 3590, 3591, 3588, 3589, 3586, 3587, 3584, 3585, 3582, 3583, 3580, 3581, 3578, 3579, 3576, 3577, 3574, 3575, 3572, 3573, 3570, 3571, 3568, 3569, 3566, 3567, 3564, 3565, 3562, 3563, 3560, 3561, 3558, 3559, 3556, 3557, 3554, 3555, 3552, 3553, 3550, 3551, 3548, 3549, 3546, 3547, 3544, 3545, 3542, 3543, 3540, 3541, 3538, 3539, 3536, 3537, 3534, 3535, 3532, 3533, 3530, 3531, 3528, 3529, 3526, 3527, 3524, 3525, 3522, 3523, 3520, 3521, 3518, 3519, 3516, 3517, 3514, 3515, 3512, 3513, 3510, 3511, 3508, 3509, 3506, 3507, 3504, 3505, 3502, 3503, 3500, 3501, 3498, 3499, 3496, 3497, 3494, 3495, 3492, 3493, 3490, 3491, 3488, 3489, 3486, 3487, 3484, 3485, 3482, 3483, 3480, 3481, 3478, 3479, 3476, 3477, 3474, 3475, 3472, 3473, 3470, 3471, 3468, 3469, 3466, 3467, 3464, 3465, 3462, 3463, 3460, 3461, 3458, 3459, 3456, 3457, 3454, 3455, 3452, 3453, 3450, 3451, 3448, 3449, 3446, 3447, 3444, 3445, 3442, 3443, 3440, 3441, 3438, 3439, 3436, 3437, 3434, 3435, 3432, 3433, 3430, 3431, 3428, 3429, 3426, 3427, 3424, 3425, 3422, 3423, 3420, 3421, 3418, 3419, 3416, 3417, 3414, 3415, 3412, 3413, 3410, 3411, 3408, 3409, 3406, 3407, 3404, 3405, 3402, 3403, 3400, 3401, 3398, 3399, 3396, 3397, 3394, 3395, 3392, 3393, 3390, 3391, 3388, 3389, 3386, 3387, 3384, 3385, 3382, 3383, 3380, 3381, 3378, 3379, 3376, 3377, 3374, 3375, 3372, 3373, 3370, 3371, 3368, 3369, 3366, 3367, 3364, 3365, 3362, 3363, 3360, 3361, 3358, 3359, 3356, 3357, 3354, 3355, 3352, 3353, 3350, 3351, 3348, 3349, 3346, 3347, 3344, 3345, 3342, 3343, 3340, 3341, 3338, 3339, 3336, 3337, 3334, 3335, 3332, 3333, 3330, 3331, 3328, 3329, 3326, 3327, 3324, 3325, 3322, 3323, 3320, 3321, 3318, 3319, 3316, 3317, 3314, 3315, 3312, 3313, 3310, 3311, 3308, 3309, 3306, 3307, 3304, 3305, 3302, 3303, 3300, 3301, 3298, 3299, 3296, 3297, 3294, 3295, 3292, 3293, 3290, 3291, 3288, 3289, 3286, 3287, 3284, 3285, 3282, 3283, 3280, 3281, 3278, 3279, 3276, 3277, 3274, 3275, 3272, 3273, 3270, 3271, 3268, 3269, 3266, 3267, 3264, 3265, 3262, 3263, 3260, 3261, 3258, 3259, 3256, 3257, 3254, 3255, 3252, 3253, 3250, 3251, 3248, 3249, 3246, 3247, 3244, 3245, 3242, 3243, 3240, 3241, 3238, 3239, 3236, 3237, 3234, 3235, 3232, 3233, 3230, 3231, 3228, 3229, 3226, 3227, 3224, 3225, 3222, 3223, 3220, 3221, 3218, 3219, 3216, 3217, 3214, 3215, 3212, 3213, 3210, 3211, 3208, 3209, 3206, 3207, 3204, 3205, 3202, 3203, 3200, 3201, 3198, 3199, 3196, 3197, 3194, 3195, 3192, 3193, 3190, 3191, 3188, 3189, 3186, 3187, 3184, 3185, 3182, 3183, 3180, 3181, 3178, 3179, 3176, 3177, 3174, 3175, 3172, 3173, 3170, 3171, 3168, 3169, 3166, 3167, 3164, 3165, 3162, 3163, 3160, 3161, 3158, 3159, 3156, 3157, 3154, 3155, 3152, 3153, 3150, 3151, 3148, 3149, 3146, 3147, 3144, 3145, 3142, 3143, 3140, 3141, 3138, 3139, 3136, 3137, 3134, 3135, 3132, 3133, 3130, 3131, 3128, 3129, 3126, 3127, 3124, 3125, 3122, 3123, 3120, 3121, 3118, 3119, 3116, 3117, 3114, 3115, 3112, 3113, 3110, 3111, 3108, 3109, 3106, 3107, 3104, 3105, 3102, 3103, 3100, 3101, 3098, 3099, 3096, 3097, 3094, 3095, 3092, 3093, 3090, 3091, 3088, 3089, 3086, 3087, 3084, 3085, 3082, 3083, 3080, 3081, 3078, 3079, 3076, 3077, 3074, 3075, 3072, 3073, 3070, 3071, 3068, 3069, 3066, 3067, 3064, 3065, 3062, 3063, 3060, 3061, 3058, 3059, 3056, 3057, 3054, 3055, 3052, 3053, 3050, 3051, 3048, 3049, 3046, 3047, 3044, 3045, 3042, 3043, 3040, 3041, 3038, 3039, 3036, 3037, 3034, 3035, 3032, 3033, 3030, 3031, 3028, 3029, 3026, 3027, 3024, 3025, 3022, 3023, 3020, 3021, 3018, 3019, 3016, 3017, 3014, 3015, 3012, 3013, 3010, 3011, 3008, 3009, 3006, 3007, 3004, 3005, 3002, 3003, 3000, 3001, 2998, 2999, 2996, 2997, 2994, 2995, 2992, 2993, 2990, 2991, 2988, 2989, 2986, 2987, 2984, 2985, 2982, 2983, 2980, 2981, 2978, 2979, 2976, 2977, 2974, 2975, 2972, 2973, 2970, 2971, 2968, 2969, 2966, 2967, 2964, 2965, 2962, 2963, 2960, 2961, 2958, 2959, 2956, 2957, 2954, 2955, 2952, 2953, 2950, 2951, 2948, 2949, 2946, 2947, 2944, 2945, 2942, 2943, 2940, 2941, 2938, 2939, 2936, 2937, 2934, 2935, 2932, 2933, 2930, 2931, 2928, 2929, 2926, 2927, 2924, 2925, 2922, 2923, 2920, 2921, 2918, 2919, 2916, 2917, 2914, 2915, 2912, 2913, 2910, 2911, 2908, 2909, 2906, 2907, 2904, 2905, 2902, 2903, 2900, 2901, 2898, 2899, 2896, 2897, 2894, 2895, 2892, 2893, 2890, 2891, 2888, 2889, 2886, 2887, 2884, 2885, 2882, 2883, 2880, 2881, 2878, 2879, 2876, 2877, 2874, 2875, 2872, 2873, 2870, 2871, 2868, 2869, 2866, 2867, 2864, 2865, 2862, 2863, 2860, 2861, 2858, 2859, 2856, 2857, 2854, 2855, 2852, 2853, 2850, 2851, 2848, 2849, 2846, 2847, 2844, 2845, 2842, 2843, 2840, 2841, 2838, 2839, 2836, 2837, 2834, 2835, 2832, 2833, 2830, 2831, 2828, 2829, 2826, 2827, 2824, 2825, 2822, 2823, 2820, 2821, 2818, 2819, 2816, 2817, 2814, 2815, 2812, 2813, 2810, 2811, 2808, 2809, 2806, 2807, 2804, 2805, 2802, 2803, 2800, 2801, 2798, 2799, 2796, 2797, 2794, 2795, 2792, 2793, 2790, 2791, 2788, 2789, 2786, 2787, 2784, 2785, 2782, 2783, 2780, 2781, 2778, 2779, 2776, 2777, 2774, 2775, 2772, 2773, 2770, 2771, 2768, 2769, 2766, 2767, 2764, 2765, 2762, 2763, 2760, 2761, 2758, 2759, 2756, 2757, 2754, 2755, 2752, 2753, 2750, 2751, 2748, 2749, 2746, 2747, 2744, 2745, 2742, 2743, 2740, 2741, 2738, 2739, 2736, 2737, 2734, 2735, 2732, 2733, 2730, 2731, 2728, 2729, 2726, 2727, 2724, 2725, 2722, 2723, 2720, 2721, 2718, 2719, 2716, 2717, 2714, 2715, 2712, 2713, 2710, 2711, 2708, 2709, 2706, 2707, 2704, 2705, 2702, 2703, 2700, 2701, 2698, 2699, 2696, 2697, 2694, 2695, 2692, 2693, 2690, 2691, 2688, 2689, 2686, 2687, 2684, 2685, 2682, 2683, 2680, 2681, 2678, 2679, 2676, 2677, 2674, 2675, 2672, 2673, 2670, 2671, 2668, 2669, 2666, 2667, 2664, 2665, 2662, 2663, 2660, 2661, 2658, 2659, 2656, 2657, 2654, 2655, 2652, 2653, 2650, 2651, 2648, 2649, 2646, 2647, 2644, 2645, 2642, 2643, 2640, 2641, 2638, 2639, 2636, 2637, 2634, 2635, 2632, 2633, 2630, 2631, 2628, 2629, 2626, 2627, 2624, 2625, 2622, 2623, 2620, 2621, 2618, 2619, 2616, 2617, 2614, 2615, 2612, 2613, 2610, 2611, 2608, 2609, 2606, 2607, 2604, 2605, 2602, 2603, 2600, 2601, 2598, 2599, 2596, 2597, 2594, 2595, 2592, 2593, 2590, 2591, 2588, 2589, 2586, 2587, 2584, 2585, 2582, 2583, 2580, 2581, 2578, 2579, 2576, 2577, 2574, 2575, 2572, 2573, 2570, 2571, 2568, 2569, 2566, 2567, 2564, 2565, 2562, 2563, 2560, 2561, 2558, 2559, 2556, 2557, 2554, 2555, 2552, 2553, 2550, 2551, 2548, 2549, 2546, 2547, 2544, 2545, 2542, 2543, 2540, 2541, 2538, 2539, 2536, 2537, 2534, 2535, 2532, 2533, 2530, 2531, 2528, 2529, 2526, 2527, 2524, 2525, 2522, 2523, 2520, 2521, 2518, 2519, 2516, 2517, 2514, 2515, 2512, 2513, 2510, 2511, 2508, 2509, 2506, 2507, 2504, 2505, 2502, 2503, 2500, 2501, 2498, 2499, 2496, 2497, 2494, 2495, 2492, 2493, 2490, 2491, 2488, 2489, 2486, 2487, 2484, 2485, 2482, 2483, 2480, 2481, 2478, 2479, 2476, 2477, 2474, 2475, 2472, 2473, 2470, 2471, 2468, 2469, 2466, 2467, 2464, 2465, 2462, 2463, 2460, 2461, 2458, 2459, 2456, 2457, 2454, 2455, 2452, 2453, 2450, 2451, 2448, 2449, 2446, 2447, 2444, 2445, 2442, 2443, 2440, 2441, 2438, 2439, 2436, 2437, 2434, 2435, 2432, 2433, 2430, 2431, 2428, 2429, 2426, 2427, 2424, 2425, 2422, 2423, 2420, 2421, 2418, 2419, 2416, 2417, 2414, 2415, 2412, 2413, 2410, 2411, 2408, 2409, 2406, 2407, 2404, 2405, 2402, 2403, 2400, 2401, 2398, 2399, 2396, 2397, 2394, 2395, 2392, 2393, 2390, 2391, 2388, 2389, 2386, 2387, 2384, 2385, 2382, 2383, 2380, 2381, 2378, 2379, 2376, 2377, 2374, 2375, 2372, 2373, 2370, 2371, 2368, 2369, 2366, 2367, 2364, 2365, 2362, 2363, 2360, 2361, 2358, 2359, 2356, 2357, 2354, 2355, 2352, 2353, 2350, 2351, 2348, 2349, 2346, 2347, 2344, 2345, 2342, 2343, 2340, 2341, 2338, 2339, 2336, 2337, 2334, 2335, 2332, 2333, 2330, 2331, 2328, 2329, 2326, 2327, 2324, 2325, 2322, 2323, 2320, 2321, 2318, 2319, 2316, 2317, 2314, 2315, 2312, 2313, 2310, 2311, 2308, 2309, 2306, 2307, 2304, 2305, 2302, 2303, 2300, 2301, 2298, 2299, 2296, 2297, 2294, 2295, 2292, 2293, 2290, 2291, 2288, 2289, 2286, 2287, 2284, 2285, 2282, 2283, 2280, 2281, 2278, 2279, 2276, 2277, 2274, 2275, 2272, 2273, 2270, 2271, 2268, 2269, 2266, 2267, 2264, 2265, 2262, 2263, 2260, 2261, 2258, 2259, 2256, 2257, 2254, 2255, 2252, 2253, 2250, 2251, 2248, 2249, 2246, 2247, 2244, 2245, 2242, 2243, 2240, 2241, 2238, 2239, 2236, 2237, 2234, 2235, 2232, 2233, 2230, 2231, 2228, 2229, 2226, 2227, 2224, 2225, 2222, 2223, 2220, 2221, 2218, 2219, 2216, 2217, 2214, 2215, 2212, 2213, 2210, 2211, 2208, 2209, 2206, 2207, 2204, 2205, 2202, 2203, 2200, 2201, 2198, 2199, 2196, 2197, 2194, 2195, 2192, 2193, 2190, 2191, 2188, 2189, 2186, 2187, 2184, 2185, 2182, 2183, 2180, 2181, 2178, 2179, 2176, 2177, 2174, 2175, 2172, 2173, 2170, 2171, 2168, 2169, 2166, 2167, 2164, 2165, 2162, 2163, 2160, 2161, 2158, 2159, 2156, 2157, 2154, 2155, 2152, 2153, 2150, 2151, 2148, 2149, 2146, 2147, 2144, 2145, 2142, 2143, 2140, 2141, 2138, 2139, 2136, 2137, 2134, 2135, 2132, 2133, 2130, 2131, 2128, 2129, 2126, 2127, 2124, 2125, 2122, 2123, 2120, 2121, 2118, 2119, 2116, 2117, 2114, 2115, 2112, 2113, 2110, 2111, 2108, 2109, 2106, 2107, 2104, 2105, 2102, 2103, 2100, 2101, 2098, 2099, 2096, 2097, 2094, 2095, 2092, 2093, 2090, 2091, 2088, 2089, 2086, 2087, 2084, 2085, 2082, 2083, 2080, 2081, 2078, 2079, 2076, 2077, 2074, 2075, 2072, 2073, 2070, 2071, 2068, 2069, 2066, 2067, 2064, 2065, 2062, 2063, 2060, 2061, 2058, 2059, 2056, 2057, 2054, 2055, 2052, 2053, 2050, 2051, 2048, 2049, 2046, 2047, 2044, 2045, 2042, 2043, 2040, 2041, 2038, 2039, 2036, 2037, 2034, 2035, 2032, 2033, 2030, 2031, 2028, 2029, 2026, 2027, 2024, 2025, 2022, 2023, 2020, 2021, 2018, 2019, 2016, 2017, 2014, 2015, 2012, 2013, 2010, 2011, 2008, 2009, 2006, 2007, 2004, 2005, 2002, 2003, 2000, 2001, 1998, 1999, 1996, 1997, 1994, 1995, 1992, 1993, 1990, 1991, 1988, 1989, 1986, 1987, 1984, 1985, 1982, 1983, 1980, 1981, 1978, 1979, 1976, 1977, 1974, 1975, 1972, 1973, 1970, 1971, 1968, 1969, 1966, 1967, 1964, 1965, 1962, 1963, 1960, 1961, 1958, 1959, 1956, 1957, 1954, 1955, 1952, 1953, 1950, 1951, 1948, 1949, 1946, 1947, 1944, 1945, 1942, 1943, 1940, 1941, 1938, 1939, 1936, 1937, 1934, 1935, 1932, 1933, 1930, 1931, 1928, 1929, 1926, 1927, 1924, 1925, 1922, 1923, 1920, 1921, 1918, 1919, 1916, 1917, 1914, 1915, 1912, 1913, 1910, 1911, 1908, 1909, 1906, 1907, 1904, 1905, 1902, 1903, 1900, 1901, 1898, 1899, 1896, 1897, 1894, 1895, 1892, 1893, 1890, 1891, 1888, 1889, 1886, 1887, 1884, 1885, 1882, 1883, 1880, 1881, 1878, 1879, 1876, 1877, 1874, 1875, 1872, 1873, 1870, 1871, 1868, 1869, 1866, 1867, 1864, 1865, 1862, 1863, 1860, 1861, 1858, 1859, 1856, 1857, 1854, 1855, 1852, 1853, 1850, 1851, 1848, 1849, 1846, 1847, 1844, 1845, 1842, 1843, 1840, 1841, 1838, 1839, 1836, 1837, 1834, 1835, 1832, 1833, 1830, 1831, 1828, 1829, 1826, 1827, 1824, 1825, 1822, 1823, 1820, 1821, 1818, 1819, 1816, 1817, 1814, 1815, 1812, 1813, 1810, 1811, 1808, 1809, 1806, 1807, 1804, 1805, 1802, 1803, 1800, 1801, 1798, 1799, 1796, 1797, 1794, 1795, 1792, 1793, 1790, 1791, 1788, 1789, 1786, 1787, 1784, 1785, 1782, 1783, 1780, 1781, 1778, 1779, 1776, 1777, 1774, 1775, 1772, 1773, 1770, 1771, 1768, 1769, 1766, 1767, 1764, 1765, 1762, 1763, 1760, 1761, 1758, 1759, 1756, 1757, 1754, 1755, 1752, 1753, 1750, 1751, 1748, 1749, 1746, 1747, 1744, 1745, 1742, 1743, 1740, 1741, 1738, 1739, 1736, 1737, 1734, 1735, 1732, 1733, 1730, 1731, 1728, 1729, 1726, 1727, 1724, 1725, 1722, 1723, 1720, 1721, 1718, 1719, 1716, 1717, 1714, 1715, 1712, 1713, 1710, 1711, 1708, 1709, 1706, 1707, 1704, 1705, 1702, 1703, 1700, 1701, 1698, 1699, 1696, 1697, 1694, 1695, 1692, 1693, 1690, 1691, 1688, 1689, 1686, 1687, 1684, 1685, 1682, 1683, 1680, 1681, 1678, 1679, 1676, 1677, 1674, 1675, 1672, 1673, 1670, 1671, 1668, 1669, 1666, 1667, 1664, 1665, 1662, 1663, 1660, 1661, 1658, 1659, 1656, 1657, 1654, 1655, 1652, 1653, 1650, 1651, 1648, 1649, 1646, 1647, 1644, 1645, 1642, 1643, 1640, 1641, 1638, 1639, 1636, 1637, 1634, 1635, 1632, 1633, 1630, 1631, 1628, 1629, 1626, 1627, 1624, 1625, 1622, 1623, 1620, 1621, 1618, 1619, 1616, 1617, 1614, 1615, 1612, 1613, 1610, 1611, 1608, 1609, 1606, 1607, 1604, 1605, 1602, 1603, 1600, 1601, 1598, 1599, 1596, 1597, 1594, 1595, 1592, 1593, 1590, 1591, 1588, 1589, 1586, 1587, 1584, 1585, 1582, 1583, 1580, 1581, 1578, 1579, 1576, 1577, 1574, 1575, 1572, 1573, 1570, 1571, 1568, 1569, 1566, 1567, 1564, 1565, 1562, 1563, 1560, 1561, 1558, 1559, 1556, 1557, 1554, 1555, 1552, 1553, 1550, 1551, 1548, 1549, 1546, 1547, 1544, 1545, 1542, 1543, 1540, 1541, 1538, 1539, 1536, 1537, 1534, 1535, 1532, 1533, 1530, 1531, 1528, 1529, 1526, 1527, 1524, 1525, 1522, 1523, 1520, 1521, 1518, 1519, 1516, 1517, 1514, 1515, 1512, 1513, 1510, 1511, 1508, 1509, 1506, 1507, 1504, 1505, 1502, 1503, 1500, 1501, 1498, 1499, 1496, 1497, 1494, 1495, 1492, 1493, 1490, 1491, 1488, 1489, 1486, 1487, 1484, 1485, 1482, 1483, 1480, 1481, 1478, 1479, 1476, 1477, 1474, 1475, 1472, 1473, 1470, 1471, 1468, 1469, 1466, 1467, 1464, 1465, 1462, 1463, 1460, 1461, 1458, 1459, 1456, 1457, 1454, 1455, 1452, 1453, 1450, 1451, 1448, 1449, 1446, 1447, 1444, 1445, 1442, 1443, 1440, 1441, 1438, 1439, 1436, 1437, 1434, 1435, 1432, 1433, 1430, 1431, 1428, 1429, 1426, 1427, 1424, 1425, 1422, 1423, 1420, 1421, 1418, 1419, 1416, 1417, 1414, 1415, 1412, 1413, 1410, 1411, 1408, 1409, 1406, 1407, 1404, 1405, 1402, 1403, 1400, 1401, 1398, 1399, 1396, 1397, 1394, 1395, 1392, 1393, 1390, 1391, 1388, 1389, 1386, 1387, 1384, 1385, 1382, 1383, 1380, 1381, 1378, 1379, 1376, 1377, 1374, 1375, 1372, 1373, 1370, 1371, 1368, 1369, 1366, 1367, 1364, 1365, 1362, 1363, 1360, 1361, 1358, 1359, 1356, 1357, 1354, 1355, 1352, 1353, 1350, 1351, 1348, 1349, 1346, 1347, 1344, 1345, 1342, 1343, 1340, 1341, 1338, 1339, 1336, 1337, 1334, 1335, 1332, 1333, 1330, 1331, 1328, 1329, 1326, 1327, 1324, 1325, 1322, 1323, 1320, 1321, 1318, 1319, 1316, 1317, 1314, 1315, 1312, 1313, 1310, 1311, 1308, 1309, 1306, 1307, 1304, 1305, 1302, 1303, 1300, 1301, 1298, 1299, 1296, 1297, 1294, 1295, 1292, 1293, 1290, 1291, 1288, 1289, 1286, 1287, 1284, 1285, 1282, 1283, 1280, 1281, 1278, 1279, 1276, 1277, 1274, 1275, 1272, 1273, 1270, 1271, 1268, 1269, 1266, 1267, 1264, 1265, 1262, 1263, 1260, 1261, 1258, 1259, 1256, 1257, 1254, 1255, 1252, 1253, 1250, 1251, 1248, 1249, 1246, 1247, 1244, 1245, 1242, 1243, 1240, 1241, 1238, 1239, 1236, 1237, 1234, 1235, 1232, 1233, 1230, 1231, 1228, 1229, 1226, 1227, 1224, 1225, 1222, 1223, 1220, 1221, 1218, 1219, 1216, 1217, 1214, 1215, 1212, 1213, 1210, 1211, 1208, 1209, 1206, 1207, 1204, 1205, 1202, 1203, 1200, 1201, 1198, 1199, 1196, 1197, 1194, 1195, 1192, 1193, 1190, 1191, 1188, 1189, 1186, 1187, 1184, 1185, 1182, 1183, 1180, 1181, 1178, 1179, 1176, 1177, 1174, 1175, 1172, 1173, 1170, 1171, 1168, 1169, 1166, 1167, 1164, 1165, 1162, 1163, 1160, 1161, 1158, 1159, 1156, 1157, 1154, 1155, 1152, 1153, 1150, 1151, 1148, 1149, 1146, 1147, 1144, 1145, 1142, 1143, 1140, 1141, 1138, 1139, 1136, 1137, 1134, 1135, 1132, 1133, 1130, 1131, 1128, 1129, 1126, 1127, 1124, 1125, 1122, 1123, 1120, 1121, 1118, 1119, 1116, 1117, 1114, 1115, 1112, 1113, 1110, 1111, 1108, 1109, 1106, 1107, 1104, 1105, 1102, 1103, 1100, 1101, 1098, 1099, 1096, 1097, 1094, 1095, 1092, 1093, 1090, 1091, 1088, 1089, 1086, 1087, 1084, 1085, 1082, 1083, 1080, 1081, 1078, 1079, 1076, 1077, 1074, 1075, 1072, 1073, 1070, 1071, 1068, 1069, 1066, 1067, 1064, 1065, 1062, 1063, 1060, 1061, 1058, 1059, 1056, 1057, 1054, 1055, 1052, 1053, 1050, 1051, 1048, 1049, 1046, 1047, 1044, 1045, 1042, 1043, 1040, 1041, 1038, 1039, 1036, 1037, 1034, 1035, 1032, 1033, 1030, 1031, 1028, 1029, 1026, 1027, 1024, 1025, 1022, 1023, 1020, 1021, 1018, 1019, 1016, 1017, 1014, 1015, 1012, 1013, 1010, 1011, 1008, 1009, 1006, 1007, 1004, 1005, 1002, 1003, 1000, 1001, 998, 999, 996, 997, 994, 995, 992, 993, 990, 991, 988, 989, 986, 987, 984, 985, 982, 983, 980, 981, 978, 979, 976, 977, 974, 975, 972, 973, 970, 971, 968, 969, 966, 967, 964, 965, 962, 963, 960, 961, 958, 959, 956, 957, 954, 955, 952, 953, 950, 951, 948, 949, 946, 947, 944, 945, 942, 943, 940, 941, 938, 939, 936, 937, 934, 935, 932, 933, 930, 931, 928, 929, 926, 927, 924, 925, 922, 923, 920, 921, 918, 919, 916, 917, 914, 915, 912, 913, 910, 911, 908, 909, 906, 907, 904, 905, 902, 903, 900, 901, 898, 899, 896, 897, 894, 895, 892, 893, 890, 891, 888, 889, 886, 887, 884, 885, 882, 883, 880, 881, 878, 879, 876, 877, 874, 875, 872, 873, 870, 871, 868, 869, 866, 867, 864, 865, 862, 863, 860, 861, 858, 859, 856, 857, 854, 855, 852, 853, 850, 851, 848, 849, 846, 847, 844, 845, 842, 843, 840, 841, 838, 839, 836, 837, 834, 835, 832, 833, 830, 831, 828, 829, 826, 827, 824, 825, 822, 823, 820, 821, 818, 819, 816, 817, 814, 815, 812, 813, 810, 811, 808, 809, 806, 807, 804, 805, 802, 803, 800, 801, 798, 799, 796, 797, 794, 795, 792, 793, 790, 791, 788, 789, 786, 787, 784, 785, 782, 783, 780, 781, 778, 779, 776, 777, 774, 775, 772, 773, 770, 771, 768, 769, 766, 767, 764, 765, 762, 763, 760, 761, 758, 759, 756, 757, 754, 755, 752, 753, 750, 751, 748, 749, 746, 747, 744, 745, 742, 743, 740, 741, 738, 739, 736, 737, 734, 735, 732, 733, 730, 731, 728, 729, 726, 727, 724, 725, 722, 723, 720, 721, 718, 719, 716, 717, 714, 715, 712, 713, 710, 711, 708, 709, 706, 707, 704, 705, 702, 703, 700, 701, 698, 699, 696, 697, 694, 695, 692, 693, 690, 691, 688, 689, 686, 687, 684, 685, 682, 683, 680, 681, 678, 679, 676, 677, 674, 675, 672, 673, 670, 671, 668, 669, 666, 667, 664, 665, 662, 663, 660, 661, 658, 659, 656, 657, 654, 655, 652, 653, 650, 651, 648, 649, 646, 647, 644, 645, 642, 643, 640, 641, 638, 639, 636, 637, 634, 635, 632, 633, 630, 631, 628, 629, 626, 627, 624, 625, 622, 623, 620, 621, 618, 619, 616, 617, 614, 615, 612, 613, 610, 611, 608, 609, 606, 607, 604, 605, 602, 603, 600, 601, 598, 599, 596, 597, 594, 595, 592, 593, 590, 591, 588, 589, 586, 587, 584, 585, 582, 583, 580, 581, 578, 579, 576, 577, 574, 575, 572, 573, 570, 571, 568, 569, 566, 567, 564, 565, 562, 563, 560, 561, 558, 559, 556, 557, 554, 555, 552, 553, 550, 551, 548, 549, 546, 547, 544, 545, 542, 543, 540, 541, 538, 539, 536, 537, 534, 535, 532, 533, 530, 531, 528, 529, 526, 527, 524, 525, 522, 523, 520, 521, 518, 519, 516, 517, 514, 515, 512, 513, 510, 511, 508, 509, 506, 507, 504, 505, 502, 503, 500, 501, 498, 499, 496, 497, 494, 495, 492, 493, 490, 491, 488, 489, 486, 487, 484, 485, 482, 483, 480, 481, 478, 479, 476, 477, 474, 475, 472, 473, 470, 471, 468, 469, 466, 467, 464, 465, 462, 463, 460, 461, 458, 459, 456, 457, 454, 455, 452, 453, 450, 451, 448, 449, 446, 447, 444, 445, 442, 443, 440, 441, 438, 439, 436, 437, 434, 435, 432, 433, 430, 431, 428, 429, 426, 427, 424, 425, 422, 423, 420, 421, 418, 419, 416, 417, 414, 415, 412, 413, 410, 411, 408, 409, 406, 407, 404, 405, 402, 403, 400, 401, 398, 399, 396, 397, 394, 395, 392, 393, 390, 391, 388, 389, 386, 387, 384, 385, 382, 383, 380, 381, 378, 379, 376, 377, 374, 375, 372, 373, 370, 371, 368, 369, 366, 367, 364, 365, 362, 363, 360, 361, 358, 359, 356, 357, 354, 355, 352, 353, 350, 351, 348, 349, 346, 347, 344, 345, 342, 343, 340, 341, 338, 339, 336, 337, 334, 335, 332, 333, 330, 331, 328, 329, 326, 327, 324, 325, 322, 323, 320, 321, 318, 319, 316, 317, 314, 315, 312, 313, 310, 311, 308, 309, 306, 307, 304, 305, 302, 303, 300, 301, 298, 299, 296, 297, 294, 295, 292, 293, 290, 291, 288, 289, 286, 287, 284, 285, 282, 283, 280, 281, 278, 279, 276, 277, 274, 275, 272, 273, 270, 271, 268, 269, 266, 267, 264, 265, 262, 263, 260, 261, 258, 259, 256, 257, 254, 255, 252, 253, 250, 251, 248, 249, 246, 247, 244, 245, 242, 243, 240, 241, 238, 239, 236, 237, 234, 235, 232, 233, 230, 231, 228, 229, 226, 227, 224, 225, 222, 223, 220, 221, 218, 219, 216, 217, 214, 215, 212, 213, 210, 211, 208, 209, 206, 207, 204, 205, 202, 203, 200, 201, 198, 199, 196, 197, 194, 195, 192, 193, 190, 191, 188, 189, 186, 187, 184, 185, 182, 183, 180, 181, 178, 179, 176, 177, 174, 175, 172, 173, 170, 171, 168, 169, 166, 167, 164, 165, 162, 163, 160, 161, 158, 159, 156, 157, 154, 155, 152, 153, 150, 151, 148, 149, 146, 147, 144, 145, 142, 143, 140, 141, 138, 139, 136, 137, 134, 135, 132, 133, 130, 131, 128, 129, 126, 127, 124, 125, 122, 123, 120, 121, 118, 119, 116, 117, 114, 115, 112, 113, 110, 111, 108, 109, 106, 107, 104, 105, 102, 103, 100, 101, 98, 99, 96, 97, 94, 95, 92, 93, 90, 91, 88, 89, 86, 87, 84, 85, 82, 83, 80, 81, 78, 79, 76, 77, 74, 75, 72, 73, 70, 71, 68, 69, 66, 67, 64, 65, 62, 63, 60, 61, 58, 59, 56, 57, 54, 55, 52, 53, 50, 51, 48, 49, 46, 47, 44, 45, 42, 43, 40, 41, 38, 39, 36, 37, 34, 35, 32, 33, 30, 31, 28, 29, 26, 27, 24, 25, 22, 23, 20, 21, 18, 19, 16, 17, 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 0, 1] TODO +[2, 4, 2, 3, 5, 2] TODO +[105, 30, 55, 40, 67, 93, 61, 8, 20, 48, 69, 77, 66, 51, 77, 8, 23, 66, 73, 25, 116, 33, 82, 95, 55, 40, 40, 94, 88, 58, 88, 66, 61, 58, 53, 11, 21, 110, 87, 13, 1, 98, 4, 72, 61, 58, 71, 93, 94, 95, 49, 56, 1, 86, 66, 48, 84, 52, 83, 19, 28, 46, 58, 83, 32, 82, 66, 90, 101, 77, 45, 18, 98, 24, 54, 65, 104, 36, 116, 105, 32, 68, 92, 19, 90, 21, 70, 50, 108, 32, 37, 19, 59, 62, 13, 113, 3, 31, 89, 105, 46, 14, 66, 27, 105, 75, 83, 76, 75, 88, 96, 36, 83, 18, 76, 3, 89] TODO +[16, 74, 96, 36, 45, 64, 26, 72, 57, 59, 114, 103, 88, 17, 37, 55, 81, 91, 114, 111, 112, 63, 25, 119, 114, 79, 63, 58, 38, 44, 45, 61, 109, 86, 96, 17, 52, 105, 54, 79, 101, 77, 7, 67, 49, 36, 63, 89, 54, 94, 82, 79, 5, 36, 41, 39, 86, 108, 115, 103, 43, 26, 30, 110, 51, 114, 40, 23, 89, 112, 35, 34, 121, 106, 113, 78, 24, 34, 14, 98, 106, 81, 13, 120, 49, 24, 49, 38, 21, 37, 9, 42, 7, 86, 5, 46, 10, 63, 96, 103, 12, 18, 85, 105, 59, 11, 41, 52, 53, 113, 92, 27, 64, 97, 17, 96, 84, 14, 109, 20, 12, 28] TODO +[71, 44, 49, 39, 15, 49, 94, 70, 13, 98, 20, 13, 16, 20, 97, 30, 87, 76, 104, 69, 77, 56, 75, 5, 6, 87, 94, 7, 101, 31, 33, 39, 28, 13, 22, 64, 11, 49, 63, 81, 59, 44, 41, 14, 64, 2, 25, 82, 27, 101, 54, 48, 94, 49, 55, 27, 70, 19, 93, 63, 97, 47, 91, 25, 73, 93, 45, 92, 98, 92, 49, 10, 85, 30, 22, 63, 32, 71, 66, 75, 43, 5, 54, 43, 35, 57, 11, 104, 53, 34, 60, 8, 86, 35, 102, 98, 79, 10, 13, 57, 63, 104, 45, 49] TODO +[15, 1, 5, 6, 12, 14, 2, 16, 20, 17, 13, 10, 7, 4, 20, 12, 19, 14, 20, 2] TODO +[25, 20, 57, 48, 11, 21, 28, 6, 56, 57, 8, 24, 27, 34, 44, 37, 17, 26, 62, 52, 38, 53, 46, 49, 11, 3, 51, 15, 52, 61, 28, 27, 6, 33, 62, 61, 24, 5, 42, 19, 11, 35, 38, 4, 32, 39, 11, 54, 43, 12, 32, 61, 36, 23, 37, 27, 3, 27, 38, 22, 35, 9] TODO +[256, 285, 44, 121, 124, 192, 323, 238, 98, 324, 289, 154, 262, 329, 18, 146, 320, 337, 161, 121, 142, 123, 317, 283, 187, 257, 318, 207, 15, 361, 63, 128, 324, 109, 322, 143, 344, 353, 242, 35, 91, 141, 63, 163, 135, 202, 276, 286, 98, 325, 16, 207, 327, 298, 228, 294, 283, 28, 338, 32, 68, 235, 21, 130, 319, 183, 139, 128, 280, 256, 44, 155, 169, 92, 258, 29, 326, 54, 134, 247, 171, 111, 153, 364, 282, 222, 135, 240, 219, 315, 344, 283, 4, 105, 299, 198, 363, 235, 118, 256, 273, 356, 95, 355, 39, 293, 94, 158, 121, 147, 245, 335, 92, 251, 95, 260, 120, 46, 9, 99, 170, 186, 299, 144, 222, 156, 186, 133, 16, 100, 124, 366, 283, 17, 91, 3, 343, 252, 139, 342, 335, 63, 310, 164, 4, 185, 280, 146, 87, 255, 221, 333, 340, 359, 130, 115, 276, 250, 120, 292, 226, 339, 298, 5, 329, 212, 146, 342, 74, 258, 73, 252, 185, 286, 245, 113, 289, 349, 58, 77, 337, 156, 328, 52, 356, 278, 27, 242, 319, 302, 195, 213, 291, 354, 125, 161, 321, 149, 236, 346, 239, 83, 62, 254, 302, 46, 66, 123, 192, 188, 225, 134, 132, 138, 32, 209, 191, 123, 106, 121, 117, 148, 115, 362, 256, 99, 317, 281, 231, 60, 186, 36, 360, 92, 159, 338, 61, 71, 330, 185, 244, 225, 152, 252, 257, 298, 149, 300, 76, 304, 313, 13, 182, 223, 138, 185, 192, 347, 306, 167, 11, 244, 135, 168, 83, 281, 259, 58, 69, 38, 101, 39, 48, 63, 134, 12, 167, 192, 83, 324, 4, 127, 9, 265, 233, 236, 134, 345, 129, 113, 196, 290, 138, 348, 251, 24, 286, 355, 325, 186, 305, 192, 5, 317, 272, 247, 299, 257, 40, 79, 30, 317, 39, 256, 161, 299, 214, 306, 42, 58, 193, 30, 254, 33, 206, 61, 85, 67, 302, 321, 130, 180, 33, 302, 228, 168, 323, 34, 365, 41, 335, 212, 176, 50, 279, 82, 238, 133, 228, 214, 304, 252, 125, 173, 149, 19, 208, 132, 340, 275, 8, 18, 160, 112, 53, 153, 214] TODO +[12, 6, 13, 15, 2, 9, 19, 16, 10, 11, 1, 14, 4, 21, 8, 20, 19, 3, 8, 15, 16] TODO +[95, 171, 188, 29, 130, 101, 94, 13, 107, 213, 152, 55, 172, 228, 87, 83, 197, 115, 237, 52, 142, 109, 102, 59, 219, 83, 22, 22, 54, 106, 141, 122, 41, 110, 70, 108, 206, 160, 211, 30, 83, 51, 198, 96, 152, 187, 37, 90, 194, 40, 153, 106, 224, 39, 37, 19, 197, 9, 147, 11, 19, 153, 149, 106, 66, 29, 65, 178, 229, 117, 96, 83, 60, 46, 172, 99, 185, 232, 203, 58, 31, 52, 10, 24, 147, 153, 70, 90, 222, 211, 194, 26, 212, 105, 175, 55, 230, 45, 48, 204, 170, 233, 49, 214, 78, 143, 16, 85, 181, 3, 80, 172, 76, 166, 154, 221, 97, 192, 218, 30, 87, 185, 143, 132, 169, 76, 97, 140, 192, 161, 96, 185, 40, 166, 6, 81, 124, 58, 196, 158, 77, 200, 130, 228, 18, 217, 55, 126, 104, 183, 207, 61, 170, 25, 12, 200, 212, 109, 198, 50, 88, 52, 62, 210, 64, 220, 122, 209, 53, 235, 40, 168, 82, 195, 193, 172, 235, 7, 6, 143, 172, 217, 100, 62, 69, 49, 81, 201, 149, 98, 20, 200, 177, 57, 72, 237, 212, 231, 157, 46, 181, 61, 110, 220, 67, 201, 160, 99, 59, 179, 46, 36, 232, 59, 163, 211, 186, 65, 44, 230, 125, 15, 177, 73, 151, 62, 236, 165, 212, 208, 121, 73, 18, 64, 166, 7, 83] TODO +[2, 3, 4, 2] TODO +[147, 169, 68, 115, 147, 91, 37, 97, 134, 153, 108, 55, 23, 149, 116, 162, 71, 60, 54, 23, 1, 136, 148, 153, 95, 102, 123, 18, 169, 116, 120, 112, 78, 161, 86, 111, 97, 45, 159, 109, 115, 72, 117, 100, 121, 156, 118, 173, 67, 52, 157, 11, 171, 129, 122, 90, 35, 42, 134, 153, 138, 7, 169, 102, 80, 9, 78, 40, 49, 72, 64, 72, 43, 142, 11, 83, 179, 116, 70, 57, 86, 125, 47, 127, 115, 11, 14, 49, 51, 88, 19, 146, 164, 42, 35, 17, 59, 93, 25, 150, 157, 77, 86, 146, 61, 55, 154, 98, 11, 103, 60, 76, 16, 4, 106, 146, 140, 133, 116, 85, 95, 39, 122, 62, 109, 35, 93, 10, 103, 47, 168, 22, 103, 157, 122, 35, 126, 148, 111, 52, 174, 53, 6, 43, 51, 118, 130, 158, 58, 159, 37, 172, 57, 34, 47, 45, 73, 26, 112, 14, 74, 1, 123, 119, 94, 72, 136, 4, 104, 168, 52, 160, 160, 175, 41, 114, 160, 62, 157, 56] TODO +[42, 8, 27, 3, 27, 21, 5, 41, 22, 7, 25, 45, 27, 11, 9, 31, 23, 18, 4, 23, 45, 40, 6, 26, 30, 8, 33, 6, 23, 26, 5, 35, 7, 38, 16, 26, 2, 29, 28, 38, 8, 4, 38, 42, 34] TODO +[3, 4, 1, 5, 1] TODO +[8, 50, 4, 4, 32, 23, 30, 48, 7, 15, 5, 24, 34, 12, 39, 53, 41, 14, 12, 41, 32, 35, 24, 37, 14, 46, 3, 6, 22, 19, 7, 13, 33, 8, 48, 27, 37, 31, 3, 43, 12, 17, 27, 9, 5, 14, 18, 33, 22, 28, 15, 27, 5] TODO +[35, 13, 37, 54, 17, 28, 13, 4, 1, 8, 54, 51, 7, 56, 33, 38, 34, 55, 27, 28, 42, 30, 4, 51, 38, 42, 18, 45, 29, 41, 47, 19, 3, 28, 25, 36, 10, 4, 36, 35, 42, 4, 24, 8, 37, 26, 9, 57, 21, 25, 51, 22, 4, 50, 42, 20, 27, 10, 33, 14] TODO +[80, 63, 57, 36, 38, 138, 48, 90, 151, 41, 105, 167, 119, 101, 139, 100, 29, 104, 148, 14, 119, 119, 83, 75, 148, 7, 81, 55, 107, 3, 161, 41, 57, 146, 45, 62, 3, 137, 52, 167, 79, 126, 136, 112, 66, 70, 24, 17, 125, 105, 67, 130, 11, 149, 47, 41, 57, 111, 65, 73, 96, 126, 44, 10, 63, 141, 53, 121, 21, 142, 23, 114, 29, 8, 29, 147, 51, 10, 125, 4, 119, 100, 54, 104, 78, 50, 107, 33, 147, 103, 38, 151, 56, 111, 66, 80, 140, 30, 57, 69, 99, 30, 132, 161, 110, 166, 5, 52, 71, 51, 120, 25, 79, 89, 55, 90, 42, 73, 33, 91, 88, 79, 165, 32, 16, 131, 158, 42, 123, 132, 69, 89, 151, 55, 88, 66, 99, 133, 121, 59, 3, 144, 75, 162, 109, 15, 72, 116, 1, 4, 41, 22, 136, 98, 15, 7, 5, 43, 45, 21, 22, 131, 139, 57, 98, 17, 85, 103] TODO +[196, 48, 72, 392, 179, 413, 123, 12, 50, 55, 156, 405, 144, 91, 305, 24, 108, 234, 359, 200, 235, 275, 374, 200, 387, 308, 62, 323, 406, 254, 330, 376, 113, 109, 105, 19, 407, 239, 370, 358, 316, 181, 246, 52, 272, 261, 370, 402, 298, 253, 2, 206, 128, 333, 82, 295, 393, 15, 162, 373, 340, 130, 272, 158, 162, 150, 393, 262, 192, 349, 56, 336, 46, 3, 396, 236, 48, 347, 149, 178, 404, 90, 287, 173, 188, 315, 196, 382, 117, 295, 338, 215, 364, 139, 281, 145, 361, 323, 359, 92, 154, 74, 123, 314, 208, 354, 198, 125, 379, 54, 203, 7, 95, 377, 141, 228, 313, 115, 304, 115, 329, 367, 262, 124, 343, 330, 289, 193, 89, 412, 209, 302, 238, 146, 146, 200, 160, 104, 322, 91, 89, 15, 284, 150, 101, 75, 77, 82, 193, 91, 10, 80, 253, 135, 340, 119, 225, 60, 346, 188, 266, 124, 301, 326, 187, 44, 376, 108, 222, 241, 263, 166, 254, 97, 276, 273, 370, 110, 212, 77, 290, 243, 37, 395, 316, 244, 121, 69, 98, 387, 216, 222, 392, 354, 317, 379, 6, 3, 130, 102, 250, 282, 319, 295, 264, 185, 249, 375, 201, 191, 245, 297, 70, 274, 233, 5, 395, 398, 234, 176, 321, 373, 271, 92, 230, 91, 61, 248, 315, 177, 287, 174, 13, 119, 386, 360, 123, 107, 306, 346, 334, 314, 176, 359, 21, 198, 224, 314, 91, 79, 294, 312, 23, 212, 168, 258, 205, 144, 359, 321, 360, 4, 396, 348, 337, 388, 181, 66, 1, 186, 250, 36, 225, 400, 316, 369, 170, 13, 220, 91, 9, 182, 240, 40, 87, 82, 408, 277, 113, 311, 408, 249, 43, 93, 20, 363, 95, 38, 234, 127, 186, 175, 326, 143, 155, 339, 326, 172, 215, 3, 396, 212, 227, 383, 209, 254, 195, 233, 124, 231, 118, 163, 2, 310, 50, 266, 86, 5, 148, 218, 272, 214, 329, 72, 394, 146, 144, 170, 22, 280, 270, 298, 374, 218, 287, 96, 30, 129, 405, 335, 271, 353, 406, 410, 153, 12, 39, 33, 290, 410, 255, 82, 169, 292, 337, 342, 329, 141, 223, 244, 109, 357, 29, 298, 382, 111, 117, 8, 319, 46, 355, 81, 40, 205, 260, 398, 117, 42, 296, 290, 243, 194, 50, 321, 83, 272, 397, 294, 158, 221, 4, 11, 18, 120, 195, 347, 313, 244, 303, 250, 147, 33, 107] TODO +[186, 362, 95, 365, 227, 28, 235, 48, 241, 289, 322, 156, 297, 277, 268, 86, 86, 292, 176, 315, 103, 339, 87, 180, 33, 288, 16, 239, 367, 138, 242, 198, 396, 83, 291, 204, 155, 224, 319, 378, 140, 127, 233, 297, 206, 261, 19, 304, 32, 97, 47, 321, 182, 371, 36, 279, 101, 363, 12, 63, 401, 232, 348, 54, 323, 217, 276, 260, 324, 245, 217, 295, 62, 190, 336, 65, 205, 111, 278, 356, 131, 226, 23, 193, 72, 371, 398, 3, 312, 2, 27, 243, 299, 218, 402, 116, 244, 318, 218, 398, 213, 26, 27, 404, 186, 313, 93, 185, 388, 297, 334, 71, 292, 48, 332, 200, 307, 241, 281, 48, 396, 122, 155, 284, 349, 33, 361, 351, 355, 165, 131, 171, 199, 383, 7, 136, 382, 332, 86, 291, 281, 18, 406, 330, 311, 330, 361, 85, 22, 311, 282, 367, 369, 144, 17, 215, 319, 178, 137, 256, 330, 99, 74, 315, 331, 169, 268, 44, 75, 66, 20, 196, 125, 203, 252, 179, 194, 379, 390, 71, 300, 114, 51, 165, 105, 319, 201, 329, 105, 270, 369, 321, 67, 138, 404, 152, 384, 201, 148, 269, 344, 166, 337, 221, 36, 297, 327, 191, 110, 305, 204, 370, 149, 237, 5, 147, 105, 5, 184, 333, 190, 388, 402, 66, 380, 371, 221, 116, 15, 290, 245, 203, 143, 112, 349, 87, 286, 58, 191, 266, 188, 138, 139, 298, 81, 50, 73, 84, 7, 171, 225, 273, 69, 311, 175, 240, 362, 199, 153, 400, 336, 130, 303, 383, 289, 192, 250, 248, 135, 3, 53, 99, 290, 246, 234, 58, 118, 191, 354, 111, 267, 173, 322, 232, 230, 227, 151, 196, 195, 314, 402, 6, 49, 265, 313, 402, 148, 225, 366, 355, 53, 66, 53, 163, 344, 53, 36, 402, 151, 157, 78, 198, 347, 396, 347, 325, 90, 351, 269, 96, 357, 24, 50, 179, 327, 393, 139, 405, 406, 122, 148, 142, 78, 256, 228, 89, 372, 249, 234, 224, 193, 298, 403, 359, 398, 405, 138, 82, 368, 198, 400, 174, 362, 42, 347, 4, 10, 3, 298, 90, 128, 364, 203, 92, 173, 31, 385, 235, 46, 70, 71, 269, 102, 182, 167, 51, 339, 154, 144, 31, 259, 114, 205, 3, 243, 264, 167, 207, 1, 62, 234, 374, 208, 318, 185, 149, 181, 213, 11, 88, 258, 291, 245, 240, 161, 361, 251] TODO +[12, 3, 15, 12, 16, 14, 15, 6, 14, 2, 4, 6, 16, 10, 5, 6, 19, 18, 15] TODO +[37, 42, 16, 4, 69, 34, 70, 28, 61, 57, 36, 23, 66, 71, 72, 6, 49, 60, 53, 34, 48, 15, 74, 40, 63, 41, 26, 13, 3, 32, 5, 74, 23, 27, 26, 71, 72, 15, 3, 72, 3, 51, 65, 6, 64, 68, 54, 49, 2, 61, 59, 23, 35, 35, 26, 33, 28, 29, 6, 11, 42, 12, 15, 33, 65, 3, 46, 66, 14, 32, 69, 26, 25, 27] TODO +[82, 104, 85, 31, 47, 2, 30, 30, 81, 35, 64, 84, 111, 99, 12, 93, 81, 96, 69, 34, 71, 48, 94, 17, 5, 25, 60, 27, 72, 112, 99, 30, 67, 34, 104, 32, 32, 98, 13, 121, 88, 34, 98, 83, 22, 36, 120, 118, 106, 3, 117, 117, 89, 81, 71, 4, 81, 65, 10, 71, 71, 20, 119, 91, 114, 103, 120, 48, 8, 85, 116, 24, 108, 96, 105, 9, 114, 84, 63, 85, 14, 87, 116, 66, 112, 4, 58, 37, 39, 59, 51, 6, 42, 58, 51, 105, 120, 117, 95, 30, 106, 115, 119, 88, 26, 88, 58, 42, 39, 77, 94, 25, 113, 119, 102, 38, 22, 75, 16, 58, 95, 61, 2] TODO +[25, 1, 15, 21, 10, 11, 13, 26, 20, 19, 6, 6, 4, 23, 27, 11, 2, 2, 4, 2, 15, 3, 23, 9, 27, 5, 1] TODO +[3, 10, 5, 14, 7, 14, 2, 7, 9, 10, 7, 13, 8, 14, 3] TODO +[80, 3, 72, 92, 4, 30, 8, 19, 55, 9, 90, 74, 102, 80, 6, 42, 129, 112, 6, 59, 60, 122, 92, 20, 134, 49, 71, 133, 78, 46, 20, 10, 93, 62, 119, 110, 96, 79, 82, 11, 62, 103, 125, 97, 35, 30, 4, 34, 51, 47, 72, 35, 68, 86, 99, 34, 112, 79, 104, 108, 17, 91, 130, 16, 86, 120, 15, 113, 130, 46, 88, 85, 39, 1, 94, 39, 85, 34, 72, 53, 29, 6, 70, 76, 116, 31, 111, 15, 11, 87, 123, 99, 104, 42, 43, 45, 24, 72, 132, 123, 117, 74, 27, 133, 111, 53, 53, 94, 83, 84, 4, 40, 37, 114, 18, 79, 65, 90, 26, 103, 9, 79, 90, 1, 14, 53, 9, 133, 57, 127, 46, 67, 2, 42] TODO +[15, 12, 16, 1, 1, 21, 10, 8, 6, 1, 23, 20, 9, 1, 1, 22, 9, 29, 28, 5, 21, 24, 15, 4, 14, 23, 16, 13, 15] TODO +[1, 13, 2, 16, 8, 38, 29, 17, 20, 35, 26, 7, 13, 19, 37, 39, 30, 38, 41, 29, 5, 15, 21, 9, 18, 40, 2, 34, 27, 38, 30, 37, 11, 28, 18, 18, 41, 31, 41, 22, 25] TODO +[68, 43, 14, 78, 89, 83, 22, 66, 8, 112, 98, 98, 38, 14, 79, 38, 31, 45, 22, 39, 48, 44, 96, 106, 32, 14, 91, 75, 81, 18, 40, 83, 100, 16, 1, 66, 83, 37, 26, 69, 68, 79, 41, 2, 53, 79, 111, 53, 88, 13, 105, 80, 12, 18, 109, 19, 18, 2, 98, 10, 82, 112, 116, 44, 34, 66, 70, 77, 33, 102, 90, 39, 99, 72, 61, 68, 63, 15, 96, 102, 109, 52, 38, 35, 29, 98, 27, 4, 80, 83, 23, 66, 62, 115, 90, 84, 66, 66, 35, 31, 104, 39, 11, 55, 7, 41, 76, 72, 26, 116, 55, 88, 34, 6, 56, 66, 102] TODO +[92, 62, 11, 12, 33, 62, 43, 66, 96, 5, 81, 68, 7, 12, 64, 56, 13, 62, 67, 61, 42, 46, 103, 31, 105, 71, 8, 91, 17, 89, 82, 87, 70, 105, 104, 60, 72, 70, 25, 66, 51, 38, 6, 103, 102, 42, 38, 22, 80, 87, 99, 14, 14, 59, 11, 39, 2, 53, 64, 2, 48, 74, 64, 97, 34, 80, 67, 69, 58, 56, 55, 55, 94, 13, 38, 103, 4, 38, 47, 81, 19, 42, 40, 21, 34, 34, 39, 102, 103, 84, 75, 3, 98, 46, 39, 63, 37, 65, 25, 74, 105, 72, 79, 52, 100, 62, 21] TODO +[4, 7, 2, 7, 5, 1, 4] TODO +[5, 3, 4, 5, 5] TODO +[21, 19, 58, 29, 27, 33, 52, 1, 21, 48, 10, 50, 25, 58, 18, 39, 47, 53, 44, 39, 25, 38, 42, 4, 47, 6, 11, 45, 36, 54, 7, 56, 39, 22, 7, 22, 35, 25, 19, 20, 7, 4, 38, 57, 2, 18, 6, 55, 34, 29, 48, 25, 16, 33, 57, 7, 4, 37] TODO +[9, 22, 11, 11, 7, 20, 26, 11, 17, 7, 13, 3, 23, 5, 16, 2, 10, 9, 3, 8, 19, 25, 9, 10, 22, 12] TODO +[4, 1, 3, 7, 3, 4, 4, 3, 5] TODO +[61, 83, 41, 71, 23, 54, 32, 26, 86, 71, 28, 60, 30, 57, 43, 32, 68, 86, 59, 26, 4, 5, 24, 66, 21, 10, 23, 71, 3, 63, 81, 86, 50, 26, 15, 51, 4, 44, 60, 5, 64, 63, 88, 43, 11, 47, 64, 54, 84, 9, 53, 49, 87, 41, 37, 24, 7, 39, 25, 87, 83, 64, 17, 61, 25, 40, 49, 76, 22, 50, 59, 50, 51, 52, 52, 33, 77, 42, 2, 47, 57, 51, 74, 7, 76, 3, 83, 4] TODO +[26, 33, 23, 11, 18, 39, 16, 36, 49, 81, 61, 9, 85, 56, 17, 30, 45, 51, 19, 29, 80, 13, 52, 65, 26, 45, 2, 40, 74, 31, 38, 37, 37, 42, 56, 49, 84, 22, 68, 4, 72, 23, 11, 16, 52, 21, 71, 69, 30, 75, 27, 24, 73, 14, 69, 67, 36, 14, 47, 41, 79, 66, 50, 27, 33, 43, 13, 3, 39, 83, 38, 78, 39, 86, 82, 18, 67, 48, 27, 56, 13, 8, 9, 56, 86, 69] TODO +[54, 11, 46, 45, 100, 12, 80, 82, 42, 146, 114, 107, 15, 70, 45, 138, 90, 90, 66, 132, 38, 119, 145, 118, 47, 107, 36, 56, 136, 89, 58, 119, 52, 104, 88, 128, 35, 82, 44, 140, 124, 95, 59, 16, 89, 111, 54, 44, 8, 58, 46, 27, 99, 53, 146, 109, 10, 9, 15, 94, 28, 15, 89, 39, 9, 49, 63, 78, 44, 23, 69, 51, 17, 117, 88, 80, 28, 96, 49, 66, 111, 26, 137, 71, 123, 30, 145, 45, 102, 53, 78, 25, 112, 91, 140, 85, 103, 29, 13, 26, 64, 86, 16, 51, 81, 130, 143, 51, 115, 146, 93, 83, 115, 126, 104, 96, 46, 99, 50, 111, 119, 66, 26, 5, 28, 4, 9, 104, 47, 112, 134, 112, 115, 113, 39, 113, 119, 85, 46, 61, 55, 71, 113, 95, 90, 49, 46] TODO +[7, 1, 4, 30, 27, 20, 14, 14, 16, 27, 23, 32, 17, 32, 11, 14, 27, 32, 7, 19, 15, 32, 33, 32, 19, 12, 25, 21, 29, 24, 35, 11, 9, 25, 34] TODO +[36, 21, 27, 56, 61, 8, 24, 52, 18, 70, 22, 41, 57, 55, 28, 53, 2, 18, 50, 38, 18, 36, 49, 26, 64, 20, 56, 60, 49, 39, 18, 16, 5, 41, 19, 27, 35, 18, 69, 13, 27, 21, 13, 70, 52, 2, 32, 24, 12, 41, 25, 23, 56, 25, 5, 61, 42, 14, 53, 36, 27, 18, 5, 64, 18, 4, 66, 31, 59, 10, 36] TODO +[4, 1, 6, 3, 4, 2, 1] TODO +[1, 7, 3, 7, 3, 6, 5] TODO +[1, 11, 17, 12, 14, 2, 18, 17, 13, 11, 20, 5, 18, 19, 9, 12, 20, 11, 16, 14] TODO +[69, 128, 42, 41, 68, 160, 107, 121, 84, 71, 93, 17, 152, 112, 20, 93, 122, 47, 138, 65, 123, 91, 27, 88, 73, 84, 33, 13, 21, 56, 151, 31, 46, 164, 3, 86, 112, 34, 64, 34, 4, 166, 55, 104, 58, 146, 156, 104, 17, 44, 138, 72, 98, 134, 32, 11, 159, 26, 112, 79, 140, 74, 19, 19, 6, 159, 114, 12, 137, 7, 132, 65, 127, 28, 95, 35, 138, 23, 78, 27, 87, 121, 32, 101, 160, 8, 98, 133, 132, 50, 95, 59, 62, 46, 108, 86, 161, 38, 22, 55, 4, 23, 54, 143, 90, 32, 30, 21, 69, 38, 114, 59, 146, 65, 111, 31, 155, 34, 107, 118, 31, 95, 62, 98, 22, 121, 82, 43, 19, 124, 91, 61, 136, 113, 14, 53, 33, 86, 164, 78, 45, 164, 133, 80, 123, 157, 124, 42, 30, 116, 74, 143, 83, 152, 81, 61, 129, 97, 144, 127, 156, 81, 78, 8, 97, 147] TODO +[2, 6, 5, 5, 4, 4] TODO +[1, 87, 100, 69, 36, 48, 21, 87, 67, 62, 47, 41, 58, 53, 58, 75, 29, 32, 74, 38, 93, 32, 31, 53, 12, 33, 103, 79, 80, 2, 89, 48, 74, 22, 34, 35, 55, 17, 9, 56, 56, 103, 91, 14, 74, 27, 2, 40, 8, 8, 1, 64, 33, 65, 83, 96, 52, 4, 91, 57, 20, 9, 15, 53, 20, 67, 31, 76, 76, 92, 92, 28, 49, 92, 103, 34, 4, 35, 50, 104, 12, 64, 72, 79, 49, 67, 14, 50, 3, 20, 74, 51, 52, 96, 34, 58, 75, 29, 95, 70, 50, 64, 53, 28] TODO +[2, 7, 5, 6, 7, 7, 4] TODO +[18, 13, 6, 3, 1, 22, 6, 9, 16, 11, 16, 15, 1, 10, 19, 7, 8, 16, 2, 21, 9, 16] TODO +[217, 77, 50, 115, 132, 194, 95, 188, 99, 170, 161, 20, 84, 170, 41, 152, 123, 14, 78, 72, 190, 45, 186, 37, 194, 96, 102, 32, 114, 159, 186, 41, 148, 227, 211, 71, 43, 15, 24, 92, 159, 126, 205, 89, 126, 124, 183, 131, 131, 175, 83, 115, 91, 61, 104, 80, 207, 16, 183, 2, 78, 67, 94, 56, 67, 85, 16, 207, 17, 209, 177, 227, 47, 34, 5, 110, 180, 171, 36, 151, 224, 5, 65, 178, 54, 213, 127, 129, 109, 28, 102, 182, 20, 2, 48, 25, 195, 27, 176, 228, 174, 185, 139, 101, 27, 43, 190, 205, 222, 93, 62, 97, 202, 20, 177, 24, 227, 227, 179, 121, 18, 29, 6, 204, 1, 228, 158, 56, 186, 13, 66, 10, 47, 38, 85, 81, 80, 75, 73, 190, 38, 21, 95, 19, 121, 156, 186, 221, 187, 5, 50, 140, 125, 79, 3, 13, 226, 203, 180, 190, 195, 126, 57, 6, 165, 142, 195, 205, 35, 118, 165, 178, 119, 77, 79, 189, 227, 120, 189, 127, 138, 9, 59, 195, 132, 218, 120, 49, 219, 127, 158, 93, 78, 10, 147, 213, 121, 211, 199, 118, 199, 8, 179, 165, 133, 141, 47, 144, 100, 88, 188, 114, 11, 132, 213, 131, 16, 119, 75, 121, 124, 48, 61, 36, 150, 70, 70, 210] TODO +[5, 30, 1, 31, 5, 5, 13, 13, 11, 30, 6, 30, 26, 33, 24, 27, 17, 21, 24, 31, 33, 31, 20, 32, 6, 13, 17, 29, 1, 19, 9, 18, 2] TODO +[4, 1, 4, 1] TODO +[5, 1, 3, 6, 3, 2, 3] TODO +[5, 11, 1, 3, 2, 1, 12, 3, 11, 3, 11, 3] TODO +[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 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, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 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, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 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, 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, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 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, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 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, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 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, 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, 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, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 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, 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, 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, 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, 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, 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, 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, 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, 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, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 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, 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, 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, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 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, 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, 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, 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, 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, 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, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 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, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 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, 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, 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, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 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, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 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, 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, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 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, 4395, 4396, 4397, 4398, 4399, 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, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 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, 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, 4549, 4550, 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, 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, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 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, 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, 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, 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, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 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, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 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, 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, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 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, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 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, 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, 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, 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, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 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, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 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, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 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, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 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, 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, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 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, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 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, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 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, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999] TODO +[10, 10, 3, 7, 6, 4, 5, 10, 7, 1, 6, 2, 9, 1, 9, 3, 7, 4, 3, 3, 5, 8, 6, 3, 4, 3, 4, 1, 9, 6, 7, 6, 2, 10, 6, 9, 9, 7, 3, 5, 10, 4, 7, 2, 7, 5, 3, 4, 5, 10, 10, 4, 8, 4, 7, 6, 6, 7, 5, 1, 2, 1, 9, 5, 3, 3, 2, 6, 3, 7, 2, 2, 6, 8, 1, 10, 2, 9, 4, 4, 5, 3, 3, 3, 4, 3, 7, 8, 2, 5, 9, 3, 7, 2, 6, 4, 2, 1, 6, 3, 1, 2, 1, 10, 3, 6, 5, 5, 8, 7, 10, 10, 5, 5, 5, 9, 8, 4, 1, 9, 8, 2, 4, 7, 10, 1, 1, 3, 7, 1, 1, 8, 9, 9, 7, 3, 3, 8, 9, 6, 5, 7, 10, 3, 5, 5, 6, 6, 4, 7, 4, 1, 6, 4, 10, 7, 7, 7, 4, 4, 3, 10, 10, 1, 6, 4, 5, 6, 9, 1, 3, 1, 10, 5, 1, 6, 8, 7, 5, 2, 5, 3, 10, 1, 10, 4, 10, 2, 1, 4, 6, 8, 1, 8, 2, 8, 1, 7, 4, 10, 3, 9, 1, 5, 1, 4, 1, 10, 6, 8, 5, 6, 1, 5, 10, 4, 10, 1, 6, 4, 3, 3, 9, 2, 7, 10, 10, 1, 9, 5, 10, 8, 7, 2, 7, 2, 2, 6, 8, 1, 9, 10, 7, 6, 2, 10, 3, 6, 2, 9, 7, 1, 6, 4, 3, 2, 1, 2, 3, 7, 4, 7, 1, 2, 8, 2, 2, 10, 5, 4, 9, 10, 2, 3, 4, 5, 1, 2, 5, 10, 2, 8, 8, 7, 3, 1, 8, 3, 2, 10, 7, 7, 6, 5, 9, 5, 2, 5, 4, 9, 7, 9, 10, 2, 7, 4, 9, 5, 9, 10, 10, 1, 6, 2, 8, 1, 3, 3, 4, 4, 10, 7, 4, 5, 2, 1, 1, 4, 3, 4, 2, 10, 8, 6, 8, 7, 3, 8, 5, 7, 2, 8, 7, 5, 10, 2, 6, 10, 10, 4, 10, 3, 3, 5, 9, 7, 1, 1, 1, 8, 10, 6, 1, 3, 2, 2, 6, 9, 10, 6, 5, 3, 7, 1, 9, 8, 8, 6, 8, 7, 4, 2, 8, 3, 10, 4, 10, 4, 10, 1, 2, 4, 3, 2, 5, 6, 9, 9, 2, 8, 3, 4, 9, 5, 9, 6, 1, 2, 6, 5, 10, 2, 7, 4, 3, 8, 8, 6, 5, 6, 8, 2, 9, 6, 9, 10, 8, 7, 3, 9, 4, 8, 4, 8, 8, 8, 9, 7, 9, 8, 5, 2, 6, 7, 7, 8, 4, 9, 5, 1, 3, 1, 4, 9, 4, 3, 6, 5, 8, 7, 8, 7, 10, 2, 5, 5, 9, 9, 10, 7, 9, 8, 10, 10, 1, 6, 5, 7, 4, 8, 5, 7, 1, 8, 5, 2, 1, 10, 2, 6, 10, 4, 10, 2, 9, 2, 1, 5, 7, 4, 7, 8, 4, 10, 4, 3, 1, 6, 2, 7, 2, 8, 5, 9, 2, 7, 3, 2, 10, 8, 1, 10, 1, 1, 3, 5, 5, 9, 3, 9, 3, 7, 2, 4, 4, 10, 8, 9, 5, 5, 5, 1, 4, 5, 7, 9, 8, 7, 1, 10, 3, 2, 8, 10, 10, 5, 5, 1, 4, 8, 6, 4, 7, 2, 6, 5, 2, 9, 10, 1, 9, 9, 10, 8, 2, 1, 2, 2, 3, 1, 8, 10, 8, 7, 1, 10, 1, 9, 2, 3, 6, 3, 1, 9, 6, 6, 7, 5, 7, 10, 8, 2, 9, 4, 3, 10, 4, 10, 5, 4, 3, 10, 3, 10, 10, 1, 7, 5, 3, 5, 5, 3, 10, 1, 1, 6, 6, 2, 4, 6, 6, 10, 5, 10, 7, 3, 9, 3, 2, 3, 1, 1, 1, 4, 7, 5, 10, 7, 8, 5, 3, 2, 7, 4, 9, 4, 10, 5, 1, 6, 5, 10, 3, 2, 1, 2, 2, 1, 10, 7, 1, 6, 10, 4, 10, 2, 2, 6, 8, 7, 1, 5, 6, 9, 10, 9, 4, 6, 7, 2, 5, 10, 5, 9, 4, 8, 10, 4, 8, 3, 5, 7, 3, 9, 8, 9, 7, 4, 8, 3, 10, 1, 9, 2, 1, 3, 3, 1, 8, 5, 5, 2, 9, 4, 8, 2, 4, 6, 6, 9, 10, 9, 2, 1, 3, 9, 3, 2, 3, 2, 7, 8, 6, 3, 8, 4, 5, 1, 5, 8, 8, 10, 10, 9, 9, 9, 1, 5, 1, 4, 5, 5, 4, 5, 9, 1, 2, 5, 2, 10, 2, 3, 4, 1, 3, 5, 4, 9, 3, 2, 2, 8, 1, 2, 4, 3, 4, 9, 7, 9, 4, 8, 8, 1, 4, 8, 8, 2, 5, 4, 1, 3, 10, 6, 8, 8, 6, 10, 6, 7, 9, 7, 6, 2, 7, 3, 1, 4, 1, 8, 2, 6, 8, 1, 6, 9, 5, 2, 6, 9, 9, 2, 7, 1, 1, 6, 10, 9, 1, 2, 9, 6, 5, 10, 10, 8, 9, 6, 3, 10, 7, 7, 1, 4, 3, 4, 1, 1, 4, 8, 1, 2, 7, 7, 2, 3, 6, 1, 3, 9, 1, 8, 7, 8, 10, 1, 4, 9, 8, 10, 8, 6, 8, 2, 9, 10, 5, 7, 9, 3, 8, 7, 4, 4, 3, 3, 8, 10, 7, 10, 10, 9, 3, 7, 6, 8, 4, 8, 8, 7, 2, 3, 5, 10, 2, 6, 3, 7, 3, 9, 9, 1, 7, 3, 8, 6, 6, 4, 10, 1, 6, 10, 6, 10, 9, 3, 8, 1, 3, 10, 6, 6, 10, 5, 6, 8, 1, 6, 6, 6, 2, 3, 9, 2, 6, 2, 9, 5, 8, 3, 9, 4, 4, 2, 9, 7, 7, 7, 2, 7, 2, 3, 1, 1, 4, 9, 5, 5, 3, 10, 7, 9, 1, 2, 3, 4, 5, 9, 2, 2, 10, 10, 3, 2, 9, 1, 6, 2, 2, 9, 1, 7, 9, 7, 10, 7, 7, 9, 3, 5, 7, 5, 2, 5, 5, 9, 10, 1, 9, 9, 5, 3, 3, 7, 10, 5, 6, 2, 9, 10, 9, 6, 8, 2, 3, 4, 1, 7, 7, 7, 6, 10, 5, 10, 6, 3, 7, 3, 10, 3, 2, 8, 9, 2, 5, 2, 7, 2, 10, 1, 9, 2, 7, 1, 5, 9, 4, 1, 1, 1, 3, 3, 9, 2, 9, 3, 10, 6, 9, 10, 3, 2, 8, 1, 9, 6, 2, 7, 7, 1, 3, 5, 10, 9, 10, 5, 2, 1, 6, 1, 10, 9, 9, 1, 5, 1, 4, 7, 3, 7, 7, 7, 2, 6, 3, 9, 9, 1, 7, 3, 7, 1, 1, 5, 10, 8, 1, 10, 9, 1, 8, 8, 3, 6, 6, 4, 7, 5, 8, 4, 3, 1, 4, 7, 2, 10, 3, 9, 4, 8, 1, 7, 7, 8, 10, 3, 10, 6, 8, 6, 2, 10, 2, 8, 9, 10, 5, 1, 10, 4, 5, 6, 4, 5, 3, 1, 10, 3, 10, 2, 4, 4, 2, 10, 6, 8, 8, 8, 6, 9, 9, 10, 7, 6, 5, 7, 5, 5, 6, 6, 7, 7, 2, 1, 9, 7, 9, 2, 6, 10, 5, 6, 10, 5, 6, 7, 10, 9, 9, 7, 1, 10, 4, 3, 5, 10, 1, 7, 2, 1, 3, 5, 8, 9, 2, 6, 4, 5, 7, 9, 9, 5, 7, 9, 10, 5, 1, 3, 3, 10, 8, 9, 5, 3, 5, 6, 7, 8, 10, 7, 2, 1, 5, 1, 5, 2, 2, 8, 2, 9, 2, 4, 2, 10, 10, 8, 3, 8, 8, 6, 8, 3, 3, 7, 9, 1, 2, 6, 4, 2, 10, 3, 8, 7, 10, 8, 8, 2, 4, 1, 1, 2, 3, 5, 8, 8, 6, 8, 8, 4, 6, 1, 10, 6, 3, 2, 7, 10, 1, 5, 5, 5, 9, 8, 6, 7, 3, 8, 1, 7, 7, 5, 7, 10, 4, 2, 9, 3, 7, 5, 3, 8, 9, 9, 6, 4, 9, 9, 4, 8, 3, 8, 4, 8, 8, 3, 9, 4, 2, 4, 2, 7, 3, 10, 2, 10, 1, 10, 3, 9, 8, 10, 2, 7, 4, 2, 10, 9, 3, 8, 9, 9, 5, 9, 5, 3, 9, 6, 3, 3, 7, 7, 4, 2, 9, 10, 4, 3, 1, 3, 4, 4, 3, 10, 10, 3, 5, 3, 3, 2, 3, 9, 5, 4, 2, 5, 6, 8, 1, 10, 2, 9, 8, 2, 10, 4, 6, 1, 2, 9, 1, 10, 2, 10, 2, 8, 7, 8, 9, 10, 9, 4, 10, 1, 9, 8, 2, 7, 4, 10, 2, 6, 6, 4, 7, 5, 8, 6, 8, 1, 9, 9, 2, 4, 8, 7, 3, 7, 5, 9, 7, 6, 9, 3, 6, 7, 5, 1, 1, 9, 10, 1, 9, 7, 10, 1, 1, 8, 8, 6, 3, 8, 4, 1, 5, 8, 9, 10, 1, 4, 1, 4, 10, 3, 4, 3, 6, 3, 8, 10, 10, 2, 6, 2, 2, 4, 6, 2, 9, 7, 10, 10, 3, 10, 4, 1, 9, 5, 1, 4, 9, 10, 7, 6, 1, 9, 1, 4, 5, 5, 6, 6, 9, 4, 7, 3, 9, 9, 3, 2, 1, 10, 9, 4, 10, 6, 6, 2, 3, 9, 7, 4, 4, 8, 3, 8, 1, 8, 7, 7, 7, 8, 8, 4, 4, 8, 1, 1, 7, 9, 10, 9, 3, 8, 8, 2, 3, 10, 10, 8, 1, 10, 5, 6, 6, 4, 2, 2, 8, 4, 10, 1, 7, 3, 5, 7, 8, 7, 4, 1, 7, 7, 2, 10, 6, 10, 1, 1, 9, 9, 6, 1, 4, 7, 9, 1, 6, 3, 8, 4, 2, 3, 7, 9, 6, 8, 4, 10, 5, 1, 6, 5, 7, 3, 1, 3, 8, 3, 8, 8, 8, 2, 10, 6, 5, 9, 10, 4, 1, 1, 10, 5, 4, 6, 2, 3, 8, 8, 5, 1, 4, 8, 10, 3, 5, 10, 5, 7, 9, 1, 7, 1, 5, 10, 9, 5, 10, 4, 1, 2, 8, 5, 5, 3, 9, 8, 8, 10, 4, 5, 3, 5, 1, 4, 2, 2, 8, 8, 9, 4, 6, 6, 2, 6, 4, 9, 6, 2, 6, 3, 5, 10, 1, 5, 1, 6, 10, 5, 10, 8, 1, 3, 2, 2, 6, 9, 5, 2, 9, 8, 5, 2, 6, 4, 6, 8, 3, 9, 6, 9, 5, 4, 5, 9, 2, 9, 5, 8, 3, 10, 8, 5, 2, 10, 7, 3, 1, 7, 3, 8, 3, 2, 7, 9, 5, 7, 3, 1, 8, 2, 1, 2, 6, 3, 8, 10, 7, 4, 10, 6, 7, 9, 8, 5, 10, 6, 9, 2, 9, 2, 10, 4, 6, 8, 2, 8, 3, 10, 10, 3, 2, 3, 3, 2, 7, 8, 4, 8, 3, 9, 10, 3, 1, 1, 6, 7, 2, 8, 4, 4, 7, 7, 9, 8, 2, 8, 8, 2, 6, 3, 1, 5, 2, 5, 10, 10, 1, 1, 4, 7, 8, 2, 8, 2, 7, 7, 4, 3, 2, 1, 1, 4, 1, 10, 1, 6, 8, 3, 10, 3, 6, 6, 1, 3, 7, 3, 3, 2, 8, 1, 6, 8, 3, 1, 5, 9, 6, 9, 1, 1, 6, 7, 7, 8, 3, 4, 8, 5, 6, 4, 9, 2, 4, 8, 3, 8, 9, 8, 10, 9, 1, 6, 5, 1, 5, 6, 10, 4, 8, 5, 1, 9, 8, 10, 6, 7, 10, 7, 5, 1, 4, 5, 3, 7, 4, 9, 3, 10, 6, 4, 2, 3, 6, 3, 10, 8, 8, 3, 4, 10, 7, 3, 10, 6, 7, 1, 2, 8, 4, 2, 2, 7, 1, 6, 7, 1, 5, 8, 1, 5, 7, 10, 7, 1, 9, 8, 3, 8, 7, 6, 5, 1, 5, 6, 6, 2, 3, 8, 9, 2, 9, 6, 1, 4, 10, 6, 7, 6, 3, 5, 10, 6, 1, 3, 2, 1, 6, 8, 7, 6, 10, 4, 8, 2, 10, 1, 7, 6, 6, 9, 4, 3, 2, 5, 6, 10, 3, 2, 9, 7, 1, 10, 6, 9, 5, 5, 5, 2, 4, 8, 2, 5, 4, 6, 1, 3, 7, 7, 4, 6, 3, 9, 3, 8, 1, 5, 4, 6, 4, 10, 5, 1, 3, 1, 3, 10, 3, 3, 6, 7, 3, 10, 8, 9, 8, 1, 8, 7, 8, 6, 5, 7, 9, 6, 5, 6, 9, 5, 4, 7, 2, 6, 8, 4, 5, 6, 7, 10, 8, 9, 7, 7, 6, 2, 9, 3, 1, 6, 4, 7, 2, 4, 1, 5, 10, 6, 6, 8, 8, 2, 9, 7, 7, 8, 9, 1, 8, 8, 8, 8, 8, 3, 9, 9, 1, 7, 7, 6, 7, 4, 3, 2, 6, 8, 5, 1, 9, 6, 4, 3, 10, 2, 5, 4, 9, 3, 5, 3, 9, 7, 1, 1, 8, 1, 5, 3, 1, 7, 6, 3, 3, 10, 9, 3, 8, 8, 6, 2, 2, 2, 9, 6, 10, 7, 4, 3, 1, 1, 4, 8, 9, 9, 4, 2, 10, 1, 9, 7, 3, 6, 3, 2, 4, 1, 4, 6, 9, 3, 1, 6, 9, 4, 4, 8, 3, 4, 1, 5, 3, 3, 10, 8, 2, 5, 7, 9, 7, 4, 3, 6, 9, 10, 4, 2, 9, 1, 10, 2, 5, 6, 1, 4, 9, 1, 4, 4, 2, 3, 8, 4, 2, 10, 5, 9, 3, 4, 1, 8, 2, 1, 9, 7, 4, 4, 5, 8, 4, 10, 7, 9, 1, 6, 2, 10, 2, 5, 9, 6, 5, 2, 8, 3, 7, 6, 5, 1, 5, 1, 2, 3, 2, 9, 10, 3, 5, 3, 10, 10, 10, 4, 7, 8, 8, 10, 10, 10, 5, 8, 3, 3, 1, 7, 7, 7, 3, 5, 10, 7, 10, 4, 9, 2, 4, 6, 2, 3, 9, 6, 6, 1, 10, 8, 6, 7, 7, 2, 5, 9, 4, 6, 9, 7, 5, 6, 2, 1, 7, 4, 10, 7, 4, 8, 7, 7, 5, 6, 3, 2, 5, 1, 5, 4, 1, 10, 10, 3, 4, 5, 5, 6, 7, 1, 4, 2, 6, 6, 7, 7, 1, 6, 4, 6, 8, 2, 6, 3, 7, 1, 5, 8, 2, 6, 3, 6, 10, 9, 9, 2, 5, 2, 8, 4, 4, 4, 8, 10, 2, 8, 3, 10, 5, 1, 4, 4, 3, 6, 1, 7, 10, 5, 1, 5, 6, 3, 7, 8, 10, 1, 6, 2, 3, 5, 5, 9, 10, 2, 3, 4, 7, 7, 1, 9, 3, 3, 1, 4, 1, 6, 7, 8, 3, 3, 10, 9, 10, 4, 2, 5, 8, 3, 6, 10, 3, 3, 9, 9, 5, 2, 3, 7, 7, 10, 1, 3, 3, 3, 2, 7, 7, 2, 4, 1, 4, 6, 8, 7, 2, 1, 9, 2, 3, 8, 6, 6, 1, 1, 5, 9, 9, 8, 1, 1, 4, 1, 5, 8, 3, 6, 4, 7, 6, 8, 1, 7, 8, 5, 10, 8, 4, 3, 3, 1, 3, 2, 6, 4, 3, 8, 7, 4, 10, 10, 4, 9, 6, 7, 3, 5, 7, 9, 6, 9, 1, 6, 7, 1, 5, 2, 5, 8, 3, 5, 2, 6, 7, 2, 9, 4, 10, 6, 1, 10, 8, 9, 3, 9, 8, 7, 4, 8, 6, 9, 7, 10, 7, 3, 10, 4, 8, 7, 1, 5, 3, 8, 4, 2, 3, 10, 1, 6, 4, 3, 2, 8, 5, 6, 9, 10, 6, 1, 5, 7, 10, 6, 1, 9, 10, 9, 4, 7, 1, 3, 4, 10, 10, 4, 2, 4, 3, 2, 9, 4, 3, 2, 5, 2, 6, 5, 3, 1, 3, 1, 8, 7, 6, 4, 2, 6, 9, 4, 5, 1, 7, 8, 2, 8, 8, 9, 1, 9, 4, 4, 4, 6, 4, 7, 6, 4, 6, 10, 9, 5, 5, 1, 10, 10, 10, 4, 2, 3, 1, 7, 8, 3, 5, 7, 8, 1, 6, 7, 3, 1, 7, 5, 2, 7, 7, 7, 2, 8, 3, 10, 9, 6, 3, 3, 7, 1, 4, 4, 7, 10, 9, 6, 4, 1, 4, 5, 1, 10, 4, 1, 5, 5, 9, 9, 10, 8, 6, 8, 9, 10, 1, 4, 2, 9, 6, 9, 7, 3, 2, 5, 1, 7, 3, 10, 2, 8, 6, 1, 6, 7, 3, 2, 3, 9, 5, 7, 7, 3, 10, 9, 7, 4, 2, 7, 6, 8, 7, 6, 1, 4, 8, 4, 9, 9, 4, 5, 5, 9, 7, 9, 7, 9, 3, 4, 8, 5, 1, 9, 1, 8, 9, 2, 3, 5, 8, 3, 1, 9, 3, 3, 8, 6, 6, 6, 2, 2, 8, 10, 1, 6, 5, 5, 7, 5, 2, 4, 1, 5, 9, 10, 1, 7, 9, 6, 1, 2, 2, 7, 8, 8, 2, 3, 9, 5, 1, 6, 6, 4, 5, 3, 8, 8, 5, 8, 10, 4, 2, 8, 9, 10, 5, 5, 2, 4, 7, 8, 8, 1, 2, 6, 1, 4, 1, 5, 8, 3, 9, 3, 5, 6, 5, 5, 2, 10, 4, 6, 9, 6, 8, 5, 4, 5, 5, 7, 6, 8, 5, 5, 1, 10, 4, 7, 4, 6, 3, 3, 5, 1, 7, 6, 7, 2, 7, 4, 10, 7, 1, 4, 1, 4, 10, 7, 4, 3, 9, 1, 2, 10, 7, 10, 5, 7, 2, 4, 1, 3, 6, 6, 10, 6, 7, 9, 5, 5, 10, 4, 9, 5, 10, 2, 5, 10, 3, 9, 4, 4, 4, 1, 4, 1, 6, 5, 2, 5, 2, 7, 9, 2, 10, 9, 10, 6, 7, 6, 5, 9, 5, 2, 3, 1, 1, 10, 8, 5, 8, 9, 1, 1, 10, 1, 10, 6, 1, 8, 4, 5, 5, 10, 3, 8, 7, 3, 5, 10, 2, 9, 10, 3, 5, 8, 1, 3, 3, 3, 1, 1, 5, 4, 3, 4, 2, 2, 7, 2, 1, 8, 5, 3, 7, 3, 8, 5, 4, 6, 4, 2, 4, 9, 1, 4, 6, 5, 10, 8, 6, 10, 8, 7, 4, 6, 7, 8, 3, 6, 10, 4, 1, 3, 7, 7, 10, 7, 6, 5, 7, 8, 4, 7, 7, 2, 3, 7, 8, 9, 7, 3, 6, 5, 7, 2, 1, 1, 8, 9, 4, 6, 6, 1, 6, 5, 1, 10, 9, 10, 3, 9, 8, 5, 9, 9, 10, 5, 7, 5, 8, 5, 7, 10, 6, 1, 2, 9, 6, 2, 1, 10, 1, 9, 6, 3, 6, 3, 8, 4, 4, 1, 5, 8, 9, 2, 10, 10, 1, 3, 10, 2, 4, 6, 3, 3, 10, 10, 4, 8, 10, 1, 8, 2, 1, 3, 1, 10, 2, 9, 5, 8, 8, 7, 7, 3, 9, 10, 5, 1, 5, 7, 1, 7, 9, 2, 10, 5, 1, 7, 6, 10, 3, 10, 7, 8, 2, 6, 2, 1, 10, 4, 5, 8, 4, 7, 9, 5, 1, 4, 3, 8, 8, 10, 8, 6, 9, 8, 2, 6, 2, 4, 3, 10, 5, 8, 10, 4, 8, 8, 1, 6, 8, 6, 8, 7, 7, 7, 2, 10, 3, 5, 3, 1, 6, 2, 2, 8, 10, 4, 1, 10, 5, 6, 8, 6, 10, 8, 9, 9, 6, 7, 10, 2, 5, 5, 1, 9, 4, 8, 6, 6, 2, 9, 2, 4, 7, 7, 3, 1, 2, 8, 3, 4, 2, 9, 2, 10, 6, 5, 7, 6, 10, 3, 2, 10, 8, 3, 8, 3, 1, 5, 8, 2, 6, 7, 2, 4, 7, 7, 7, 4, 3, 9, 3, 1, 4, 5, 8, 4, 10, 6, 8, 7, 2, 7, 7, 4, 5, 4, 4, 1, 5, 9, 3, 2, 6, 5, 10, 4, 4, 9, 9, 8, 8, 1, 2, 2, 10, 5, 5, 1, 5, 9, 3, 1, 4, 3, 7, 3, 2, 1, 8, 8, 6, 4, 7, 9, 3, 3, 2, 1, 10, 6, 9, 4, 2, 7, 8, 5, 1, 1, 10, 9, 10, 3, 10, 9, 9, 8, 8, 1, 3, 6, 1, 6, 6, 9, 7, 4, 7, 8, 3, 2, 6, 1, 8, 5, 1, 6, 5, 10, 2, 6, 10, 2, 6, 8, 2, 3, 6, 2, 8, 2, 4, 10, 7, 1, 8, 10, 1, 10, 8, 8, 4, 7, 4, 5, 4, 2, 2, 6, 5, 5, 6, 10, 5, 8, 9, 6, 7, 2, 2, 2, 4, 5, 1, 4, 7, 3, 2, 6, 2, 4, 4, 5, 4, 2, 7, 7, 10, 3, 4, 8, 5, 10, 5, 3, 6, 5, 7, 5, 2, 5, 6, 3, 10, 2, 3, 3, 7, 9, 4, 3, 7, 9, 10, 10, 8, 6, 1, 10, 9, 2, 1, 9, 9, 7, 6, 10, 3, 7, 4, 5, 6, 8, 2, 3, 3, 7, 9, 3, 1, 8, 5, 3, 2, 9, 7, 6, 2, 8, 1, 10, 10, 5, 1, 8, 7, 5, 10, 2, 10, 1, 5, 6, 8, 10, 9, 8, 8, 5, 4, 2, 5, 6, 4, 5, 9, 8, 7, 5, 4, 2, 10, 6, 8, 8, 10, 10, 10, 3, 3, 8, 2, 6, 8, 3, 2, 1, 2, 4, 4, 7, 1, 3, 6, 6, 2, 9, 3, 6, 5, 9, 6, 5, 1, 1, 5, 3, 3, 1, 4, 5, 6, 8, 7, 2, 9, 7, 5, 10, 4, 5, 4, 9, 9, 1, 4, 10, 1, 1, 4, 6, 4, 7, 7, 8, 3, 7, 5, 9, 8, 7, 5, 10, 8, 7, 6, 10, 8, 3, 4, 5, 6, 9, 5, 8, 8, 6, 4, 2, 10, 6, 3, 4, 6, 1, 10, 6, 1, 9, 10, 5, 7, 6, 8, 7, 5, 10, 3, 5, 5, 3, 8, 4, 7, 6, 10, 7, 6, 8, 1, 5, 10, 3, 2, 9, 10, 5, 2, 5, 5, 7, 4, 9, 6, 9, 6, 1, 9, 5, 5, 10, 2, 2, 4, 4, 6, 5, 7, 7, 10, 4, 6, 3, 5, 2, 5, 3, 5, 6, 7, 5, 2, 8, 4, 3, 4, 4, 4, 1, 9, 6, 2, 5, 1, 9, 8, 3, 2, 2, 2, 3, 8, 3, 3, 1, 7, 7, 2, 1, 9, 2, 4, 6, 5, 8, 8, 5, 2, 6, 2, 9, 9, 6, 9, 4, 7, 2, 1, 6, 7, 9, 8, 5, 8, 3, 4, 10, 2, 3, 1, 9, 8, 2, 10, 2, 3, 2, 9, 1, 4, 4, 10, 2, 1, 3, 4, 4, 2, 7, 1, 7, 3, 1, 1, 7, 1, 1, 6, 7, 5, 2, 2, 9, 9, 1, 7, 2, 5, 5, 1, 9, 3, 6, 10, 9, 2, 5, 1, 7, 7, 10, 3, 3, 8, 4, 6, 2, 1, 10, 9, 8, 9, 6, 10, 6, 6, 1, 8, 10, 3, 8, 9, 7, 1, 8, 8, 5, 2, 2, 8, 9, 5, 7, 3, 2, 7, 2, 1, 4, 1, 10, 1, 2, 10, 7, 10, 5, 4, 7, 1, 4, 7, 2, 9, 1, 7, 7, 4, 1, 2, 1, 8, 5, 2, 10, 1, 9, 4, 4, 7, 2, 2, 9, 2, 6, 10, 2, 3, 8, 6, 1, 1, 1, 2, 9, 2, 3, 4, 8, 3, 5, 1, 6, 5, 10, 2, 4, 8, 2, 10, 3, 2, 9, 8, 9, 5, 3, 4, 5, 1, 10, 5, 3, 4, 2, 5, 3, 4, 8, 2, 2, 9, 5, 3, 2, 4, 5, 8, 8, 5, 6, 8, 6, 4, 1, 9, 8, 6, 10, 6, 4, 10, 3, 7, 6, 9, 8, 6, 9, 10, 3, 7, 9, 7, 6, 2, 6, 4, 7, 10, 10, 7, 10, 9, 3, 3, 10, 5, 3, 7, 10, 5, 5, 5, 10, 8, 9, 2, 6, 4, 9, 10, 2, 3, 2, 8, 7, 5, 1, 8, 5, 1, 3, 5, 1, 10, 10, 2, 6, 8, 3, 9, 8, 5, 2, 4, 4, 10, 9, 2, 2, 4, 4, 1, 4, 10, 8, 3, 7, 9, 4, 4, 7, 7, 7, 5, 5, 7, 2, 6, 6, 4, 8, 1, 5, 6, 4, 10, 2, 10, 3, 10, 1, 5, 4, 4, 1, 1, 8, 8, 2, 3, 7, 6, 4, 5, 8, 3, 7, 8, 4, 2, 4, 3, 2, 4, 3, 6, 6, 7, 2, 3, 9, 6, 5, 8, 9, 7, 2, 7, 7, 2, 6, 6, 4, 7, 9, 4, 9, 4, 10, 4, 9, 1, 6, 3, 8, 3, 2, 5, 1, 10, 10, 1, 8, 10, 1, 2, 8, 10, 7, 1, 8, 2, 8, 10, 5, 1, 2, 3, 10, 10, 3, 8, 10, 9, 7, 5, 6, 9, 9, 8, 6, 8, 1, 1, 8, 8, 10, 1, 3, 3, 5, 10, 7, 6, 10, 9, 8, 9, 9, 6, 2, 8, 10, 10, 1, 10, 6, 3, 7, 8, 2, 3, 9, 6, 5, 9, 1, 2, 5, 8, 6, 8, 8, 2, 4, 6, 6, 7, 4, 9, 1, 2, 10, 5, 8, 2, 9, 1, 7, 6, 9, 1, 1, 5, 8, 7, 3, 6, 9, 3, 5, 5, 2, 3, 4, 1, 6, 5, 8, 8, 7, 8, 7, 6, 1, 3, 10, 1, 9, 6, 6, 6, 7, 7, 5, 2, 2, 6, 6, 10, 10, 2, 9, 5, 8, 2, 5, 5, 8, 9, 10, 1, 3, 7, 3, 9, 3, 5, 5, 3, 2, 2, 9, 8, 1, 5, 10, 3, 8, 9, 7, 10, 5, 5, 4, 1, 3, 9, 6, 8, 10, 2, 5, 10, 3, 6, 7, 3, 8, 5, 8, 9, 3, 2, 6, 8, 1, 7, 3, 3, 2, 10, 3, 10, 4, 8, 4, 6, 10, 9, 10, 10, 9, 4, 4, 9, 6, 4, 4, 2, 8, 10, 9, 6, 6, 2, 6, 4, 10, 10, 6, 6, 7, 1, 5, 2, 10, 9, 7, 6, 2, 10, 8, 3, 5, 1, 10, 5, 3, 3, 1, 10, 7, 6, 2, 1, 6, 2, 2, 6, 10, 2, 7, 5, 7, 8, 7, 6, 6, 3, 4, 1, 9, 5, 6, 9, 4, 4, 7, 3, 8, 2, 6, 8, 2, 3, 10, 4, 10, 2, 8, 2, 2, 1, 2, 3, 10, 10, 7, 8, 9, 10, 2, 7, 2, 5, 6, 9, 4, 8, 1, 10, 5, 7, 2, 3, 1, 3, 10, 8, 1, 7, 4, 8, 3, 10, 1, 7, 10, 8, 5, 5, 7, 8, 5, 8, 7, 3, 10, 7, 1, 2, 5, 4, 4, 10, 7, 2, 10, 2, 6, 1, 2, 7, 2, 4, 5, 7, 5, 3, 2, 2, 6, 10, 2, 8, 10, 4, 4, 9, 2, 10, 5, 2, 5, 6, 7, 8, 3, 9, 10, 1, 7, 10, 5, 10, 2, 4, 5, 4, 8, 5, 8, 4, 6, 1, 1, 10, 9, 5, 5, 6, 2, 2, 10, 2, 4, 4, 3, 3, 2, 7, 10, 1, 6, 3, 5, 6, 7, 6, 10, 10, 4, 2, 8, 2, 4, 4, 10, 2, 7, 2, 5, 5, 5, 5, 9, 6, 9, 3, 6, 2, 1, 7, 9, 4, 3, 10, 6, 1, 1, 2, 1, 5, 1, 4, 10, 8, 2, 10, 5, 3, 1, 8, 6, 9, 1, 4, 9, 8, 1, 10, 10, 2, 6, 5, 8, 2, 5, 8, 1, 7, 5, 10, 1, 1, 2, 1, 2, 6, 7, 6, 1, 1, 10, 9, 1, 9, 1, 9, 5, 6, 10, 10, 4, 10, 10, 6, 5, 10, 4, 6, 3, 9, 3, 2, 10, 5, 10, 9, 7, 5, 7, 8, 4, 2, 4, 4, 3, 5, 6, 6, 3, 5, 5, 9, 5, 3, 8, 6, 8, 3, 10, 2, 4, 2, 4, 7, 2, 2, 8, 2, 8, 10, 4, 2, 4, 5, 10, 9, 4, 9, 4, 4, 4, 10, 4, 1, 8, 3, 10, 5, 7, 8, 4, 2, 2, 3, 9, 8, 7, 9, 6, 7, 8, 9, 2, 2, 2, 10, 5, 3, 6, 1, 2, 4, 2, 1, 5, 9, 2, 6, 1, 2, 1, 8, 8, 3, 10, 8, 2, 2, 2, 3, 1, 10, 8, 2, 4, 10, 3, 1, 7, 7, 9, 4, 3, 7, 10, 5, 2, 9, 3, 8, 3, 3, 8, 1, 3, 6, 1, 10, 8, 3, 10, 3, 8, 5, 9, 1, 2, 4, 4, 5, 7, 5, 5, 1, 6, 5, 8, 9, 7, 7, 9, 9, 5, 4, 7, 4, 1, 6, 9, 8, 5, 7, 9, 10, 6, 6, 7, 5, 6, 2, 5, 5, 8, 10, 4, 8, 4, 4, 6, 1, 7, 10, 8, 8, 4, 10, 3, 9, 6, 9, 7, 6, 10, 7, 2, 9, 7, 7, 9, 5, 6, 4, 7, 1, 7, 3, 5, 9, 8, 3, 6, 8, 4, 7, 3, 2, 7, 1, 9, 10, 8, 2, 7, 1, 5, 5, 1, 9, 9, 6, 5, 8, 10, 4, 4, 3, 4, 9, 1, 3, 8, 9, 2, 10, 1, 4, 10, 10, 1, 10, 9, 5, 9, 10, 10, 9, 1, 1, 4, 10, 8, 4, 4, 7, 10, 8, 9, 10, 8, 8, 6, 3, 8, 5, 5, 7, 4, 3, 3, 5, 9, 10, 9, 10, 8, 10, 8, 8, 7, 2, 2, 5, 2, 6, 7, 10, 10, 3, 1, 1, 8, 5, 6, 7, 5, 10, 10, 5, 10, 5, 6, 10, 4, 3, 8, 7, 7, 7, 10, 3, 7, 9, 7, 9, 10, 2, 4, 2, 3, 3, 7, 8, 3, 5, 1, 9, 3, 3, 2, 6, 6, 10, 6, 1, 3, 6, 9, 3, 1, 5, 4, 1, 4, 7, 6, 10, 6, 7, 4, 8, 1, 9, 9, 7, 2, 10, 7, 8, 10, 8, 4, 5, 6, 10, 6, 7, 6, 2, 1, 10, 7, 10, 9, 7, 1, 4, 3, 1, 6, 7, 4, 9, 2, 4, 4, 2, 4, 7, 8, 9, 5, 4, 8, 2, 5, 9, 5, 3, 5, 2, 2, 7, 8, 9, 2, 3, 6, 2, 2, 1, 2, 7, 5, 4, 8, 2, 4, 4, 9, 10, 5, 2, 2, 9, 1, 9, 8, 5, 4, 5, 1, 2, 10, 5, 1, 7, 9, 7, 4, 7, 1, 2, 5, 5, 10, 8, 1, 5, 7, 9, 8, 4, 9, 8, 3, 8, 4, 7, 7, 8, 10, 10, 1, 2, 1, 1, 8, 10, 8, 4, 7, 8, 1, 8, 5, 2, 9, 7, 3, 7, 7, 1, 4, 8, 2, 4, 3, 10, 9, 6, 5, 7, 10, 10, 5, 2, 5, 1, 4, 1, 3, 6, 1, 1, 1, 7, 8, 7, 10, 9, 9, 1, 2, 7, 10, 7, 7, 2, 6, 4, 4, 7, 8, 10, 4, 7, 1, 6, 6, 9, 5, 4, 7, 2, 8, 10, 8, 8, 8, 9, 8, 4, 9, 7, 8, 3, 8, 3, 8, 3, 10, 5, 2, 9, 3, 4, 9, 2, 10, 9, 7, 7, 4, 8, 6, 4, 9, 6, 3, 8, 7, 4, 7, 10, 2, 4, 9, 8, 7, 1, 5, 4, 3, 6, 5, 5, 7, 7, 3, 8, 6, 6, 2, 5, 3, 9, 2, 3, 3, 8, 10, 10, 2, 7, 8, 7, 9, 8, 6, 6, 4, 3, 7, 1, 2, 2, 1, 3, 4, 10, 4, 9, 6, 2, 1, 4, 10, 2, 8, 1, 6, 4, 8, 2, 2, 7, 6, 2, 6, 10, 1, 2, 4, 7, 4, 10, 1, 5, 1, 5, 8, 6, 8, 8, 3, 8, 3, 1, 10, 8, 5, 1, 1, 3, 4, 2, 4, 5, 3, 4, 6, 1, 10, 5, 3, 2, 4, 6, 2, 1, 1, 10, 7, 1, 7, 4, 5, 9, 2, 4, 4, 10, 8, 10, 8, 2, 9, 9, 9, 9, 5, 8, 6, 7, 1, 1, 10, 5, 8, 2, 8, 1, 2, 9, 9, 7, 10, 2, 4, 1, 7, 8, 7, 4, 10, 4, 6, 7, 6, 3, 8, 6, 10, 8, 1, 2, 4, 2, 7, 9, 10, 10, 10, 7, 8, 10, 10, 1, 5, 8, 3, 5, 5, 4, 6, 9, 1, 8, 3, 5, 9, 3, 2, 3, 7, 3, 7, 9, 3, 8, 1, 3, 5, 1, 1, 9, 1, 10, 1, 8, 4, 6, 4, 9, 10, 6, 2, 2, 9, 5, 6, 2, 7, 8, 7, 1, 4, 5, 5, 5, 6, 9, 8, 2, 2, 10, 5, 8, 2, 9, 1, 9, 1, 5, 2, 4, 7, 2, 8, 7, 9, 2, 10, 9, 8, 8, 2, 7, 10, 10, 7, 9, 4, 8, 2, 5, 3, 9, 7, 9, 1, 4, 2, 10, 9, 9, 8, 10, 2, 2, 10, 4, 10, 4, 3, 8, 10, 8, 6, 7, 9, 3, 2, 9, 10, 5, 6, 8, 3, 1, 5, 3, 1, 2, 4, 3, 10, 4, 7, 1, 8, 5, 10, 5, 5, 6, 6, 10, 7, 8, 4, 6, 3, 1, 5, 6, 8, 3, 10, 6, 7, 3, 10, 3, 6, 5, 1, 4, 7, 10, 4, 3, 3, 6, 4, 1, 1, 3, 10, 8, 1, 3, 8, 9, 4, 5, 3, 5, 2, 3, 5, 7, 1, 1, 7, 9, 9, 5, 9, 4, 7, 7, 3, 5, 10, 10, 2, 2, 7, 3, 6, 3, 5, 8, 3, 7, 5, 7, 8, 2, 4, 4, 5, 2, 9, 6, 3, 2, 1, 8, 2, 3, 3, 5, 7, 9, 4, 6, 1, 7, 9, 8, 2, 2, 9, 10, 6, 10, 2, 8, 9, 5, 9, 4, 3, 8, 3, 2, 2, 7, 3, 7, 7, 10, 7, 9, 2, 3, 1, 9, 5, 6, 3, 10, 8, 2, 8, 10, 3, 10, 5, 9, 5, 6, 10, 5, 4, 7, 7, 8, 1, 5, 7, 9, 4, 8, 6, 5, 8, 5, 6, 3, 8, 5, 1, 2, 5, 6, 8, 9, 9, 6, 4, 7, 7, 7, 2, 4, 1, 6, 8, 5, 10, 7, 3, 2, 2, 4, 8, 4, 7, 2, 6, 2, 10, 9, 2, 10, 7, 6, 10, 5, 6, 3, 9, 5, 10, 6, 1, 6, 3, 3, 10, 9, 4, 6, 7, 5, 1, 4, 8, 9, 2, 6, 5, 7, 10, 4, 1, 4, 5, 8, 10, 1, 4, 4, 3, 6, 8, 6, 7, 7, 6, 3, 4, 4, 10, 1, 10, 4, 6, 8, 7, 3, 6, 6, 2, 10, 6, 4, 7, 5, 3, 8, 5, 3, 9, 2, 7, 6, 6, 9, 10, 5, 9, 6, 1, 5, 3, 9, 3, 5, 1, 5, 5, 4, 6, 4, 2, 4, 4, 4, 2, 3, 7, 6, 7, 4, 8, 8, 10, 8, 1, 4, 10, 1, 1, 5, 5, 1, 5, 4, 1, 7, 6, 4, 9, 1, 2, 5, 7, 6, 2, 7, 7, 10, 8, 8, 2, 9, 4, 6, 1, 7, 4, 7, 6, 4, 2, 9, 6, 4, 9, 9, 2, 9, 5, 10, 4, 9, 1, 4, 6, 3, 6, 3, 3, 6, 4, 3, 10, 8, 8, 5, 7, 7, 10, 8, 4, 6, 9, 6, 4, 1, 4, 1, 4, 4, 3, 2, 10, 5, 3, 5, 10, 4, 9, 10, 2, 9, 4, 3, 8, 4, 4, 10, 7, 7, 7, 5, 6, 4, 5, 10, 1, 3, 8, 1, 5, 3, 7, 1, 1, 3, 8, 6, 10, 8, 9, 7, 2, 2, 1, 10, 9, 9, 10, 10, 3, 5, 1, 10, 1, 7, 3, 10, 7, 1, 2, 9, 6, 7, 1, 7, 10, 5, 3, 3, 2, 3, 7, 2, 5, 2, 3, 1, 10, 8, 5, 1, 4, 8, 6, 5, 7, 7, 6, 6, 9, 1, 6, 3, 8, 7, 8, 9, 8, 9, 1, 5, 7, 3, 8, 9, 1, 8, 3, 7, 2, 9, 10, 4, 4, 1, 1, 10, 5, 6, 9, 1, 6, 8, 7, 3, 9, 2, 4, 6, 6, 2, 1, 7, 1, 7, 3, 3, 9, 7, 3, 4, 10, 7, 9, 8, 10, 9, 2, 3, 6, 7, 6, 1, 3, 5, 4, 6, 10, 10, 10, 5, 8, 7, 3, 4, 4, 1, 8, 1, 9, 3, 9, 10, 4, 1, 9, 3, 7, 7, 5, 8, 6, 5, 1, 5, 1, 6, 5, 2, 6, 6, 3, 8, 5, 5, 7, 2, 3, 3, 9, 8, 8, 10, 7, 6, 8, 7, 4, 1, 6, 1, 8, 4, 2, 10, 9, 6, 7, 9, 1, 4, 3, 10, 5, 3, 9, 9, 10, 9, 2, 7, 4, 5, 5, 8, 4, 10, 10, 7, 8, 1, 9, 7, 4, 5, 10, 4, 7, 4, 6, 4, 1, 7, 5, 6, 5, 6, 9, 5, 10, 10, 6, 8, 9, 2, 4, 7, 6, 3, 9, 3, 2, 8, 8, 4, 4, 1, 8, 7, 6, 10, 3, 3, 9, 1, 7, 7, 9, 7, 3, 7, 3, 2, 5, 8, 2, 1, 7, 2, 4, 10, 3, 10, 6, 9, 1, 3, 6, 1, 10, 1, 5, 4, 5, 10, 4, 6, 7, 3, 10, 6, 5, 4, 9, 1, 4, 1, 3, 1, 1, 9, 9, 2, 9, 10, 9, 1, 2, 2, 3, 5, 7, 9, 5, 6, 8, 10, 3, 5, 6, 2, 6, 8, 4, 2, 2, 8, 2, 3, 3, 3, 8, 4, 2, 6, 7, 5, 4, 2, 8, 5, 3, 9, 1, 3, 8, 8, 2, 9, 1, 7, 8, 8, 2, 4, 5, 6, 1, 4, 4, 9, 6, 3, 10, 9, 5, 4, 7, 5, 7, 9, 7, 6, 5, 4, 1, 9, 2, 3, 7, 6, 9, 8, 8, 2, 10, 9, 6, 3, 3, 9, 2, 7, 1, 3, 6, 3, 8, 9, 10, 9, 9, 10, 5, 2, 4, 2, 4, 6, 3, 9, 3, 3, 8, 8, 1, 5, 6, 6, 7, 2, 1, 6, 6, 3, 1, 8, 7, 2, 8, 7, 2, 6, 3, 5, 3, 7, 7, 6, 6, 1, 1, 10, 3, 9, 9, 1, 4, 7, 4, 1, 5, 8, 4, 4, 8, 2, 9, 7, 2, 4, 6, 3, 6, 9, 9, 4, 9, 9, 4, 2, 7, 6, 7, 6, 8, 1, 10, 2, 1, 5, 3, 5, 10, 3, 9, 9, 3, 10, 8, 5, 7, 6, 4, 10, 9, 9, 9, 5, 3, 10, 8, 9, 6, 8, 1, 4, 3, 1, 3, 10, 9, 3, 7, 7, 8, 10, 7, 2, 7, 9, 2, 10, 7, 8, 4, 5, 1, 2, 2, 9, 7, 7, 1, 8, 3, 10, 7, 6, 3, 5, 5, 9, 1, 3, 3, 1, 3, 1, 2, 9, 3, 10, 5, 3, 7, 9, 3, 8, 9, 1, 7, 10, 10, 1, 10, 9, 5, 7, 5, 4, 9, 5, 10, 7, 2, 8, 3, 10, 4, 1, 6, 8, 2, 7, 2, 10, 4, 1, 7, 1, 1, 1, 9, 3, 10, 4, 10, 1, 7, 10, 4, 2, 10, 6, 9, 3, 5, 7, 2, 7, 10, 3, 9, 1, 1, 2, 7, 10, 9, 5, 8, 4, 9, 4, 9, 1, 10, 8, 10, 3, 1, 4, 8, 2, 6, 3, 1, 6, 8, 8, 1, 6, 2, 9, 1, 9, 6, 10, 2, 6, 10, 7, 7, 10, 6, 9, 8, 9, 8, 2, 9, 1, 3, 7, 9, 3, 7, 10, 7, 8, 5, 3, 10, 6, 3, 8, 10, 8, 9, 7, 4, 10, 6, 9, 4, 4, 8, 7, 1, 6, 4, 6, 7, 1, 4, 9, 4, 6, 4, 10, 8, 6, 2, 3, 5, 6, 5, 5, 6, 4, 10, 5, 3, 9, 2, 9, 9, 10, 9, 5, 1, 4, 2, 2, 4, 5, 2, 8, 7, 9, 7, 9, 6, 7, 8, 7, 7, 9, 6, 6, 1, 2, 9, 5, 5, 9, 2, 7, 3, 7, 1, 10, 4, 3, 8, 3, 7, 3, 8, 5, 3, 2, 3, 5, 4, 2, 9, 8, 2, 8, 5, 4, 7, 7, 5, 10, 5, 8, 4, 7, 6, 10, 3, 10, 5, 3, 10, 5, 5, 5, 7, 5, 10, 2, 4, 4, 7, 2, 3, 1, 1, 5, 10, 6, 9, 3, 5, 10, 1, 3, 2, 9, 6, 2, 9, 5, 3, 9, 9, 9, 5, 7, 4, 6, 2, 5, 1, 2, 7, 9, 5, 6, 7, 1, 1, 9, 1, 4, 10, 2, 8, 7, 1, 6, 9, 10, 2, 10, 4, 10, 5, 5, 3, 1, 9, 4, 10, 10, 6, 7, 10, 3, 4, 8, 4, 7, 1, 1, 5, 5, 3, 10, 1, 4, 8, 5, 4, 1, 1, 3, 6, 7, 1, 2, 3, 3, 9, 10, 3, 7, 4, 10, 10, 6, 9, 1, 7, 7, 1, 9, 10, 8, 4, 10, 5, 8, 9, 8, 1, 9, 8, 2, 9, 7, 5, 1, 4, 1, 10, 9, 6, 8, 6, 3, 2, 3, 1, 10, 7, 6, 10, 9, 7, 5, 5, 8, 5, 7, 4, 8, 5, 9, 5, 7, 3, 10, 10, 6, 3, 5, 2, 5, 7, 4, 9, 8, 2, 8, 2, 4, 2, 2, 8, 7, 5, 6, 2, 8, 2, 4, 8, 8, 6, 5, 9, 6, 2, 7, 2, 1, 3, 8, 10, 2, 4, 6, 7, 1, 9, 8, 5, 9, 9, 4, 1, 8, 7, 8, 6, 7, 6, 2, 4, 6, 6, 5, 6, 7, 3, 9, 7, 2, 3, 3, 3, 10, 10, 6, 1, 10, 1, 3, 6, 4, 6, 4, 3, 3, 6, 8, 1, 3, 5, 4, 4, 3, 4, 9, 1, 4, 5, 8, 5, 1, 1, 6, 4, 2, 1, 1, 9, 8, 7, 7, 3, 8, 6, 1, 8, 10, 3, 10, 7, 3, 2, 4, 9, 4, 9, 10, 2, 8, 1, 8, 6, 9, 3, 10, 10, 10, 3, 4, 8, 10, 5, 6, 7, 1, 2, 3, 1, 2, 2, 9, 5, 8, 9, 5, 1, 5, 9, 10, 1, 8, 5, 2, 4, 8, 7, 9, 9, 6, 6, 1, 6, 1, 8, 4, 6, 6, 1, 2, 4, 2, 1, 5, 6, 9, 2, 10, 6, 3, 10, 2, 2, 9, 3, 3, 10, 2, 5, 10, 10, 5, 2, 6, 7, 2, 6, 8, 8, 10, 10, 4, 9, 8, 8, 8, 2, 10, 6, 3, 8, 9, 2, 2, 7, 8, 3, 9, 9, 6, 7, 7, 8, 7, 4, 7, 10, 6, 1, 3, 10, 8, 2, 3, 2, 2, 4, 1, 5, 2, 5, 1, 6, 10, 10, 8, 7, 8, 4, 4, 5, 1, 3, 8, 1, 3, 10, 3, 9, 10, 9, 8, 6, 8, 9, 3, 9, 6, 8, 6, 5, 8, 7, 9, 5, 4, 8, 5, 6, 5, 10, 10, 4, 4, 10, 3, 1, 7, 5, 6, 6, 1, 6, 1, 1, 6, 8, 8, 9, 5, 7, 8, 10, 6, 4, 9, 1, 4, 8, 9, 8, 2, 9, 7, 10, 1, 9, 4, 7, 8, 9, 5, 2, 10, 9, 5, 10, 4, 6, 10, 3, 9, 7, 2, 5, 3, 10, 3, 7, 2, 7, 3, 7, 10, 9, 2, 4, 9, 3, 6, 4, 8, 6, 9, 10, 7, 6, 3, 1, 5, 3, 4, 8, 6, 2, 2, 6, 8, 2, 3, 9, 6, 10, 6, 10, 2, 8, 3, 3, 6, 10, 9, 10, 7, 3, 4, 9, 5, 4, 6, 9, 3, 8, 8, 6, 9, 7, 9, 10, 10, 7, 7, 6, 8, 1, 7, 7, 4, 5, 2, 9, 8, 1, 7, 3, 10, 2, 6, 2, 8, 5, 8, 5, 1, 3, 7, 5, 5, 4, 7, 8, 4, 10, 3, 8, 2, 9, 1, 3, 8, 8, 9, 3, 3, 3, 7, 8, 3, 2, 3, 9, 10, 7, 3, 5, 4, 3, 5, 9, 9, 1, 1, 7, 5, 4, 5, 6, 8, 6, 8, 6, 10, 7, 4, 10, 10, 8, 5, 7, 3, 6, 10, 6, 3, 3, 6, 3, 9, 2, 3, 4, 3, 3, 4, 10, 8, 4, 3, 2, 7, 5, 9, 6, 7, 1, 10, 4, 8, 5, 9, 2, 10, 6, 8, 2, 4, 1, 10, 5, 10, 1, 7, 8, 7, 7, 10, 9, 6, 6, 3, 4, 6, 3, 4, 2, 2, 10, 5, 6, 8, 10, 4, 9, 8, 6, 8, 5, 1, 10, 7, 6, 2, 2, 1, 5, 5, 7, 8, 3, 2, 4, 2, 2, 1, 10, 4, 8, 4, 6, 5, 5, 7, 9, 4, 5, 4, 2, 10, 5, 4, 9, 3, 7, 8, 2, 4, 7, 5, 9, 5, 7, 9, 3, 7, 10, 4, 9, 3, 10, 3, 6, 6, 2, 10, 3, 1, 10, 6, 6, 10, 1, 4, 4, 7, 8, 5, 1, 5, 9, 5, 4, 4, 4, 6, 4, 8, 7, 10, 1, 1, 4, 7, 10, 8, 3, 5, 3, 9, 7, 9, 3, 8, 8, 8, 2, 6, 8, 7, 10, 2, 2, 7, 4, 2, 9, 9, 9, 8, 6, 2, 8, 1, 8, 1, 9, 8, 8, 9, 3, 1, 8, 6, 6, 8, 6, 4, 2, 8, 3, 7, 2, 6, 3, 4, 6, 1, 10, 3, 5, 7, 4, 4, 7, 3, 4, 9, 1, 6, 5, 1, 3, 8, 7, 8, 8, 5, 5, 9, 6, 10, 4, 6, 2, 3, 8, 7, 9, 3, 8, 10, 2, 10, 8, 8, 9, 7, 2, 5, 1, 4, 4, 9, 7, 1, 6, 8, 3, 9, 5, 3, 9, 7, 1, 5, 4, 7, 6, 2, 4, 7, 5, 10, 2, 8, 10, 6, 3, 4, 3, 2, 10, 10, 2, 6, 1, 4, 8, 3, 2, 3, 7, 3, 1, 9, 4, 5, 7, 2, 1, 9, 5, 9, 8, 9, 1, 6, 4, 1, 5, 1, 8, 4, 8, 2, 7, 10, 7, 9, 1, 1, 8, 10, 7, 3, 2, 5, 9, 10, 5, 9, 1, 1, 6, 7, 3, 7, 3, 2, 4, 6, 7, 4, 2, 8, 5, 1, 8, 3, 4, 4, 10, 9, 8, 7, 1, 3, 1, 7, 4, 7, 4, 7, 5, 8, 4, 2, 2, 9, 9, 7, 10, 10, 7, 3, 5, 3, 6, 1, 8, 9, 1, 10, 6, 7, 6, 9, 6, 9, 4, 3, 3, 6, 10, 1, 6, 10, 1, 4, 6, 10, 4, 2, 10, 5, 2, 3, 6, 2, 7, 4, 6, 1, 5, 3, 4, 8, 1, 5, 9, 10, 5, 6, 5, 2, 9, 4, 1, 9, 8, 6, 9, 8, 8, 9, 1, 1, 2, 6, 2, 3, 1, 3, 1, 5, 8, 9, 5, 8, 7, 9, 1, 6, 6, 10, 1, 8, 9, 10, 9, 5, 5, 7, 9, 10, 9, 8, 3, 2, 9, 8, 3, 5, 5, 7, 2, 5, 1, 4, 8, 1, 7, 2, 8, 6, 7, 8, 10, 1, 5, 4, 10, 4, 3, 9, 10, 3, 9, 6, 3, 2, 9, 1, 10, 3, 8, 6, 2, 2, 2, 1, 9, 4, 10, 5, 4, 6, 1, 7, 9, 9, 10, 8, 8, 7, 2, 3, 2, 1, 2, 8, 5, 3, 3, 5, 1, 1, 10, 8, 7, 7, 6, 8, 10, 7, 3, 7, 1, 7, 10, 3, 6, 1, 4, 3, 2, 9, 7, 10, 9, 4, 10, 5, 3, 6, 10, 2, 10, 8, 6, 6, 8, 5, 6, 7, 1, 7, 2, 1, 2, 5, 2, 10, 8, 3, 1, 4, 5, 10, 8, 10, 8, 1, 8, 2, 9, 9, 1, 10, 5, 5, 1, 5, 10, 5, 7, 7, 5, 1, 9, 3, 9, 3, 5, 6, 9, 2, 2, 5, 10, 1, 5, 9, 9, 1, 9, 8, 9, 8, 2, 7, 10, 8, 7, 10, 7, 4, 9, 7, 9, 9, 1, 2, 2, 6, 8, 2, 5, 7, 3, 8, 3, 9, 8, 8, 1, 7, 7, 2, 7, 8, 5, 8, 1, 1, 6, 3, 2, 2, 3, 3, 7, 4, 2, 8, 2, 7, 7, 6, 6, 7, 8, 8, 6, 1, 6, 8, 5, 1, 3, 3, 9, 10, 10, 10, 4, 6, 3, 6, 8, 1, 1, 7, 10, 2, 4, 1, 1, 2, 6, 4, 2, 7, 3, 9, 6, 8, 10, 4, 4, 8, 10, 2, 10, 8, 10, 1, 1, 7, 5, 9, 1, 1, 7, 8, 4, 1, 3, 1, 6, 2, 8, 8, 1, 8, 9, 4, 8, 2, 2, 7, 10, 4, 7, 10, 5, 2, 3, 2, 6, 10, 3, 5, 7, 6, 1, 4, 6, 9, 7, 4, 7, 3, 6, 5, 5, 6, 6, 5, 2, 8, 6, 2, 7, 5, 3, 1, 10, 4, 4, 8, 6, 4, 1, 8, 7, 6, 6, 6, 9, 6, 4, 1, 10, 8, 1, 3, 7, 6, 3, 3, 9, 4, 6, 10, 2, 2, 10, 4, 3, 3, 3, 8, 4, 1, 1, 1, 2, 8, 2, 5, 3, 1, 1, 2, 2, 9, 1, 8, 1, 4, 9, 1, 5, 4, 4, 10, 10, 5, 6, 2, 8, 10, 2, 1, 6, 1, 8, 2, 6, 9, 1, 3, 2, 9, 9, 9, 10, 9, 2, 9, 10, 8, 6, 8, 8, 2, 3, 3, 3, 7, 4, 1, 6, 9, 8, 7, 9, 1, 8, 10, 2, 6, 7, 6, 6, 9, 3, 4, 7, 7, 10, 4, 1, 1, 10, 5, 3, 6, 2, 5, 1, 2, 1, 2, 8, 9, 2, 5, 6, 4, 7, 3, 5, 4, 7, 10, 7, 8, 1, 7, 2, 5, 9, 6, 8, 10, 5, 8, 9, 3, 3, 5, 3, 7, 2, 6, 1, 3, 6, 6, 4, 7, 3, 6, 2, 7, 10, 9, 5, 8, 10, 6, 2, 9, 8, 1, 5, 2, 8, 8, 3, 9, 5, 8, 5, 1, 1, 3, 9, 8, 6, 9, 6, 9, 10, 4, 3, 1, 1, 4, 2, 9, 7, 8, 1, 7, 1, 4, 7, 3, 6, 7, 2, 5, 2, 8, 4, 3, 4, 1, 10, 6, 1, 6, 1, 2, 7, 3, 2, 7, 4, 1, 4, 7, 3, 1, 9, 7, 6, 8, 10, 3, 1, 1, 10, 2, 10, 3, 6, 7, 10, 1, 9, 3, 10, 5, 7, 3, 3, 3, 10, 2, 7, 8, 9, 6, 1, 1, 2, 7, 8, 2, 1, 8, 10, 10, 9, 9, 7, 10, 6, 9, 6, 7, 8, 3, 2, 9, 5, 3, 8, 4, 2, 6, 8, 7, 10, 2, 4, 7, 3, 2, 7, 2, 5, 5, 4, 1, 6, 3, 7, 7, 4, 8, 8, 10, 5, 5, 7, 5, 6, 7, 8, 9, 9, 3, 10, 6, 10, 10, 10, 5, 3, 1, 5, 10, 4, 9, 5, 10, 1, 1, 6, 8, 7, 3, 4, 3, 7, 1, 4, 6, 6, 3, 7, 10, 3, 8, 6, 4, 3, 7, 1, 8, 8, 10, 5, 2, 2, 3, 10, 6, 10, 7, 4, 10, 8, 10, 4, 6, 1, 8, 1, 4, 1, 6, 5, 6, 4, 6, 7, 5, 2, 4, 9, 10, 6, 8, 6, 6, 4, 9, 6, 5, 7, 8, 2, 3, 9, 4, 1, 6, 9, 5, 2, 5, 2, 7, 8, 3, 4, 9, 6, 8, 5, 7, 3, 5, 9, 4, 5, 1, 3, 7, 4, 1, 6, 3, 9, 10, 3, 3, 6, 3, 10, 7, 2, 7, 5, 1, 2, 6, 10, 7, 6, 7, 4, 1, 7, 9, 1, 7, 9, 7, 6, 10, 1, 10, 7, 2, 8, 2, 10, 10, 2, 9, 6, 7, 3, 4, 2, 9, 10, 7, 9, 8, 8, 8, 7, 6, 1, 1, 4, 6, 1, 4, 9, 9, 8, 9, 10, 7, 7, 2, 1, 6, 6, 3, 2, 2, 1, 10, 8, 6, 1, 1, 3, 7, 9, 2, 8, 1, 7, 6, 7, 4, 2, 3, 9, 9, 9, 5, 6, 6, 1, 4, 6, 9, 10, 8, 9, 4, 2, 8, 7, 1, 7, 4, 8, 1, 3, 6, 5, 5, 5, 7, 9, 4, 9, 7, 2, 4, 2, 8, 3, 3, 6, 7, 7, 10, 7, 10, 10, 10, 5, 7, 3, 5, 5, 2, 9, 7, 2, 3, 6, 2, 4, 2, 7, 2, 1, 2, 7, 4, 6, 9, 5, 6, 1, 5, 9, 7, 6, 3, 2, 1, 5, 3, 5, 1, 9, 9, 9, 10, 1, 10, 6, 4, 9, 8, 9, 9, 5, 6, 1, 7, 8, 8, 7, 6, 6, 2, 1, 5, 3, 1, 1, 1, 8, 6, 8, 10, 8, 9, 8, 7, 9, 1, 6, 10, 4, 4, 6, 9, 7, 10, 10, 10, 1, 9, 1, 6, 5, 4, 3, 4, 8, 9, 7, 7, 2, 4, 10, 5, 2, 8, 6, 4, 10, 1, 5, 3, 5, 10, 1, 10, 6, 1, 3, 1, 9, 1, 5, 1, 1, 8, 3, 2, 9, 8, 6, 7, 7, 5, 2, 4, 3, 9, 10, 10, 9, 10, 1, 9, 6, 7, 4, 3, 7, 3, 7, 1, 3, 9, 10, 6, 3, 9, 2, 10, 1, 1, 9, 8, 5, 9, 1, 7, 9, 5, 2, 1, 4, 2, 4, 2, 2, 10, 5, 1, 10, 3, 2, 10, 1, 5, 2, 8, 8, 9, 1, 10, 6, 7, 9, 2, 2, 1, 2, 10, 7, 5, 2, 8, 3, 5, 1, 6, 5, 5, 2, 7, 2, 10, 1, 6, 10, 10, 5, 5, 10, 1, 7, 7, 2, 9, 8, 7, 2, 7, 1, 2, 4, 1, 3, 9, 10, 5, 3, 6, 9, 3, 3, 1, 7, 10, 7, 1, 10, 5, 5, 7, 9, 10, 5, 9, 9, 9, 7, 5, 6, 4, 7, 9, 6, 3, 1, 6, 9, 1, 6, 10, 3, 4, 8, 7, 1, 7, 4, 9, 2, 1, 6, 10, 3, 1, 1, 3, 2, 5, 8, 9, 6, 10, 7, 4, 8, 9, 7, 8, 1, 1, 9, 7, 6, 4, 7, 6, 5, 1, 3, 3, 2, 4, 8, 6, 2, 4, 1, 6, 1, 2, 8, 9, 10, 7, 3, 6, 2, 10, 2, 10, 1, 8, 5, 10, 4, 6, 8, 1, 10, 1, 6, 1, 7, 10, 2, 10, 3, 1, 2, 2, 1, 1, 5, 6, 3, 7, 5, 1, 9, 8, 3, 5, 6, 6, 10, 4, 9, 5, 1, 7, 8, 7, 6, 9, 8, 1, 3, 5, 5, 5, 6, 3, 7, 5, 4, 10, 1, 8, 8, 2, 3, 6, 1, 6, 7, 7, 1, 6, 3, 2, 3, 5, 5, 8, 10, 7, 10, 5, 8, 9, 7, 5, 2, 1, 2, 1, 7, 2, 4, 4, 3, 4, 5, 6, 5, 5, 5, 7, 6, 8, 10, 3, 10, 10, 10, 9, 1, 2, 8, 1, 9, 5, 7, 10, 5, 10, 5, 1, 1, 2, 3, 8, 10, 4, 1, 4, 4, 1, 5, 2, 10, 7, 1, 8, 7, 7, 4, 9, 9, 10, 4, 3, 6, 4, 6, 9, 6, 7, 8, 9, 8, 9, 9, 8, 6, 4, 10, 5, 9, 3, 4, 4, 4, 8, 7, 7, 4, 8, 6, 5, 4, 9, 9, 1, 1, 5, 7, 3, 6, 4, 9, 2, 5, 10, 7, 3, 2, 7, 8, 5, 10, 8, 1, 1, 6, 5, 3, 7, 3, 6, 8, 2, 10, 9, 6, 8, 9, 6, 10, 4, 7, 4, 8, 8, 6, 1, 8, 3, 7, 6, 10, 10, 4, 7, 9, 1, 10, 3, 6, 1, 8, 6, 3, 7, 1, 1, 4, 3, 10, 5, 8, 8, 2, 8, 8, 8, 8, 9, 10, 2, 2, 2, 8, 9, 3, 8, 3, 9, 7, 4, 3, 10, 6, 8, 2, 6, 1, 3, 5, 3, 3, 9, 3, 9, 4, 6, 7, 9, 2, 8, 4, 9, 9, 8, 7, 6, 3, 4, 1, 10, 1, 1, 10, 9, 2, 6, 9, 6, 7, 5, 5, 5, 8, 10, 4, 2, 4, 3, 7, 4, 9, 10, 4, 7, 9, 2, 1, 9, 8, 6, 8, 1, 9, 10, 7, 3, 6, 5, 7, 2, 8, 7, 3, 8, 4, 9, 1, 9, 8, 6, 4, 1, 2, 6, 6, 5, 8, 4, 9, 9, 3, 9, 9, 7, 5, 2, 5, 8, 2, 8, 9, 8, 9, 9, 4, 2, 9, 10, 9, 6, 9, 10, 2, 3, 6, 6, 2, 10, 6, 4, 8, 8, 8, 7, 3, 7, 3, 10, 3, 1, 8, 3, 3, 6, 7, 9, 10, 10, 7, 8, 9, 5, 3, 9, 9, 8, 2, 2, 1, 2, 9, 8, 4, 8, 10, 2, 1, 5, 4, 8, 9, 2, 5, 6, 7, 3, 1, 4, 5, 4, 5, 8, 3, 8, 6, 5, 1, 5, 7, 4, 4, 9, 6, 5, 4, 9, 1, 10, 2, 7, 6, 6, 10, 3, 4, 9, 3, 5, 2, 1, 6, 2, 5, 8, 4, 5, 1, 2, 6, 2, 10, 1, 9, 6, 8, 8, 6, 1, 10, 9, 1, 8, 9, 8, 1, 6, 9, 3, 4, 9, 6, 1, 1, 4, 9, 8, 5, 9, 1, 3, 3, 5, 9, 3, 8, 7, 2, 10, 4, 7, 3, 1, 10, 5, 8, 4, 7, 10, 8, 2, 1, 2, 9, 7, 10, 4, 3, 1, 1, 10, 6, 5, 3, 9, 2, 1, 8, 4, 6, 8, 5, 6, 3, 3, 10, 1, 10, 5, 2, 8, 9, 3, 8, 2, 5, 8, 5, 8, 8, 2, 5, 7, 1, 2, 6, 9, 10, 6, 6, 1, 5, 10, 4, 6, 5, 8, 1, 9, 9, 10, 10, 5, 4, 8, 5, 7, 6, 5, 8, 8, 9, 10, 3, 1, 4, 4, 7, 6, 10, 10, 1, 9, 4, 2, 5, 9, 6, 2, 8, 3, 5, 6, 3, 6, 2, 8, 10, 7, 10, 1, 9, 7, 7, 5, 5, 1, 8, 5, 3, 1, 1, 5, 1, 10, 10, 9, 8, 4, 10, 4, 9, 9, 4, 10, 8, 10, 4, 7, 7, 5, 5, 4, 10, 3, 2, 4, 2, 1, 9, 4, 2, 3, 5, 7, 10, 2, 4, 5, 9, 5, 7, 4, 4, 5, 9, 9, 1, 8, 6, 8, 6, 7, 6, 5, 10, 9, 4, 2, 3, 7, 3, 3, 2, 6, 5, 10, 9, 1, 6, 5, 6, 3, 9, 7, 2, 10, 8, 10, 7, 4, 8, 6, 7, 4, 1, 1, 1, 1, 3, 7, 6, 5, 2, 3, 7, 9, 6, 3, 6, 2, 3, 5, 6, 10, 3, 9, 10, 3, 5, 10, 8, 4, 1, 4, 4, 5, 10, 8, 6, 4, 5, 2, 3, 4, 5, 3, 9, 6, 7, 9, 4, 7, 5, 1, 7, 10, 5, 5, 1, 6, 6, 8, 5, 7, 6, 5, 3, 7, 3, 1, 10, 5, 5, 9, 8, 10, 3, 7, 7, 7, 8, 3, 1, 1, 5, 2, 10, 4, 4, 5, 9, 4, 4, 1, 8, 8, 7, 8, 8, 10, 2, 7, 2, 6, 6, 9, 4, 6, 4, 8, 3, 3, 8, 7, 8, 1, 8, 4, 6, 7, 9, 6, 10, 2, 8, 1, 2, 7, 8, 3, 9, 4, 7, 5, 7, 9, 3, 9, 3, 3, 7, 6, 2, 8, 4, 9, 1, 4, 5, 7, 6, 1, 8, 1, 3, 1, 1, 6, 7, 3, 10, 8, 8, 5, 4, 10, 2, 9, 8, 10, 2, 3, 1, 7, 8, 10, 6, 10, 1, 9, 3, 6, 1, 1, 3, 9, 1, 6, 3, 8, 4, 9, 2, 2, 6, 9, 7, 6, 2, 1, 5, 1, 3, 2, 6, 2, 5, 1, 9, 2, 6, 2, 1, 6, 10, 3, 4, 2, 5, 3, 3, 5, 8, 6, 9, 4, 2, 4, 1, 3, 6, 8, 6, 3, 4, 7, 10, 1, 2, 5, 4, 7, 1, 4, 4, 6, 2, 7, 9, 7, 5, 4, 7, 2, 5, 4, 2, 4, 7, 1, 6, 6, 3, 3, 3, 7, 10, 9, 8, 5, 6, 5, 3, 2, 8, 9, 4, 4, 7, 6, 6, 4, 10, 2, 7, 3, 9, 2, 9, 9, 5, 1, 8, 5, 10, 6, 1, 6, 8, 6, 1, 3, 9, 8, 8, 7, 2, 3, 8, 1, 8, 9, 6, 10, 5, 7, 1, 4, 7, 1, 5, 1, 10, 3, 3, 1, 7, 10, 10, 8, 9, 8, 6, 9, 4, 6, 2, 8, 8, 5, 1, 6, 1, 7, 8, 10, 5, 5, 4, 9, 9, 8, 2, 5, 4, 1, 8, 2, 8, 2, 4, 4, 9, 2, 5, 5, 9, 7, 6, 8, 3, 9, 4, 6, 7, 9, 1, 7, 8, 5, 5, 4, 3, 2, 8, 3, 3, 1, 7, 8, 5, 6, 4, 1, 3, 9, 8, 1, 10, 4, 5, 6, 10, 7, 5, 4, 3, 5, 1, 3, 8, 1, 9, 1, 6, 9, 10, 1, 2, 7, 4, 3, 7, 3, 8, 7, 4, 4, 1, 10, 10, 2, 3, 1, 2, 9, 4, 1, 3, 9, 2, 9, 4, 5, 5, 6, 2, 5, 7, 1, 3, 7, 3, 10, 1, 7, 8, 7, 2, 9, 6, 4, 1, 8, 7, 7, 10, 1, 5, 5, 3, 8, 10, 3, 2, 3, 3, 1, 9, 3, 6, 3, 2, 9, 8, 6, 3, 9, 1, 5, 2, 9, 4, 2, 8, 2, 7, 2, 2, 2, 3, 5, 4, 1, 10, 1, 3, 8, 6, 9, 3, 2, 8, 5, 4, 3, 5, 7, 2, 3, 2, 3, 10, 10, 3, 10, 6, 7, 8, 6, 2, 1, 3, 8, 5, 10, 6, 8, 2, 7, 5, 9, 5, 2, 7, 7, 8, 4, 10, 4, 8, 3, 4, 1, 4, 7, 3, 4, 9, 6, 7, 10, 6, 3, 1, 1, 8, 1, 5, 6, 9, 2, 2, 3, 2, 7, 3, 5, 6, 1, 6, 8, 5, 2, 1, 8, 4, 7, 5, 9, 6, 2, 10, 2, 10, 4, 10, 7, 9, 1, 2, 2, 6, 3, 3, 4, 6, 2, 3, 3, 2, 9, 1, 7, 5, 6, 8, 7, 9, 9, 6, 7, 5, 9, 7, 3, 6, 7, 4, 4, 5, 2, 1, 4, 4, 6, 8, 10, 3, 4, 8, 2, 9, 1, 1, 10, 7, 3, 6, 9, 6, 10, 3, 2, 2, 6, 8, 9, 7, 1, 5, 10, 2, 3, 3, 2, 9, 4, 5, 2, 4, 5, 8, 10, 8, 5, 6, 10, 3, 8, 8, 5, 8, 8, 1, 6, 4, 4, 1, 4, 10, 5, 5, 5, 10, 7, 1, 2, 2, 7, 4, 6, 2, 7, 8, 10, 10, 2, 9, 3, 10, 1, 10, 2, 7, 7, 2, 5, 2, 2, 1, 5, 2, 3, 3, 3, 8, 6, 8, 3, 7, 7, 8, 5, 6, 2, 9, 7, 10, 5, 2, 9, 4, 3, 2, 7, 4, 1, 10, 2, 9, 6, 6, 2, 3, 5, 4, 5, 1, 8, 2, 4, 2, 2, 4, 4, 6, 10, 7, 2, 2, 10, 3, 9, 6, 10, 1, 5, 10, 4, 5, 8, 5, 4, 6, 1, 3, 7, 5, 7, 3, 10, 9, 9, 7, 7, 8, 6, 10, 9, 2, 9, 1, 8, 3, 10, 2, 7, 6, 7, 6, 5, 4, 8, 3, 6, 6, 9, 8, 6, 3, 6, 2, 3, 7, 4, 6, 6, 9, 1, 4, 10, 5, 6, 6, 3, 9, 4, 1, 1, 9, 8, 4, 2, 6, 5, 4, 4, 1, 3, 10, 1, 3, 8, 2, 8, 5, 9, 1, 1, 5, 4, 5, 2, 9, 2, 3, 5, 1, 2, 5, 2, 2, 10, 7, 10, 6, 8, 1, 5, 4, 6, 9, 7, 9, 7, 10, 7, 5, 10, 1, 5, 5, 8, 6, 5, 1, 8, 8, 3, 3, 1, 9, 8, 5, 2, 8, 4, 7, 5, 6, 3, 10, 3, 1, 6, 9, 2, 5, 1, 8, 8, 5, 7, 7, 1, 7, 9, 6, 1, 1, 8, 9, 7, 2, 10, 1, 2, 8, 6, 3, 1, 8, 6, 5, 1, 8, 9, 10, 3, 3, 2, 7, 5, 9, 4, 9, 2, 6, 3, 10, 3, 4, 4, 1, 10, 8, 5, 6, 8, 4, 1, 2, 8, 8, 9, 7, 10, 2, 2, 3, 5, 1, 10, 10, 10, 4, 1, 1, 6, 9, 5, 3, 6, 3, 9, 2, 7, 6, 10, 2, 8, 6, 9, 9, 8, 7, 8, 7, 3, 3, 10, 10, 2, 1, 9, 5, 5, 9, 8, 3, 2, 5, 6, 6, 8, 9, 10, 7, 4, 8, 1, 10, 3, 6, 1, 10, 8, 8, 7, 1, 1, 3, 6, 3, 6, 2, 3, 7, 10, 6, 7, 6, 9, 8, 6, 9, 9, 1, 9, 1, 2, 10, 5, 5, 4, 6, 2, 9, 7, 4, 7, 1, 8, 7, 8, 6, 10, 7, 3, 6, 1, 1, 6, 4, 9, 5, 8, 1, 10, 8, 1, 10, 10, 9, 4, 9, 10, 8, 5, 5, 4, 6, 9, 8, 6, 4, 7, 3, 3, 7, 1, 2, 2, 10, 9, 2, 7, 8, 5, 4, 10, 1, 7, 2, 10, 9, 9, 8, 9, 8, 10, 7, 10, 4, 1, 10, 7, 6, 1, 8, 6, 5, 6, 6, 6, 7, 6, 8, 3, 7, 1, 6, 8, 3, 4, 2, 2, 2, 3, 2, 3, 5, 5, 1, 5, 8, 5, 6, 5, 4, 3, 8, 4, 9, 8, 1, 6, 8, 6, 10, 7, 1, 6, 9, 1, 2, 4, 1, 3, 5, 5, 2, 5, 5, 4, 9, 6, 10, 9, 8, 7, 4, 8, 7, 6, 2, 3, 7, 3, 7, 1, 9, 5, 9, 6, 4, 3, 2, 5, 1, 1, 1, 3, 1, 10, 5, 8, 6, 9, 10, 5, 9, 6, 9, 3, 4, 9, 5, 7, 5, 3, 2, 10, 5, 2, 1, 4, 7, 5, 10, 10, 2, 2, 2, 10, 7, 3, 2, 5, 9, 3, 9, 8, 10, 4, 8, 1, 1, 3, 5, 1, 10, 8, 7, 7, 5, 10, 7, 2, 1, 6, 9, 2, 5, 1, 1, 8, 6, 4, 1, 2, 9, 5, 4, 10, 6, 10, 1, 6, 8, 4, 10, 1, 7, 1, 10, 1, 6, 8, 5, 9, 3, 7, 5, 7, 10, 8, 8, 9, 8, 9, 6, 4, 1, 10, 9, 2, 10, 8, 8, 5, 3, 7, 6, 3, 4, 3, 5, 3, 8, 7, 10, 7, 10, 2, 5, 2, 2, 5, 9, 6, 6, 10, 10, 9, 3, 6, 6, 2, 1, 4, 6, 6, 3, 2, 3, 4, 6, 1, 4, 1, 9, 2, 8, 5, 5, 4, 7, 3, 6, 4, 9, 5, 6, 9, 2, 4, 9, 6, 3, 7, 7, 10, 7, 5, 4, 2, 10, 10, 3, 5, 7, 7, 2, 2, 6, 2, 4, 2, 1, 6, 3, 9, 9, 6, 1, 7, 6, 8, 8, 1, 5, 5, 8, 3, 9, 10, 7, 2, 10, 2, 9, 5, 1, 10, 5, 4, 2, 5, 3, 6, 10, 2, 7, 1, 6, 2, 1, 7, 7, 10, 4, 6, 9, 8, 10, 2, 2, 6, 10, 2, 6, 7, 2, 1, 8, 8, 7, 2, 3, 9, 3, 5, 5, 5, 1, 2, 6, 6, 7, 7, 2, 9, 9, 1, 4, 3, 3, 1, 5, 3, 2, 5, 10, 5, 5, 3, 8, 3, 9, 4, 8, 1, 9, 3, 1, 2, 9, 5, 6, 10, 5, 6, 5, 7, 7, 10, 5, 4, 3, 1, 8, 6, 5, 6, 7, 7, 9, 7, 4, 10, 7, 4, 7, 3, 4, 8, 6, 3, 5, 2, 6, 2, 10, 10, 6, 5, 8, 6, 8, 3, 10, 10, 7, 3, 4, 6, 10, 8, 9, 3, 4, 2, 9, 4, 2, 2, 5, 7, 10, 9, 5, 5, 6, 6, 8, 3, 3, 2, 4, 7, 7, 5, 4, 3, 9, 5, 4, 10, 8, 7, 2, 4, 8, 10, 8, 2, 10, 7, 7, 4, 10, 4, 6, 9, 2, 2, 10, 4, 4, 8, 9, 2, 8, 6, 2, 9, 2, 1, 6, 9, 7, 2, 2, 8, 7, 2, 7, 5, 8, 3, 5, 6, 9, 4, 1, 9, 8, 4, 8, 7, 5, 7, 5, 6, 2, 3, 6, 1, 6, 4, 1, 1, 2, 9, 7, 5, 8, 7, 4, 1, 6, 8, 10, 2, 7, 7, 3, 3, 10, 6, 10, 2, 2, 3, 1, 10, 8, 1, 7, 10, 1, 9, 6, 5, 7, 7, 1, 3, 3, 10, 2, 8, 3, 4, 4, 4, 2, 8, 6, 5, 8, 8, 1, 9, 9, 7, 1, 10, 2, 2, 6, 9, 3, 7, 8, 3, 6, 1, 1, 4, 1, 4, 7, 7, 5, 6, 4, 7, 3, 1, 8, 2, 9, 10, 2, 6, 5, 3, 6, 4, 9, 1, 8, 2, 1, 8, 2, 5, 4, 5, 8, 4, 3, 8, 7, 7, 8, 3, 8, 3, 5, 2, 4, 7, 4, 5, 8, 5, 3, 10, 3, 8, 8, 9, 7, 6, 1, 1, 1, 3, 7, 5, 4, 10, 8, 7, 7, 10, 2, 5, 6, 7, 10, 9, 1, 4, 8, 6, 10, 8, 4, 8, 10, 9, 7, 10, 7, 10, 3, 8, 8, 10, 8, 3, 5, 8, 8, 7, 4, 8, 2, 2, 3, 2, 8, 9, 6, 8, 8, 4, 3, 5, 4, 10, 10, 3, 3, 9, 3, 10, 9, 3, 1, 7, 9, 2, 10, 5, 7, 6, 4, 1, 4, 4, 10, 4, 8, 5, 10, 8, 4, 5, 1, 6, 7, 1, 6, 4, 4, 1, 7, 6, 9, 2, 1, 5, 1, 7, 6, 10, 6, 6, 6, 5, 2, 1, 2, 8, 2, 3, 2, 5, 8, 4, 3, 6, 6, 1, 2, 7, 9, 5, 4, 10, 1, 10, 7, 6, 3, 7, 4, 2, 5, 1, 9, 5, 8, 10, 9, 5, 10, 10, 8, 10, 6, 5, 10, 2, 7, 9, 2, 7, 8, 6, 1, 4, 6, 5, 8, 2, 10, 2, 5, 4, 6, 5, 7, 8, 9, 6, 6, 3, 9, 9, 9, 7, 5, 7, 2, 7, 2, 5, 6, 9, 9, 2, 1, 1, 6, 5, 6, 1, 6, 8, 3, 5, 10, 1, 5, 2, 7, 9, 1, 4, 6, 3, 7, 3, 9, 3, 7, 3, 7, 8, 3, 9, 8, 6, 2, 6, 10, 5, 8, 4, 1, 1, 7, 7, 5, 4, 4, 8, 2, 9, 6, 4, 8, 3, 2, 8, 4, 10, 3, 3, 10, 6, 7, 9, 5, 2, 6, 6, 5, 8, 1, 7, 1, 10, 10, 9, 6, 6, 9, 3, 9, 8, 2, 1, 5, 5, 7, 7, 7, 9, 10, 2, 9, 6, 10, 8, 6, 8, 4, 3, 4, 2, 9, 5, 6, 2, 5, 10, 7, 7, 6, 6, 9, 3, 6, 10, 5, 2, 9, 10, 5, 5, 4, 3, 7, 4, 6, 6, 6, 2, 1, 4, 2, 6, 7, 3, 2, 2, 2, 7, 3, 2, 7, 2, 1, 9, 5, 6, 3, 4, 8, 7, 7, 6, 6, 4, 4, 7, 8, 5, 3, 8, 2, 4, 5, 9, 1, 10, 7, 3, 8, 5, 3, 3, 1, 9, 6, 4, 6, 2, 2, 2, 3, 6, 6, 8, 1, 2, 7, 7, 10, 10, 2, 2, 10, 4, 7, 3, 3, 3, 9, 3, 9, 4, 1, 9, 8, 3, 6, 3, 8, 7, 1, 5, 4, 4, 9, 1, 1, 2, 5, 10, 10, 8, 8, 6, 3, 6, 4, 8, 7, 8, 9, 10, 6, 8, 1, 9, 9, 10, 4, 8, 4, 1, 1, 7, 10, 8, 10, 5, 8, 3, 5, 5, 7, 4, 10, 6, 2, 2, 9, 2, 5, 9, 8, 7, 4, 10, 8, 9, 8, 2, 2, 7, 6, 10, 4, 1, 2, 3, 9, 2, 4, 3, 1, 2, 7, 2, 10, 1, 2, 2, 8, 3, 9, 8, 4, 2, 9, 3, 4, 8, 8, 6, 6, 2, 8, 3, 6, 9, 1, 3, 6, 8, 6, 2, 7, 6, 1, 5, 4, 9, 1, 5, 3, 10, 6, 6, 6, 9, 9, 3, 2, 4, 4, 2, 4, 8, 10, 6, 3, 8, 9, 3, 6, 5, 3, 10, 1, 7, 10, 10, 4, 9, 9, 5, 4, 9, 8, 7, 1, 8, 7, 1, 1, 7, 4, 8, 3, 10, 2, 9, 4, 10, 9, 4, 6, 3, 2, 5, 9, 2, 8, 5, 10, 3, 8, 1, 7, 2, 3, 10, 9, 8, 8, 7, 10, 1, 5, 1, 4, 5, 10, 1, 1, 10, 6, 1, 5, 4, 5, 1, 5, 8, 7, 3, 5, 10, 9, 2, 4, 3, 3, 9, 2, 7, 3, 4, 3, 2, 2, 8, 1, 10, 9, 9, 5, 8, 10, 8, 9, 10, 4, 7, 4, 5, 2, 2, 4, 7, 10, 6, 8, 7, 9, 8, 10, 8, 8, 6, 3, 9, 10, 5, 3, 5, 6, 1, 6, 9, 10, 6, 2, 4, 8, 8, 2, 1, 7, 8, 7, 3, 8, 6, 7, 6, 9, 2, 1, 8, 7, 4, 10, 3, 4, 7, 2, 4, 1, 1, 6, 7, 6, 1, 7, 10, 6, 5, 6, 5, 5, 8, 3, 6, 3, 4, 2, 9, 8, 2, 3, 6, 4, 3, 7, 5, 9, 4, 2, 7, 3, 8, 1, 10, 2, 6, 2, 3, 9, 1, 6, 4, 3, 2, 10, 6, 8, 4, 5, 8, 3, 6, 1, 6, 2, 7, 3, 7, 10, 8, 4, 10, 4, 4, 9, 5, 4, 4, 5, 10, 8, 3, 9, 1, 3, 3, 7, 5, 9, 9, 7, 10, 1, 1, 10, 7, 8, 3, 5, 3, 5, 6, 6, 8, 4, 8, 4, 2, 1, 3, 4, 1, 3, 7, 3, 8, 7, 7, 7, 1, 9, 9, 7, 8, 2, 2, 4, 4, 7, 9, 3, 6, 1, 2, 7, 9, 2, 10, 7, 10, 10, 7, 4, 2, 10, 8, 4, 4, 5, 4, 5, 1, 5, 7, 5, 4, 5, 6, 8, 3, 10, 10, 10, 5, 9, 2, 9, 9, 6, 5, 4, 4, 4, 7, 8, 2, 8, 5, 7, 2, 7, 5, 9, 10, 5, 3, 7, 9, 2, 6, 5, 3, 2, 3, 8, 2, 4, 5, 10, 5, 10, 1, 4, 3, 5, 9, 7, 4, 6, 2, 3, 9, 3, 9, 9, 1, 10, 8, 8, 7, 3, 2, 10, 3, 6, 8, 8, 5, 3, 2, 2, 2, 2, 1, 5, 4, 3, 1, 4, 5, 2, 10, 1, 3, 5, 6, 10, 10, 10, 3, 9, 4, 2, 6, 4, 10, 3, 6, 7, 6, 3, 10, 2, 9, 8, 8, 6, 6, 8, 2, 4, 5, 2, 2, 6, 6, 3, 6, 7, 7, 1, 3, 10, 6, 9, 7, 5, 6, 3, 6, 6, 3, 5, 6, 5, 9, 6, 7, 1, 2, 1, 6, 9, 1, 2, 8, 5, 5, 2, 4, 2, 6, 6, 10, 3, 1, 1, 1, 3, 3, 2, 10, 10, 4, 8, 9, 1, 7, 3, 1, 2, 2, 8, 9, 3, 4, 8, 7, 3, 1, 4, 3, 5, 8, 3, 1, 1, 3, 10, 2, 4, 1, 6, 8, 10, 9, 4, 3, 9, 1, 5, 9, 8, 4, 10, 5, 2, 6, 6, 5, 2, 10, 8, 6, 6, 8, 4, 4, 1, 7, 9, 6, 7, 6, 1, 10, 8, 3, 10, 7, 5, 2, 3, 6, 2, 1, 9, 1, 3, 2, 4, 10, 10, 7, 2, 7, 7, 5, 10, 5, 5, 8, 8, 5, 4, 2, 7, 2, 2, 7, 10, 10, 7, 1, 3, 4, 8, 2, 10, 8, 6, 3, 3, 8, 3, 10, 3, 8, 9, 5, 10, 4, 5, 10, 6, 3, 2, 8, 5, 10, 10, 2, 4, 1, 3, 3, 2, 3, 2, 3, 7, 2, 5, 5, 2, 5, 4, 1, 2, 8, 8, 7, 10, 1, 10, 6, 1, 10, 3, 3, 6, 1, 2, 7, 4, 9, 7, 8, 1, 4, 9, 9, 8, 1, 6, 4, 6, 1, 9, 6, 9, 5, 1, 6, 2, 6, 3, 1, 9, 6, 4, 7, 1, 3, 8, 4, 8, 10, 9, 10, 2, 6, 6, 1, 9, 2, 1, 4, 9, 10, 8, 4, 4, 3, 3, 1, 6, 2, 7, 9, 10, 2, 10, 8, 9, 6, 3, 9, 1, 5, 10, 1, 4, 2, 6, 4, 7, 10, 1, 8, 7, 8, 3, 1, 1, 7, 1, 8, 4, 3, 1, 10, 8, 3, 1, 3, 3, 10, 9, 7, 1, 6, 9, 2, 5, 2, 5, 6, 2, 6, 10, 7, 8, 6, 3, 8, 2, 1, 5, 1, 1, 5, 2, 5, 6, 4, 8, 9, 9, 2, 2, 3, 6, 9, 10, 6, 3, 2, 5, 10, 1, 9, 6, 7, 1, 5, 4, 7, 4, 2, 8, 5, 4, 5, 2, 4, 2, 7, 10, 2, 1, 3, 3, 4, 3, 8, 10, 6, 5, 10, 3, 4, 5, 6, 4, 7, 9, 9, 6, 10, 10, 7, 1, 3, 10, 8, 6, 7, 2, 1, 5, 10, 4, 5, 6, 6, 7, 5, 1, 3, 5, 7, 6, 4, 9, 6, 5, 10, 6, 5, 8, 5, 6, 7, 4, 1, 5, 4, 4, 9, 1, 8, 3, 4, 8, 5, 10, 4, 9, 10, 7, 4, 1, 2, 6, 7, 6, 9, 8, 7, 4, 3, 1, 1, 7, 8, 7, 4, 8, 3, 5, 6, 2, 4, 4, 4, 5, 10, 2, 6, 5, 10, 1, 8, 3, 2, 6, 9, 8, 2, 7, 4, 6, 7, 7, 10, 3, 8, 1, 9, 8, 9, 5, 7, 8, 9, 10, 3, 4, 1, 9, 8, 2, 10, 6, 1, 6, 8, 7, 3, 8, 1, 2, 8, 6, 1, 9, 6, 6, 6, 8, 1, 6, 1, 2, 2, 2, 3, 9, 10, 5, 9, 6, 4, 2, 7, 1, 8, 3, 4, 3, 4, 4, 10, 8, 6, 10, 9, 2, 6, 5, 7, 10, 10, 9, 9, 5, 3, 9, 10, 9, 8, 9, 2, 4, 7, 4, 7, 10, 3, 9, 9, 7, 5, 4, 6, 9, 8, 9, 10, 2, 10, 10, 9, 4, 2, 10, 4, 1, 9, 8, 10, 8, 3, 7, 4, 9, 7, 2, 6, 2, 8, 6, 10, 9, 6, 9, 1, 7, 10, 5, 8, 7, 5, 7, 3, 9, 4, 3, 1, 1, 8, 3, 1, 7, 5, 3, 4, 7, 10, 1, 10, 3, 1, 10, 3, 10, 6, 6, 1, 10, 10, 6, 6, 5, 10, 8, 6, 7, 10, 7, 8, 10, 4, 7, 8, 4, 2, 9, 6, 2, 7, 10, 8, 7, 7, 4, 2, 2, 8, 3, 6, 10, 5, 1, 8, 6, 1, 9, 5, 4, 2, 4, 3, 1, 4, 1, 9, 2, 3, 3, 10, 10, 5, 3, 5, 7, 7, 5, 8, 9, 3, 5, 6, 6, 2, 3, 9, 8, 9, 7, 2, 5, 7, 5, 4, 10, 4, 4, 5, 6, 9, 4, 4, 10, 9, 7, 7, 1, 6, 8, 7, 7, 2, 6, 4, 1, 10, 9, 4, 6, 1, 2, 10, 7, 10, 10, 6, 10, 4, 4, 10, 10, 4, 1, 5, 3, 3, 4, 4, 3, 10, 10, 6, 9, 4, 3, 4, 1, 4, 1, 8, 8, 9, 9, 9, 10, 3, 8, 10, 8, 6, 9, 5, 7, 9, 10, 5, 5, 3, 8, 9, 8, 2, 3, 4, 8, 1, 1, 10, 2, 9, 8, 2, 10, 1, 9, 3, 4, 5, 8, 1, 8, 3, 9, 4, 5, 5, 9, 6, 9, 3, 1, 1, 7, 6, 2, 6, 9, 10, 7, 4, 1, 9, 4, 6, 6, 1, 7, 10, 6, 1, 3, 8, 6, 8, 4, 3, 5, 3, 6, 9, 8, 8, 5, 7, 7, 9, 4, 2, 4, 4, 5, 9, 5, 6, 1, 1, 2, 6, 7, 1, 6, 1, 1, 5, 3, 8, 4, 4, 4, 4, 3, 8, 2, 6, 2, 6, 1, 7, 2, 5, 10, 1, 9, 2, 6, 4, 3, 3, 2, 9, 10, 8, 3, 8, 4, 6, 2, 5, 2, 10, 7, 6, 10, 4, 3, 1, 9, 5, 1, 9, 10, 1, 2, 9, 8, 8, 8, 5, 5, 8, 7, 10, 5, 1, 10, 7, 9, 8, 4, 1, 7, 9, 10, 1, 4, 4, 6, 1, 2, 8, 5, 3, 3, 7, 7, 7, 10, 10, 4, 10, 5, 2, 8, 8, 5, 8, 4, 6, 9, 5, 4, 9, 5, 6, 8, 3, 9, 5, 3, 9, 5, 1, 9, 2, 5, 8, 9, 7, 10, 2, 2, 7, 3, 1, 2, 6, 8, 6, 4, 7, 9, 8, 4, 8, 1, 8, 9, 10, 6, 9, 1, 5, 3, 10, 2, 4, 5, 1, 6, 10, 2, 10, 8, 6, 7, 5, 3, 7, 8, 8, 3, 4, 9, 8, 2, 6, 10, 3, 10, 6, 3, 2, 1, 9, 7, 6, 1, 2, 3, 5, 7, 10, 5, 6, 6, 6, 4, 6, 6, 9, 7, 5, 3, 7, 6, 4, 1, 6, 2, 7, 3, 2, 1, 8, 6, 4, 1, 7, 10, 7, 4, 7, 2, 8, 10, 5, 9, 7, 8, 4, 9, 7, 7, 3, 4, 6, 10, 10, 1, 2, 5, 6, 10, 9, 4, 1, 7, 2, 1, 10, 6, 3, 3, 5, 2, 9, 4, 5, 5, 4, 10, 9, 3, 8, 8, 5, 7, 2, 7, 10, 6, 4, 8, 7, 8, 1, 10, 6, 7, 7, 7, 3, 9, 6, 10, 2, 10, 3, 9, 3, 4, 9, 8, 6, 3, 9, 7, 9, 10, 10, 1, 6, 5, 3, 9, 3, 7, 9, 3, 8, 2, 7, 10, 6, 9, 7, 4, 6, 2, 3, 3, 5, 10, 2, 2, 7, 6, 6, 1, 9, 1, 1, 5, 10, 1, 8, 1, 1, 10, 1, 2, 4, 3, 3, 1, 4, 5, 1, 9, 10, 4, 7, 6, 10, 1, 4, 7, 4, 8, 6, 1, 2, 7, 4, 2, 2, 8, 9, 8, 8, 3, 3, 4, 6, 6, 1, 4, 3, 10, 2, 6, 9, 6, 4, 9, 1, 8, 7, 9, 6, 4, 2, 9, 10, 2, 3, 10, 8, 9, 3, 4, 6, 3, 5, 5, 10, 4, 6, 8, 2, 2, 7, 8, 1, 2, 6, 5, 2, 7, 8, 7, 4, 8, 10, 2, 1, 9, 4, 2, 4, 8, 8, 9, 6, 4, 1, 6, 2, 7, 6, 2, 6, 9, 7, 7, 1, 3, 2, 10, 8, 9, 4, 1, 4, 9, 9, 8, 10, 7, 7, 8, 2, 2, 5, 10, 10, 5, 7, 2, 7, 6, 4, 5, 7, 10, 8, 9, 2, 10, 10, 1, 3, 2, 5, 3, 7, 5, 9, 8, 4, 5, 3, 7, 3, 1, 6, 4, 3, 5, 4, 8, 4, 6, 5, 4, 3, 1, 10, 3, 2, 5, 7, 5, 10, 8, 7, 8, 10, 8, 7, 1, 8, 10, 10, 9, 8, 6, 7, 3, 2, 6, 10, 1, 7, 7, 4, 2, 5, 8, 1, 7, 5, 1, 3, 2, 3, 4, 8, 5, 6, 6, 5, 4, 4, 2, 8, 2, 8, 10, 10, 1, 7, 3, 5, 5, 9, 7, 8, 10, 10, 7, 1, 1, 9, 1, 4, 4, 8, 2, 4, 1, 8, 5, 4, 10, 7, 3, 4, 3, 5, 9, 3, 8, 3, 1, 9, 3, 9, 9, 9, 4, 10, 7, 4, 10, 4, 3, 2, 3, 9, 10, 5, 3, 1, 2, 2, 9, 7, 7, 3, 10, 1, 10, 10, 1, 10, 10, 7, 4, 6, 5, 2, 9, 10, 1, 8, 10, 2, 7, 3, 10, 1, 9, 10, 9, 8, 1, 5, 7, 10, 8, 9, 8, 3, 5, 7, 8, 5, 5, 4, 8, 7, 2, 4, 4, 1, 10, 7, 8, 10, 5, 7, 1, 1, 5, 9, 9, 10, 4, 8, 2, 7, 1, 8, 8, 2, 4, 10, 1, 5, 2, 4, 7, 1, 4, 6, 9, 5, 5, 8, 1, 7, 7, 1, 3, 10, 7, 4, 8, 4, 10, 4, 3, 7, 7, 4, 3, 7, 1, 7, 7, 2, 4, 8, 3, 9, 10, 8, 9, 8, 8, 5, 3, 10, 2, 5, 9, 8, 9, 6, 4, 4, 7, 4, 10, 2, 1, 4, 9, 3, 5, 3, 10, 3, 5, 9, 5, 2, 6, 8, 7, 8, 9, 10, 5, 6, 4, 2, 8, 7, 5, 6, 3, 10, 8, 4, 7, 10, 9, 10, 10, 2, 8, 3, 5, 4, 4, 1, 3, 5, 10, 3, 8, 1, 5, 6, 7, 2, 6, 10, 7, 3, 6, 2, 1, 6, 7, 10, 9, 9, 7, 4, 6, 6, 1, 1, 4, 5, 8, 10, 5, 4, 7, 4, 1, 8, 3, 3, 6, 1, 3, 2, 3, 10, 10, 10, 5, 1, 7, 10, 1, 2, 8, 7, 7, 7, 10, 9, 4, 2, 2, 9, 2, 4, 1, 5, 7, 1, 3, 8, 10, 3, 7, 4, 10, 9, 2, 9, 5, 5, 2, 1, 5, 3, 9, 10, 9, 10, 9, 10, 8, 10, 1, 8, 10, 5, 2, 9, 2, 2, 2, 5, 9, 5, 1, 1, 10, 2, 2, 1, 2, 3, 6, 6, 2, 3, 7, 4, 4, 2, 8, 4, 5, 6, 9, 6, 2, 6, 7, 5, 1, 5, 7, 7, 2, 7, 8, 10, 5, 7, 10, 9, 4, 3, 5, 1, 3, 5, 4, 1, 8, 6, 3, 10, 5, 4, 5, 1, 7, 9, 5, 1, 1, 7, 1, 2, 8, 9, 4, 4, 9, 8, 9, 8, 9, 5, 3, 6, 9, 8, 4, 1, 9, 3, 7, 10, 9, 7, 8, 6, 5, 10, 1, 7, 10, 9, 7, 4, 4, 3, 2, 1, 6, 9, 10, 9, 9, 5, 7, 1, 8, 5, 10, 8, 10, 5, 10, 5, 9, 3, 8, 10, 5, 4, 7, 9, 3, 2, 10, 4, 9, 10, 1, 4, 6, 6, 8, 2, 3, 9, 10, 7, 1, 7, 5, 2, 2, 6, 3, 6, 9, 1, 8, 5, 6, 10, 6, 2, 9, 4, 9, 4, 7, 3, 2, 9, 7, 3, 8, 8, 10, 9, 7, 7, 1, 5, 6, 7, 1, 5, 6, 8, 8, 4, 7, 3, 1, 10, 2, 1, 9, 1, 6, 10, 9, 7, 5, 2, 10, 1, 7, 4, 2, 8, 3, 7, 4, 10, 8, 9, 7, 9, 6, 7, 10, 10, 7, 3, 9, 8, 7, 6, 7, 2, 8, 6, 2, 1, 5, 9, 9, 7, 5, 2, 9, 5, 6, 1, 1, 3, 5, 6, 6, 9, 6, 8, 4, 9, 8, 10, 5, 7, 6, 4, 10, 4, 3, 1, 6, 2, 5, 4, 2, 9, 5, 9, 3, 8, 9, 7, 2, 4, 7, 6, 5, 9, 7, 9, 4, 10, 6, 7, 4, 4, 5, 1, 9, 7, 5, 9, 1, 1, 9, 9, 5, 4, 3, 5, 5, 4, 3, 4, 8, 10, 10, 6, 1, 5, 6, 5, 1, 6, 8, 3, 4, 5, 6, 8, 5, 6, 9, 2, 1, 3, 2, 9, 4, 8, 4, 1, 2, 5, 9, 4, 8, 3, 10, 10, 9, 9, 5, 3, 9, 7, 8, 7, 1, 7, 6, 10, 4, 7, 8, 4, 1, 5, 1, 10, 9, 5, 2, 1, 9, 1, 10, 3, 6, 9, 8, 3, 8, 6, 9, 9, 1, 9, 9, 8, 6, 6, 5, 9, 1, 8, 4, 4, 10, 2, 5, 10, 8, 8, 3, 8, 6, 3, 2, 4, 6, 9, 3, 6, 7, 5, 9, 7, 8, 6, 7, 4, 9, 5, 5, 8, 7, 7, 10, 1, 3, 8, 9, 6, 5, 5, 9, 3, 3, 3, 1, 4, 3, 6, 10, 4, 2, 6, 1, 9, 10, 5, 2, 1, 5, 4, 10, 10, 1, 8, 6, 2, 8, 4, 10, 8, 4, 6, 8, 1, 1, 6, 5, 9, 3, 5, 7, 8, 7, 2, 9, 5, 6, 1, 5, 7, 2, 2, 9, 2, 5, 6, 7, 2, 7, 5, 8, 5, 9, 7, 10, 9, 6, 1, 3, 7, 3, 2, 3, 2, 4, 7, 8, 5, 1, 9, 7, 4, 1, 3, 6, 4, 10, 8, 2, 9, 8, 10, 2, 9, 7, 10, 5, 9, 1, 1, 10, 10, 7, 7, 4, 2, 3, 9, 5, 6, 7, 1, 7, 8, 7, 2, 2, 2, 5, 5, 10, 3, 7, 8, 10, 10, 7, 5, 7, 7, 7, 9, 10, 1, 5, 9, 6, 6, 10, 5, 9, 5, 7, 6, 7, 4, 8, 2, 4, 10, 1, 9, 9, 1, 3, 9, 1, 8, 5, 4, 6, 9, 9, 8, 6, 2, 7, 1, 9, 7, 3, 6, 8, 9, 7, 7, 2, 3, 2, 5, 7, 8, 1, 6, 2, 1, 5, 8, 2, 10, 5, 4, 10, 5, 6, 8, 6, 3, 4, 4, 8, 9, 5, 2, 6, 10, 8, 2, 5, 2, 5, 8, 10, 8, 9, 1, 2, 6, 9, 10, 6, 6, 9, 2, 9, 10, 3, 6, 7, 8, 7, 5, 6, 6, 4, 6, 3, 3, 10, 4, 8, 5, 4, 7, 4, 1, 10, 8, 9, 1, 10, 1, 2, 8, 9, 9, 2, 4, 6, 10, 9, 9, 7, 10, 9, 8, 1, 7, 10, 8, 8, 7, 5, 6, 8, 9, 9, 10, 3, 4, 2, 7, 10, 10, 7, 4, 10, 4, 2, 1, 9, 1, 2, 1, 1, 4, 3, 1, 9, 3, 1, 7, 4, 6, 4, 9, 8, 4, 1, 6, 9, 4, 3, 2, 9, 8, 10, 7, 6, 10, 9, 10, 9, 7, 10, 3, 5, 4, 10, 1, 1, 9, 8, 6, 5, 10, 1, 3, 1, 6, 2, 5, 2, 2, 4, 6, 3, 6, 1, 1, 6, 2, 10, 4, 2, 4, 3, 9, 6, 10, 4, 9, 5, 1, 10, 8, 10, 7, 3, 9, 4, 10, 9, 7, 2, 10, 1, 1, 5, 3, 1, 7, 10, 8, 10, 4, 5, 7, 10, 4, 2, 1, 8, 6, 1, 7, 8, 2, 6, 3, 4, 10, 10, 6, 9, 1, 10, 9, 2, 10, 10, 8, 8, 2, 3, 8, 3, 5, 5, 6, 6, 8, 5, 1, 4, 9, 5, 10, 8, 10, 7, 7, 10, 1, 3, 9, 9, 6, 7, 4, 2, 4, 5, 4, 8, 7, 10, 7, 2, 2, 9, 6, 6, 7, 6, 6, 8, 5, 1, 5, 9, 7, 4, 5, 8, 4, 8, 10, 7, 10, 2, 10, 10, 4, 8, 3, 4, 9, 2, 2, 7, 8, 4, 5, 6, 3, 6, 2, 2, 1, 2, 7, 5, 4, 6, 2, 10, 8, 7, 9, 2, 5, 3, 9, 8, 10, 7, 10, 2, 7, 8, 2, 2, 9, 5, 10, 1, 9, 7, 8, 3, 8, 2, 3, 8, 2, 9, 5, 4, 6, 4, 9, 5, 6, 3, 1, 5, 4, 7, 7, 9, 7, 4, 9, 1, 1, 7, 2, 8, 6, 6, 4, 2, 3, 9, 1, 8, 8, 4, 6, 6, 7, 4, 7, 9, 2, 4, 7, 2, 10, 8, 8, 2, 4, 1, 6, 5, 10, 2, 4, 1, 8, 9, 9, 8, 6, 6, 4, 9, 9, 7, 1, 1, 5, 7, 7, 4, 1, 10, 9, 1, 7, 4, 8, 2, 1, 7, 7, 7, 7, 10, 4, 9, 10, 6, 3, 8, 9, 8, 5, 6, 3, 7, 4, 10, 5, 7, 6, 2, 2, 10, 4, 4, 5, 4, 3, 2, 5, 8, 10, 7, 5, 5, 10, 8, 5, 7, 7, 4, 5, 7, 5, 10, 8, 1, 8, 6, 6, 4, 10, 8, 3, 10, 1, 4, 10, 9, 4, 5, 8, 5, 10, 1, 1, 3, 2, 5, 6, 3, 3, 7, 8, 5, 5, 3, 9, 9, 6, 4, 8, 6, 5, 3, 3, 9, 6, 7, 6, 10, 7, 5, 10, 6, 8, 9, 8, 7, 6, 10, 10, 7, 9, 3, 3, 8, 6, 1, 3, 2, 4, 3, 7, 7, 5, 1, 1, 1, 5, 6, 5, 1, 8, 2, 6, 7, 10, 6, 9, 3, 6, 1, 8, 4, 3, 5, 2, 9, 3, 1, 7, 6, 10, 3, 10, 6, 5, 1, 1, 8, 7, 5, 6, 6, 5, 5, 10, 1, 10, 9, 6, 1, 5, 10, 6, 7, 5, 10, 8, 2, 5, 3, 9, 6, 2, 7, 7, 5, 7, 2, 1, 8, 8, 2, 9, 5, 1, 3, 10, 5, 1, 1, 6, 4, 7, 4, 3, 8, 8, 5, 5, 5, 9, 3, 4, 6, 2, 7, 9, 2, 4, 10, 4, 10, 1, 2, 9, 3, 7, 4, 9, 7, 8, 8, 8, 5, 1, 10, 5, 3, 6, 2, 4, 5, 7, 4, 8, 10, 5, 10, 8, 2, 9, 2, 10, 6, 6, 2, 5, 1, 5, 6, 10, 5, 2, 8, 3, 3, 5, 9, 5, 5, 6, 4, 4, 3, 1, 6, 7, 6, 2, 6, 8, 3, 7, 9, 1, 2, 7, 7, 4, 10, 4, 8, 8, 1, 7, 4, 1, 1, 5, 10, 3, 10, 1, 3, 1, 1, 1, 7, 10, 1, 8, 9, 4, 8, 3, 6, 4, 5, 2, 2, 7, 8, 6, 2, 4, 7, 2, 9, 6, 7, 9, 5, 3, 9, 3, 8, 2, 10, 4, 1, 7, 3, 10, 3, 3, 10, 5, 7, 9, 3, 1, 4, 7, 4, 4, 10, 2, 10, 3, 3, 3, 6, 3, 9, 6, 3, 7, 2, 7, 8, 3, 7, 4, 2, 2, 8, 4, 6, 6, 3, 2, 5, 2, 8, 2, 10, 6, 9, 7, 10, 1, 4, 8, 10, 3, 2, 2, 9, 6, 1, 3, 10, 9, 10, 10, 4, 4, 2, 9, 9, 4, 1, 5, 2, 10, 1, 1, 3, 3, 5, 10, 3, 10, 7, 6, 10, 9, 1, 5, 2, 7, 1, 5, 2, 9, 9, 5, 1, 8, 2, 2, 1, 6, 6, 8, 2, 5, 8, 9, 8, 2, 3, 9, 6, 2, 4, 8, 10, 9, 4, 4, 1, 3, 7, 10, 1, 10, 8, 4, 4, 10, 9, 5, 8, 8, 3, 8, 4, 9, 5, 1, 10, 8, 1, 5, 9, 7, 9, 6, 7, 5, 1, 9, 7, 8, 3, 7, 3, 6, 3, 6, 3, 4, 1, 6, 1, 7, 9, 2, 8, 5, 10, 2, 1, 9, 6, 1, 1, 1, 3, 6, 3, 4, 10, 2, 9, 2, 6, 7, 6, 4, 1, 8, 9, 3, 9, 4, 6, 8, 7, 4, 9, 9, 2, 2, 7, 2, 2, 3, 7, 7, 2, 9, 6, 4, 2, 3, 10, 3, 2, 2, 7, 1, 1, 2, 9, 9, 7, 5, 9, 7, 1, 7, 1, 10, 4, 9, 8, 5, 8, 3, 7, 4, 6, 5, 5, 5, 1, 7, 10, 10, 1, 3, 9, 6, 5, 4, 10, 1, 3, 9, 8, 9, 10, 5, 7, 5, 1, 4, 1, 2, 1, 2, 10, 5, 3, 2, 9, 2, 10, 10, 3, 9, 4, 2, 8, 2, 1, 6, 7, 1, 6, 1, 6, 7, 8, 9, 8, 1, 7, 5, 4, 4, 3, 7, 8, 2, 2, 8, 6, 7, 9, 1, 2, 8, 8, 7, 2, 3, 4, 2, 10, 8, 2, 5, 8, 8, 4, 4, 9, 4, 4, 9, 9, 6, 4, 7, 8, 4, 1, 4, 9, 4, 4, 9, 6, 4, 10, 10, 7, 3, 2, 5, 2, 4, 8, 9, 7, 7, 4, 6, 3, 5, 10, 10, 5, 2, 5, 5, 10, 4, 4, 4, 4, 2, 10, 7, 10, 3, 3, 8, 8, 4, 8, 4, 2, 4, 5, 6, 3, 8, 3, 9, 2, 5, 3, 8, 10, 6, 8, 3, 5, 4, 4, 6, 10, 6, 1, 2, 7, 1, 6, 9, 9, 3, 2, 10, 4, 5, 2, 4, 3, 5, 6, 9, 7, 2, 8, 6, 5, 5, 3, 8, 10, 6, 5, 2, 4, 4, 10, 3, 1, 4, 7, 2, 6, 9, 5, 2, 5, 1, 1, 5, 2, 2, 4, 7, 2, 2, 7, 3, 7, 9, 5, 1, 1, 6, 2, 1, 4, 3, 8, 9, 7, 3, 7, 1, 10, 5, 8, 3, 10, 2, 2, 10, 5, 8, 5, 4, 8, 3, 9, 10, 1, 5, 9, 5, 1, 5, 6, 9, 3, 9, 10, 4, 4, 10, 2, 10, 6, 5, 8, 9, 10, 9, 7, 7, 4, 3, 3, 6, 8, 10, 4, 1, 8, 10, 8, 3, 9, 2, 1, 3, 4, 5, 1, 2, 5, 10, 8, 7, 10, 10, 10, 5, 6, 5, 7, 1, 9, 1, 7, 2, 5, 10, 2, 9, 6, 3, 5, 3, 6, 9, 3, 1, 3, 6, 5, 7, 8, 10, 9, 3, 2, 5, 2, 4, 6, 2, 6, 10, 9, 2, 10, 6, 8, 4, 2, 2, 3, 3, 4, 4, 5, 3, 1, 10, 2, 1, 8, 10, 7, 5, 10, 10, 5, 5, 2, 4, 2, 2, 10, 9, 6, 9, 9, 6, 4, 6, 4, 9, 8, 9, 3, 2, 3, 2, 10, 7, 3, 3, 6, 1, 4, 5, 2, 1, 5, 2, 6, 5, 2, 3, 4, 10, 1, 7, 3, 8, 6, 6, 2, 4, 9, 2, 4, 1, 4, 3, 8, 7, 4, 6, 10, 5, 8, 7, 1, 2, 7, 6, 10, 2, 1, 7, 2, 6, 8, 4, 5, 8, 10, 7, 6, 3, 1, 6, 2, 1, 2, 1, 3, 4, 3, 3, 5, 6, 7, 6, 6, 1, 5, 7, 1, 8, 8, 9, 10, 4, 2, 2, 3, 10, 2, 2, 5, 10, 9, 4, 9, 10, 2, 2, 7, 1, 5, 9, 8, 10, 8, 9, 6, 1, 5, 7, 3, 3, 6, 7, 8, 9, 10, 4, 1, 6, 6, 6, 3, 4, 6, 1, 2, 5, 5, 8, 7, 1, 10, 10, 1, 1, 10, 1, 6, 8, 7, 1, 4, 1, 3, 8, 3, 6, 7, 7, 5, 8, 9, 2, 5, 5, 5, 6, 5, 2, 7, 4, 2, 8, 9, 1, 9, 6, 2, 1, 5, 4, 5, 5, 6, 8, 3, 4, 5, 8, 9, 7, 9, 7, 2, 5, 9, 6, 10, 5, 2, 6, 4, 9, 8, 10, 7, 3, 10, 3, 7, 3, 6, 1, 7, 10, 3, 5, 1, 10, 4, 2, 4, 3, 8, 1, 3, 1, 1, 7, 5, 7, 10, 7, 6, 2, 1, 4, 10, 9, 5, 2, 5, 6, 1, 10, 5, 6, 8, 6, 7, 7, 2, 5, 5, 5, 10, 5, 4, 10, 6, 6, 8, 8, 5, 9, 10, 3, 4, 3, 9, 10, 6, 10, 5, 6, 7, 5, 4, 8, 3, 3, 7, 4, 1, 10, 8, 8, 7, 6, 2, 3, 2, 3, 5, 3, 1, 9, 8, 1, 10, 2, 6, 6, 7, 9, 9, 9, 5, 10, 10, 4, 8, 4, 7, 7, 3, 10, 9, 2, 10, 5, 4, 1, 6, 7, 8, 4, 1, 7, 10, 3, 1, 6, 3, 10, 5, 9, 3, 7, 10, 7, 3, 2, 2, 6, 5, 5, 3, 5, 2, 3, 4, 2, 5, 1, 9, 10, 10, 2, 9, 4, 3, 9, 5, 2, 10, 1, 5, 1, 4, 6, 6, 8, 3, 10, 10, 6, 3, 2, 7, 2, 3, 5, 8, 9, 2, 6, 7, 6, 9, 8, 5, 2, 2, 5, 5, 2, 10, 4, 9, 4, 1, 7, 1, 5, 2, 4, 9, 6, 1, 4, 4, 2, 6, 8, 9, 8, 9, 8, 7, 4, 1, 7, 5, 9, 10, 9, 6, 2, 10, 8, 1, 4, 4, 10, 4, 8, 10, 5, 10, 8, 1, 4, 4, 10, 6, 1, 5, 3, 8, 9, 4, 4, 6, 10, 8, 3, 8, 4, 8, 3, 10, 3, 10, 3, 6, 2, 8, 1, 8, 2, 9, 6, 2, 8, 7, 2, 9, 9, 9, 10, 1, 2, 5, 10, 10, 7, 7, 7, 10, 9, 10, 6, 9, 7, 3, 7, 1, 2, 6, 9, 4, 1, 5, 7, 8, 10, 1, 8, 5, 9, 5, 7, 9, 2, 10, 2, 5, 3, 9, 4, 5, 10, 3, 3, 5, 6, 1, 2, 8, 1, 6, 7, 5, 8, 3, 10, 4, 4, 5, 5, 4, 2, 6, 6, 2, 10, 3, 6, 9, 8, 4, 7, 6, 5, 5, 7, 10, 2, 4, 10, 8, 2, 6, 3, 6, 3, 9, 8, 5, 1, 1, 7, 7, 10, 7, 10, 1, 10, 1, 6, 7, 3, 9, 2, 1, 9, 1, 8, 6, 6, 1, 7, 1, 2, 5, 5, 1, 4, 7, 10, 5, 10, 9, 9, 8, 10, 9, 7, 3, 5, 1, 5, 5, 8, 9, 5, 9, 4, 8, 8, 4, 9, 1, 2, 5, 7, 3, 2, 5, 7, 2, 8, 10, 10, 6, 4, 2, 1, 5, 5, 9, 1, 7, 9, 4, 8, 5, 10, 3, 1, 8, 3, 10, 10, 5, 7, 8, 1, 6, 4, 2, 2, 8, 4, 8, 9, 10, 4, 8, 9, 4, 4, 7, 10, 4, 9, 1, 3, 7, 8, 3, 2, 5, 8, 6, 4, 3, 9, 8, 6, 3, 10, 9, 4, 10, 7, 2, 5, 6, 10, 8, 9, 10, 6, 10, 5, 3, 6, 2, 6, 5, 6, 9, 1, 6, 1, 9, 7, 4, 10, 3, 2, 5, 1, 5, 4, 8, 9, 9, 4, 10, 2, 4, 6, 1, 5, 6, 10, 10, 3, 5, 10, 2, 7, 1, 8, 10, 6, 3, 7, 4, 7, 8, 6, 4, 7, 2, 7, 6, 5, 6, 10, 7, 9, 10, 6, 10, 8, 4, 5, 1, 5, 1, 7, 10, 6, 7, 6, 7, 5, 5, 7, 6, 5, 9, 1, 5, 4, 1, 1, 8, 9, 2, 3, 1, 10, 2, 2, 10, 4, 5, 4, 6, 5, 1, 10, 1, 7, 8, 9, 5, 6, 10, 6, 1, 8, 5, 8, 5, 3, 4, 5, 2, 2, 4, 3, 10, 1, 10, 7, 2, 4, 9, 1, 7, 9, 9, 3, 10, 3, 2, 8, 2, 4, 6, 6, 7, 2, 4, 4, 10, 7, 7, 4, 5, 1, 9, 9, 6, 1, 10, 1, 9, 7, 2, 10, 5, 5, 9, 9, 7, 8, 8, 1, 10, 4, 5, 10, 2, 10, 10, 1, 5, 7, 9, 1, 2, 1, 5, 1, 2, 6, 8, 4, 5, 10, 3, 10, 9, 4, 8, 5, 10, 9, 10, 8, 9, 9, 1, 7, 1, 2, 7, 10, 1, 3, 2, 3, 8, 9, 4, 6, 4, 8, 2, 3, 5, 9, 6, 6, 9, 5, 5, 2, 4, 10, 3, 4, 9, 2, 5, 5, 3, 8, 1, 1, 6, 7, 8, 3, 2, 4, 4, 4, 6, 9, 10, 6, 2, 9, 8, 10, 6, 7, 2, 6, 10, 4, 5, 6, 1, 8, 4, 5, 10, 3, 2, 8, 7, 9, 5, 9, 4, 4, 10, 2, 7, 6, 2, 8, 8, 10, 3, 2, 4, 4, 3, 8, 8, 8, 7, 10, 9, 2, 5, 2, 9, 7, 3, 10, 1, 7, 10, 1, 6, 9, 1, 6, 1, 2, 4, 5, 5, 10, 9, 3, 6, 2, 8, 1, 6, 8, 3, 1, 8, 4, 1, 4, 9, 7, 4, 7, 9, 8, 7, 9, 6, 3, 1, 3, 2, 7, 10, 5, 3, 9, 10, 10, 6, 8, 6, 3, 3, 4, 4, 7, 6, 10, 5, 7, 5, 5, 9, 2, 8, 1, 4, 3, 10, 10, 4, 5, 2, 10, 5, 4, 2, 3, 4, 10, 4, 4, 8, 7, 5, 8, 2, 9, 5, 3, 6, 7, 8, 7, 8, 3, 3, 6, 4, 8, 8, 9, 2, 4, 3, 4, 3, 9, 6, 10, 10, 10, 1, 9, 6, 10, 8, 9, 3, 1, 8, 10, 2, 6, 6, 6, 3, 5, 6, 8, 10, 1, 7, 8, 1, 8, 2, 5, 9, 3, 6, 7, 1, 2, 10, 3, 7, 4, 10, 4, 7, 8, 5, 9, 9, 5, 6, 2, 10, 6, 6, 5, 5, 4, 1, 6, 6, 5, 10, 4, 3, 3, 7, 9, 1, 9, 5, 4, 4, 9, 1, 6, 7, 9, 2, 2, 4, 4, 6, 8, 8, 4, 7, 5, 3, 10, 10, 6, 10, 4, 1, 1, 2, 3, 4, 1, 4, 1, 7, 9, 6, 9, 2, 10, 10, 2, 3, 9, 1, 4, 2, 8, 9, 1, 4, 8, 2, 2, 3, 2, 8, 8, 4, 3, 4, 9, 9, 3, 9, 8, 10, 9, 2, 9, 6, 10, 4, 7, 10, 7, 5, 8, 8, 5, 1, 5, 3, 4, 7, 3, 5, 3, 4, 7, 4, 9, 6, 9, 7, 5, 10, 1, 6, 4, 4, 10, 7, 1, 5, 8, 5, 10, 2, 7, 2, 10, 4, 5, 9, 9, 7, 10, 9, 8, 1, 10, 7, 8, 6, 5, 7, 5, 1, 6, 2, 8, 8, 1, 10, 1, 6, 7, 6, 6, 2, 8, 6, 5, 1, 7, 6, 5, 7, 7, 5, 5, 2, 9, 10, 2, 9, 3, 5, 3, 10, 5, 8, 6, 1, 10, 4, 2, 8, 4, 6, 6, 10, 5, 1, 8, 5, 8, 3, 10, 7, 4, 3, 8, 10, 6, 10, 2, 1, 5, 7, 5, 3, 6, 7, 8, 5, 9, 5, 6, 8, 8, 3, 5, 4, 4, 5, 6, 1, 9, 10, 10, 7, 8, 6, 4, 10, 5, 7, 6, 2, 6, 4, 8, 6, 5, 4, 4, 7, 1, 7, 9, 6, 1, 10, 6, 2, 10, 8, 5, 1, 9, 3, 8, 6, 3, 8, 5, 4, 6, 3, 3, 8, 5, 1, 1, 2, 8, 10, 2, 9, 2, 2, 10, 10, 7, 5, 9, 2, 8, 9, 10, 9, 4, 1, 4, 3, 1, 6, 8, 10, 3, 8, 4, 2, 4, 5, 7, 8, 5, 6, 4, 1, 5, 2, 4, 7, 8, 10, 5, 3, 3, 1, 1, 3, 6, 10, 7, 5, 6, 9, 10, 5, 6, 4, 8, 3, 4, 3, 8, 10, 5, 4, 3, 8, 1, 2, 2, 5, 4, 6, 4, 2, 1, 7, 4, 5, 9, 6, 3, 9, 7, 3, 1, 3, 2, 6, 2, 8, 6, 8, 2, 5, 6, 2, 10, 3, 6, 9, 1, 6, 4, 6, 4, 6, 4, 8, 10, 2, 6, 9, 7, 2, 3, 3, 9, 6, 2, 9, 1, 9, 7, 6, 9, 4, 7, 8, 2, 2, 1, 5, 1, 7, 8, 3, 7, 7, 9, 7, 2, 1, 8, 5, 10, 8, 8, 7, 1, 10, 4, 4, 3, 1, 4, 5, 4, 7, 3, 7, 9, 10, 5, 3, 1, 8, 9, 5, 8, 7, 5, 1, 9, 9, 2, 6, 10, 1, 10, 1, 3, 3, 1, 5, 3, 3, 3, 2, 4, 3, 1, 6, 6, 2, 8, 7, 2, 10, 3, 9, 10, 2, 7, 2, 4, 10, 9, 5, 6, 8, 9, 8, 2, 5, 2, 2, 9, 9, 2, 9, 5, 3, 8, 1, 3, 4, 4, 2, 7, 1, 9, 7, 6, 9, 3, 5, 1, 1, 3, 5, 3, 10, 7, 9, 8, 7, 7, 2, 6, 2, 4, 4, 2, 8, 6, 5, 8, 6, 7, 7, 2, 7, 8, 2, 5, 4, 3, 3, 5, 10, 5, 7, 7, 9, 7, 9, 1, 8, 7, 10, 10, 5, 1, 3, 4, 4, 10, 6, 6, 1, 1, 6, 3, 2, 3, 2, 5, 10, 9, 1, 6, 2, 8, 6, 2, 9, 2, 7, 5, 5, 1, 8, 8, 8, 3, 3, 5, 7, 3, 7, 1, 10, 8, 7, 2, 8, 4, 5, 2, 2, 7, 3, 7, 3, 5, 10, 7, 5, 9, 8, 6, 9, 8, 4, 7, 7, 9, 8, 10, 2, 4, 6, 2, 2, 7, 8, 10, 8, 9, 3, 1, 6, 1, 10, 8, 5, 10, 8, 10, 9, 4, 6, 6, 3, 5, 10, 1, 1, 3, 4, 1, 9, 7, 8, 4, 6, 6, 8, 3, 10, 7, 5, 9, 2, 9, 9, 3, 6, 5, 8, 3, 3, 6, 1, 1, 9, 10, 1, 3, 10, 2, 3, 1, 4, 4, 2, 9, 1, 6, 1, 10, 7, 6, 9, 7, 1, 4, 8, 5, 8, 8, 7, 10, 4, 3, 9, 8, 2, 3, 10, 7, 1, 10, 6, 2, 10, 5, 9, 8, 8, 10, 9, 10, 9, 3, 6, 7, 3, 5, 10, 7, 1, 3, 5, 1, 10, 1, 10, 1, 7, 9, 10, 7, 10, 5, 7, 7, 5, 3, 4, 3, 10, 7, 10, 9, 9, 4, 5, 9, 4, 9, 6, 6, 7, 9, 8, 8, 2, 1, 9, 6, 1, 7, 2, 5, 9, 10, 10, 4, 5, 3, 8, 10, 3, 4, 1, 4, 6, 10, 2, 6, 10, 5, 3, 7, 3, 3, 9, 9, 2, 6, 7, 9, 10, 4, 2, 6, 6, 1, 9, 3, 6, 4, 4, 8, 1, 2, 4, 8, 2, 6, 10, 5, 1, 3, 2, 7, 8, 9, 6, 8, 6, 3, 7, 8, 7, 8, 5, 3, 5, 10, 1, 2, 4, 3, 7, 7, 3, 3, 8, 3, 2, 1, 2, 5, 7, 8, 3, 3, 10, 8, 1, 1, 2, 8, 9, 10, 2, 7, 10, 4, 8, 8, 8, 8, 5, 5, 8, 10, 6, 5, 6, 3, 1, 9, 1, 5, 7, 4, 9, 5, 7, 3, 9, 5, 6, 8, 1, 9, 4, 10, 1, 3, 6, 7, 3, 10, 9, 2, 8, 10, 3, 2, 8, 7, 2, 1, 5, 6, 2, 7, 1, 5, 10, 1, 1, 9, 10, 7, 3, 1, 9, 8, 2, 2, 4, 1, 1, 7, 8, 8, 3, 9, 3, 7, 8, 8, 9, 1, 8, 6, 6, 9, 4, 9, 9, 3, 5, 7, 5, 6, 8, 8, 5, 2, 1, 9, 7, 4, 7, 6, 7, 10, 6, 10, 1, 9, 1, 5, 5, 2, 8, 7, 3, 9, 3, 7, 7, 7, 9, 6, 5, 3, 4, 8, 9, 2, 4, 2, 8, 3, 3, 1, 4, 1, 6, 8, 10, 3, 8, 9, 7, 7, 3, 8, 3, 9, 5, 6, 2, 6, 8, 5, 8, 7, 7, 8, 3, 6, 1, 10, 8, 1, 9, 6, 3, 8, 1, 7, 5, 8, 3, 2, 9, 5, 6, 6, 10, 9, 5, 6, 10, 1, 5, 2, 9, 5, 5, 1, 4, 2, 1, 4, 2, 4, 3, 5, 3, 10, 9, 1, 1, 8, 5, 1, 4, 6, 10, 2, 10, 6, 4, 6, 5, 6, 10, 4, 7, 7, 5, 10, 5, 5, 5, 9, 9, 1, 6, 1, 1, 2, 5, 5, 9, 6, 2, 9, 7, 10, 2, 2, 1, 7, 9, 9, 7, 6, 6, 6, 4, 8, 4, 4, 1, 6, 9, 7, 7, 7, 3, 9, 7, 8, 6, 1, 2, 9, 2, 6, 3, 5, 4, 2, 1, 5, 9, 4, 3, 9, 8, 6, 3, 3, 7, 2, 2, 10, 7, 10, 9, 2, 10, 1, 1, 2, 4, 9, 5, 8, 9, 2, 1, 4, 8, 3, 1, 6, 5, 10, 4, 5, 2, 10, 2, 8, 1, 2, 10, 2, 5, 7, 8, 4, 8, 6, 5, 2, 3, 9, 3, 4, 3, 6, 3, 7, 9, 3, 3, 4, 9, 4, 6, 9, 6, 6, 6, 6, 1, 3, 3, 6, 2, 3, 7, 10, 3, 10, 5, 3, 1, 5, 5, 4, 5, 3, 7, 3, 8, 7, 1, 3, 6, 3, 3, 6, 1, 5, 3, 9, 7, 2, 7, 3, 6, 7, 7, 3, 1, 1, 9, 5, 10, 7, 1, 6, 2, 7, 10, 8, 6, 1, 4, 7, 7, 4, 2, 2, 2, 9, 6, 2, 6, 5, 6, 8, 6, 5, 6, 8, 4, 9, 8, 10, 7, 9, 6, 10, 8, 4, 7, 7, 4, 8, 3, 7, 4, 7, 8, 6, 10, 4, 1, 9, 7, 4, 5, 5, 4, 3, 2, 7, 1, 3, 2, 9, 10, 7, 6, 2, 8, 6, 3, 9, 3, 6, 9, 6, 4, 8, 9, 10, 3, 6, 3, 6, 10, 9, 2, 7, 1, 5, 1, 9, 1, 1, 1, 2, 7, 6, 6, 4, 10, 8, 1, 4, 7, 9, 6, 4, 6, 10, 9, 10, 7, 2, 5, 2, 6, 10, 3, 2, 4, 3, 4, 5, 3, 2, 8, 6, 6, 3, 2, 5, 10, 7, 10, 10, 2, 6, 2, 7, 6, 10, 9, 7, 6, 6, 3, 5, 4, 8, 8, 6, 10, 4, 2, 1, 9, 6, 8, 1, 2, 2, 1, 5, 7, 1, 9, 10, 7, 3, 4, 2, 5, 3, 9, 8, 8, 8, 8, 8, 1, 4, 5, 1, 6, 3, 4, 1, 9, 2, 3, 6, 8, 8, 4, 2, 10, 3, 8, 3, 8, 5, 3, 7, 10, 2, 6, 3, 8, 3, 10, 8, 2, 4, 4, 2, 5, 3, 7, 9, 3, 6, 3, 4, 2, 5, 3, 2, 2, 10, 6, 5, 7, 9, 10, 4, 9, 9, 9, 1, 4, 3, 10, 9, 8, 3, 9, 6, 3, 7, 1, 10, 2, 10, 8, 9, 9, 2, 4, 3, 2, 3, 5, 5, 10, 3, 6, 1, 4, 6, 7, 7, 1, 4, 4, 3, 10, 10, 5, 4, 3, 2, 6, 10, 9, 2, 4, 9, 10, 6, 10, 6, 9, 1, 5, 2, 3, 9, 2, 7, 4, 2, 6, 3, 6, 10, 5, 8, 9, 2, 1, 5, 3, 3, 9, 4, 6, 5, 8, 3, 1, 2, 1, 7, 2, 3, 6, 1, 7, 8, 7, 9, 8, 2, 3, 10, 3, 10, 9, 7, 7, 7, 10, 8, 2, 2, 5, 8, 3, 2, 10, 3, 4, 8, 1, 6, 2, 5, 2, 4, 4, 7, 1, 1, 2, 9, 10, 9, 1, 6, 4, 9, 5, 2, 3, 9, 4, 3, 9, 9, 6, 3, 6, 10, 10, 1, 1, 1, 7, 5, 8, 7, 10, 3, 9, 3, 2, 3, 1, 9, 10, 10, 10, 6, 8, 8, 9, 8, 4, 7, 8, 5, 9, 3, 8, 9, 9, 5, 4, 9, 7, 10, 2, 1, 7, 1, 7, 5, 2, 7, 8, 10, 10, 9, 8, 4, 3, 9, 2, 10, 7, 1, 2, 2, 10, 1, 2, 9, 3, 10, 3, 6, 5, 6, 1, 2, 2, 6, 4, 2, 2, 3, 2, 6, 3, 7, 2, 10, 6, 7, 3, 9, 7, 6, 7, 5, 5, 9, 6, 2, 8, 2, 1, 2, 6, 9, 4, 10, 2, 2, 10, 8, 1, 8, 1, 3, 6, 3, 10, 10, 8, 10, 2, 7, 6, 4, 10, 9, 5, 6, 1, 5, 5, 4, 4, 8, 2, 7, 4, 2, 3, 10, 3, 5, 6, 1, 3, 6, 9, 3, 2, 1, 2, 10, 7, 1, 10, 10, 3, 1, 9, 6, 9, 3, 7, 9, 1, 8, 3, 7, 8, 2, 9, 8, 5, 8, 1, 2, 8, 8, 4, 3, 6, 2, 9, 7, 5, 10, 5, 6, 1, 9, 9, 1, 10, 10, 5, 10, 5, 8, 7, 7, 10, 3, 7, 3, 2, 3, 6, 9, 4, 8, 10, 3, 4, 8, 7, 2, 3, 2, 2, 4, 7, 2, 9, 5, 7, 7, 6, 1, 6, 6, 1, 10, 6, 2, 2, 9, 3, 6, 4, 1, 2, 4, 9, 9, 5, 3, 3, 10, 7, 7, 4, 3, 6, 9, 8, 6, 2, 5, 6, 10, 1, 5, 9, 6, 9, 9, 5, 6, 4, 4, 5, 7, 6, 8, 4, 2, 2, 7, 8, 4, 8, 7, 1, 6, 3, 8, 3, 2, 4, 4, 5, 2, 10, 1, 6, 5, 2, 5, 6, 9, 7, 2, 4, 10, 6, 9, 7, 7, 10, 1, 6, 10, 1, 7, 9, 1, 7, 2, 8, 2, 7, 9, 4, 2, 5, 9, 5, 8, 10, 8, 10, 4, 3, 2, 8, 1, 7, 4, 1, 8, 3, 9, 9, 9, 10, 3, 2, 1, 8, 8, 1, 6, 5, 4, 9, 10, 1, 4, 8, 7, 7, 9, 2, 1, 3, 7, 9, 1, 5, 9, 7, 8, 7, 8, 4, 7, 7, 10, 1, 2, 2, 9, 10, 1, 6, 10, 3, 10, 3, 5, 5, 4, 6, 8, 6, 3, 6, 2, 1, 1, 9, 2, 1, 7, 7, 2, 2, 5, 10, 1, 7, 10, 8, 7, 7, 3, 4, 6, 6, 5, 6, 10, 8, 7, 7, 2, 9, 4, 6, 10, 2, 1, 7, 9, 7, 8, 6, 1, 1, 4, 4, 3, 8, 10, 8, 3, 2, 2, 2, 4, 6, 7, 6, 1, 7, 4, 1, 9, 9, 10, 7, 4, 5, 2, 6, 6, 1, 6, 1, 5, 3, 5, 2, 9, 5, 1, 8, 2, 8, 5, 2, 2, 2, 6, 10, 10, 3, 8, 6, 2, 1, 8, 7, 9, 10, 7, 5, 7, 8, 1, 5, 7, 2, 2, 9, 2, 6, 8, 10, 9, 2, 8, 8, 7, 5, 1, 7, 2, 3, 2, 2, 3, 2, 8, 2, 5, 10, 5, 2, 2, 6, 9, 4, 2, 10, 1, 4, 1, 8, 5, 3, 9, 2, 10, 7, 9, 8, 3, 4, 8, 6, 8, 7, 3, 9, 8, 5, 3, 9, 7, 6, 6, 4, 8, 1, 1, 6, 5, 7, 3, 5, 1, 6, 8, 4, 10, 10, 7, 4, 1, 2, 7, 1, 2, 8, 7, 10, 9, 8, 8, 9, 5, 6, 9, 3, 5, 4, 7, 7, 6, 8, 7, 8, 5, 3, 4, 8, 6, 3, 4, 6, 3, 10, 7, 3, 10, 4, 10, 9, 1, 9, 8, 2, 6, 4, 5, 1, 5, 1, 5, 2, 3, 9, 6, 3, 8, 2, 4, 10, 1, 9, 4, 3, 6, 8, 3, 4, 10, 4, 6, 9, 2, 9, 2, 2, 6, 5, 5, 8, 10, 8, 8, 1, 3, 4, 6, 8, 8, 8, 2, 5, 2, 2, 3, 1, 2, 7, 8, 5, 10, 10, 6, 5, 5, 2, 8, 3, 6, 9, 1, 10, 10, 9, 2, 10, 9, 2, 2, 1, 3, 8, 5, 7, 7, 6, 7, 2, 1, 9, 10, 8, 5, 10, 9, 6, 7, 2, 2, 7, 3, 7, 2, 4, 3, 7, 4, 9, 8, 8, 3, 3, 10, 7, 4, 9, 6, 3, 2, 6, 1, 1, 4, 5, 6, 7, 1, 6, 2, 10, 8, 7, 8, 4, 3, 8, 5, 4, 4, 6, 1, 7, 9, 9, 7, 6, 10, 1, 7, 7, 5, 4, 5, 2, 9, 9, 1, 2, 7, 5, 4, 3, 1, 4, 4, 7, 9, 8, 5, 4, 1, 10, 9, 5, 5, 3, 5, 4, 3, 1, 4, 6, 3, 2, 9, 8, 9, 9, 10, 4, 9, 4, 1, 3, 4, 10, 7, 3, 4, 5, 6, 5, 10, 4, 7, 8, 10, 5, 9, 7, 9, 8, 9, 9, 6, 3, 4, 8, 9, 3, 10, 3, 3, 5, 9, 4, 6, 10, 5, 8, 9, 8, 6, 8, 5, 6, 8, 1, 6, 10, 2, 1, 9, 4, 5, 2, 10, 9, 7, 7, 7, 4, 4, 3, 10, 9, 9, 5, 2, 4, 10, 4, 1, 7, 7, 10, 2, 7, 3, 9, 2, 7, 5, 6, 9, 3, 8, 4, 9, 4, 5, 3, 1, 5, 5, 1, 6, 2, 7, 6, 9, 9, 7, 6, 6, 1, 9, 2, 4, 6, 10, 2, 5, 5, 5, 5, 1, 7, 7, 2, 3, 7, 5, 1, 5, 10, 1, 3, 5, 8, 3, 4, 2, 6, 9, 9, 4, 5, 4, 10, 4, 3, 7, 8, 8, 5, 6, 10, 5, 5, 2, 7, 2, 1, 1, 1, 3, 3, 1, 4, 4, 5, 5, 6, 6, 4, 7, 3, 8, 3, 7, 8, 8, 8, 8, 6, 7, 8, 5, 10, 6, 7, 9, 5, 9, 5, 8, 10, 6, 3, 2, 8, 3, 5, 7, 5, 6, 3, 1, 8, 10, 7, 4, 4, 1, 3, 7, 4, 5, 1, 5, 7, 8, 5, 5, 7, 3, 7, 9, 7, 8, 7, 6, 9, 10, 2, 10, 3, 6, 4, 4, 1, 7, 8, 10, 7, 9, 7, 6, 10, 5, 7, 1, 9, 8, 6, 9, 10, 6, 8, 10, 3, 1, 8, 8, 5, 3, 5, 3, 7, 6, 9, 9, 3, 3, 8, 6, 7, 8, 10, 4, 6, 10, 6, 5, 10, 7, 10, 10, 7, 2, 5, 1, 1, 5, 7, 7, 6, 7, 10, 5, 10, 3, 4, 2, 3, 3, 3, 8, 1, 6, 2, 5, 9, 10, 10, 3, 9, 6, 8, 4, 2, 8, 3, 2, 4, 9, 5, 3, 4, 8, 5, 5, 4, 2, 7, 6, 3, 10, 3, 3, 2, 1, 4, 6, 4, 8, 10, 7, 2, 5, 7, 3, 5, 4, 1, 9, 5, 1, 7, 2, 8, 3, 5, 3, 4, 9, 3, 10, 9, 10, 10, 7, 1, 8, 5, 3, 7, 7, 7, 4, 4, 9, 6, 7, 4, 6, 5, 9, 4, 7, 2, 10, 2, 7, 1, 10, 3, 8, 6, 9, 10, 4, 10, 2, 6, 5, 3, 4, 2, 3, 7, 9, 5, 9, 2, 6, 5, 5, 2, 8, 7, 6, 3, 2, 1, 6, 9, 6, 9, 6, 9, 7, 4, 8, 4, 10, 2, 4, 3, 4, 2, 6, 7, 6, 7, 2, 3, 3, 5, 8, 6, 9, 8, 9, 1, 4, 7, 10, 5, 7, 2, 5, 10, 7, 2, 7, 8, 9, 8, 9, 10, 2, 6, 4, 4, 10, 1, 10, 3, 6, 2, 9, 8, 6, 2, 7, 4, 2, 4, 1, 1, 8, 3, 7, 10, 7, 8, 4, 4, 1, 9, 3, 1, 1, 8, 3, 8, 2, 4, 6, 6, 8, 2, 9, 6, 10, 3, 9, 8, 2, 9, 9, 5, 8, 9, 8, 8, 3, 1, 9, 6, 7, 3, 2, 7, 1, 5, 10, 2, 1, 10, 3, 9, 6, 6, 10, 5, 5, 4, 2, 4, 4, 4, 3, 5, 1, 9, 5, 7, 4, 10, 1, 7, 10, 8, 6, 4, 5, 10, 3, 1, 7, 5, 10, 2, 7, 7, 8, 3, 3, 9, 3, 3, 6, 7, 5, 8, 7, 9, 9, 8, 9, 9, 3, 9, 5, 4, 10, 4, 3, 7, 9, 6, 9, 5, 2, 1, 5, 3, 1, 3, 5, 9, 4, 5, 1, 5, 4, 5, 8, 7, 3, 3, 9, 4, 8, 4, 9, 8, 10, 4, 6, 4, 1, 1, 3, 10, 1, 5, 4, 6, 4, 2, 10, 7, 7, 5, 4, 6, 3, 10, 4, 6, 2, 8, 1, 1, 7, 1, 3, 4, 8, 5, 6, 1, 1, 4, 1, 2, 4, 3, 4, 6, 9, 5, 5, 3, 1, 5, 10, 2, 3, 2, 7, 1, 8, 7, 10, 6, 7, 10, 7, 9, 10, 5, 5, 6, 5, 1, 6, 10, 4, 6, 8, 8, 6, 4, 10, 8, 2, 9, 9, 1, 5, 6, 4, 3, 4, 10, 6, 3, 5, 10, 7, 6, 5, 2, 8, 2, 10, 1, 10, 8, 6, 3, 8, 6, 2, 7, 4, 10, 9, 5, 3, 2, 5, 9, 9, 7, 2, 2, 8, 5, 6, 2, 1, 8, 8, 10, 5, 4, 6, 10, 6, 8, 4, 6, 10, 7, 9, 3, 4, 5, 1, 3, 9, 5, 10, 9, 10, 8, 1, 4, 10, 3, 9, 2, 6, 1, 3, 6, 10, 4, 1, 3, 3, 1, 6, 9, 3, 6, 8, 10, 6, 5, 8, 10, 2, 5, 10, 10, 4, 2, 8, 8, 1, 6, 9, 10, 7, 3, 7, 5, 5, 10, 4, 10, 2, 3, 6, 3, 3, 7, 10, 8, 6, 9, 9, 7, 10, 6, 4, 1, 9, 7, 9, 1, 5, 4, 10, 10, 7, 9, 10, 4, 3, 2, 2, 7, 5, 7, 5, 6, 8, 4, 6, 5, 2, 4, 3, 4, 5, 4, 4, 3, 4, 2, 9, 8, 6, 1, 6, 10, 6, 9, 3, 7, 5, 3, 7, 1, 10, 10, 8, 2, 6, 9, 1, 7, 6, 9, 1, 5, 1, 10, 2, 7, 7, 2, 1, 3, 8, 3, 10, 5, 4, 8, 4, 9, 2, 1, 7, 7, 1, 3, 8, 6, 4, 2, 2, 7, 1, 9, 10, 5, 5, 7, 1, 8, 7, 7, 4, 2, 6, 8, 7, 3, 8, 2, 2, 6, 6, 4, 5, 8, 10, 9, 1, 6, 4, 3, 8, 2, 7, 10, 9, 9, 10, 9, 5, 7, 5, 2, 10, 10, 8, 8, 4, 2, 7, 6, 9, 8, 3, 9, 3, 10, 5, 1, 6, 6, 3, 10, 1, 10, 2, 1, 6, 10, 2, 8, 9, 10, 9, 3, 7, 7, 2, 2, 1, 4, 8, 6, 8, 10, 6, 2, 5, 7, 4, 6, 10, 5, 5, 8, 3, 4, 1, 3, 4, 10, 2, 4, 7, 7, 7, 4, 3, 1, 9, 3, 7, 4, 3, 3, 8, 7, 5, 1, 10, 6, 6, 10, 6, 7, 1, 5, 1, 6, 1, 5, 1, 2, 2, 1, 1, 3, 1, 8, 4, 2, 8, 2, 10, 1, 3, 3, 10, 3, 4, 3, 2, 9, 8, 7, 1, 10, 8, 6, 6, 6, 1, 7, 4, 9, 2, 10, 9, 4, 8, 2, 9, 6, 6, 6, 1, 9, 9, 7, 5, 6, 10, 3, 8, 6, 6, 6, 5, 5, 7, 7, 5, 4, 4, 10, 8, 2, 1, 6, 8, 7, 2, 8, 3, 5, 1, 8, 6, 3, 5, 2, 7, 5, 3, 2, 8, 3, 10, 10, 6, 3, 9, 3, 6, 5, 1, 7, 6, 1, 3, 10, 5, 9, 2, 1, 10, 5, 2, 8, 3, 7, 7, 1, 5, 4, 3, 6, 3, 3, 7, 6, 10, 1, 2, 4, 10, 4, 6, 4, 10, 7, 4, 6, 8, 1, 4, 9, 3, 4, 8, 7, 1, 7, 6, 2, 3, 4, 1, 8, 8, 8, 5, 10, 7, 4, 5, 8, 10, 10, 3, 7, 5, 5, 4, 3, 1, 3, 8, 9, 2, 8, 5, 9, 9, 7, 1, 7, 3, 2, 10, 10, 6, 10, 8, 10, 7, 1, 3, 6, 10, 7, 2, 1, 3, 8, 7, 4, 5, 6, 9, 10, 5, 2, 3, 3, 7, 2, 3, 2, 1, 3, 1, 9, 4, 10, 4, 10, 4, 8, 1, 10, 5, 4, 9, 7, 7, 8, 7, 5, 5, 4, 9, 9, 9, 7, 10, 4, 5, 9, 2, 5, 10, 6, 9, 6, 9, 5, 1, 9, 9, 9, 2, 8, 9, 1, 1, 9, 9, 9, 5, 2, 1, 4, 8, 5, 10, 8, 9, 10, 2, 2, 1, 10, 8, 3, 6, 5, 7, 6, 9, 10, 6, 3, 9, 1, 7, 7, 2, 3, 8, 7, 2, 2, 10, 3, 8, 3, 2, 2, 1, 4, 4, 5, 4, 3, 4, 7, 6, 7, 2, 8, 4, 4, 3, 5, 7, 2, 2, 7, 9, 3, 3, 5, 10, 10, 5, 6, 9, 6, 7, 2, 7, 5, 2, 4, 4, 10, 5, 3, 9, 3, 7, 7, 1, 10, 6, 8, 1, 1, 10, 5, 9, 4, 7, 1, 2, 8, 5, 1, 7, 7, 2, 6, 3, 8, 6, 6, 5, 10, 3, 2, 9, 2, 7, 9, 4, 2, 6, 1, 6, 9, 4, 6, 5, 2, 9, 4, 9, 1, 4, 5, 2, 1, 1, 5, 8, 5, 6, 9, 2, 1, 9, 4, 6, 3, 2, 4, 5, 6, 8, 6, 7, 10, 8, 1, 9, 3, 6, 5, 10, 8, 6, 6, 8, 5, 5, 2, 4, 2, 8, 6, 10, 8, 2, 8, 10, 1, 10, 8, 3, 9, 2, 4, 7, 7, 6, 10, 2, 3, 10, 4, 7, 8, 4, 4, 2, 10, 2, 7, 3, 3, 6, 3, 3, 2, 10, 4, 2, 8, 2, 5, 6, 9, 8, 9, 7, 9, 3, 1, 2, 7, 1, 5, 4, 2, 10, 6, 9, 4, 10, 4, 5, 5, 6, 8, 9, 10, 8, 2, 9, 5, 4, 7, 9, 10, 6, 4, 5, 3, 10, 2, 3, 6, 6, 9, 5, 3, 2, 8, 4, 1, 6, 5, 5, 4, 6, 6, 10, 5, 5, 7, 5, 4, 7, 9, 3, 1, 9, 8, 6, 1, 9, 9, 8, 6, 7, 4, 1, 8, 8, 6, 4, 3, 3, 6, 2, 9, 2, 7, 1, 8, 9, 2, 7, 1, 6, 6, 10, 10, 8, 8, 2, 10, 9, 1, 8, 6, 7, 10, 7, 5, 9, 5, 7, 7, 1, 1, 8, 10, 5, 5, 1, 7, 4, 8, 9, 4, 10, 1, 3, 9, 3, 10, 2, 2, 4, 9, 2, 7, 4, 2, 7, 3, 2, 2, 5, 9, 5, 5, 4, 8, 5, 6, 6, 9, 2, 10, 1, 4, 1, 9, 10, 6, 3, 8, 10, 9, 10, 4, 10, 10, 9, 1, 3, 1, 7, 7, 3, 2, 6, 10, 10, 3, 6, 6, 2, 2, 4, 3, 9, 6, 1, 2, 6, 8, 1, 6, 2, 7, 5, 9, 1, 8, 4, 8, 6, 10, 1, 6, 9, 8, 3, 4, 3, 2, 7, 7, 10, 7, 2, 7, 5, 5, 5, 7, 4, 10, 8, 6, 4, 8, 5, 3, 3, 6, 3, 5, 2, 1, 6, 4, 1, 10, 4, 7, 4, 5, 2, 5, 1, 1, 9, 8, 2, 10, 8, 1, 5, 5, 8, 2, 1, 8, 4, 4, 2, 8, 1, 1, 3, 2, 7, 9, 10, 9, 3, 4, 7, 3, 8, 1, 1, 3, 9, 8, 6, 1, 5, 7, 2, 7, 5, 2, 8, 10, 7, 2, 5, 2, 4, 3, 6, 7, 6, 1, 10, 6, 5, 9, 4, 8, 8, 8, 10, 5, 6, 2, 6, 2, 4, 3, 4, 7, 6, 2, 10, 8, 4, 9, 1, 2, 5, 6, 8, 1, 8, 2, 5, 1, 3, 3, 1, 7, 1, 8, 5, 5, 7, 6, 7, 3, 9, 4, 6, 6, 10, 2, 8, 9, 4, 4, 6, 2, 4, 10, 4, 3, 3, 1, 5, 1, 2, 10, 3, 1, 7, 3, 7, 10, 2, 9, 9, 8, 9, 2, 1, 4, 8, 9, 1, 6, 4, 8, 10, 5, 1, 5, 3, 7, 9, 8, 5, 5, 6, 8, 1, 6, 3, 5, 6, 9, 7, 8, 8, 6, 9, 10, 4, 8, 8, 4, 2, 2, 7, 2, 6, 7, 9, 6, 1, 5, 3, 7, 10, 10, 1, 3, 7, 8, 6, 4, 8, 7, 9, 6, 3, 5, 2, 2, 10, 6, 4, 5, 4, 7, 9, 9, 4, 7, 2, 3, 7, 4, 9, 9, 9, 10, 2, 5, 2, 10, 2, 5, 1, 3, 9, 9, 8, 2, 4, 2, 8, 3, 2, 6, 2, 8, 10, 2, 1, 8, 10, 8, 6, 9, 7, 7, 9, 2, 9, 8, 3, 4, 3, 10, 4, 9, 10, 9, 5, 10, 8, 3, 1, 6, 8, 7, 7, 3, 3, 8, 1, 3, 6, 1, 1, 4, 7, 3, 8, 1, 1, 7, 3, 9, 1, 8, 8, 9, 10, 5, 4, 5, 4, 6, 8, 3, 7, 7, 4, 8, 2, 6, 5, 10, 8, 4, 8, 3, 5, 3, 4, 7, 7, 7, 9, 10, 8, 9, 7, 6, 3, 2, 6, 5, 10, 5, 7, 5, 9, 6, 3, 9, 5, 2, 9, 2, 3, 5, 8, 2, 1, 3, 4, 4, 5, 6, 4, 10, 7, 9, 1, 8, 6, 3, 3, 5, 9, 4, 6, 6, 9, 2, 5, 5, 2, 4, 8, 7, 6, 5, 4, 5, 6, 1, 8, 4, 2, 10, 3, 5, 9, 6, 8, 7, 10, 1, 9, 1, 10, 9, 10, 6, 9, 5, 1, 3, 2, 3, 3, 8, 1, 6, 5, 8, 9, 8, 1, 10, 6, 6, 6, 3, 6, 6, 1, 3, 2, 5, 5, 8, 6, 3, 5, 2, 2, 5, 2, 10, 3, 3, 6, 4, 2, 10, 10, 9, 4, 10, 2, 10, 8, 9, 1, 6, 6, 3, 7, 7, 2, 8, 2, 3, 5, 4, 10, 3, 9, 4, 10, 9, 1, 4, 2, 7, 7, 6, 8, 2, 6, 2, 2, 4, 3, 9, 6, 4, 9, 2, 6, 3, 5, 9, 7, 1, 7, 8, 4, 9, 9, 1, 3, 10, 9, 8, 5, 5, 5, 1, 2, 10, 9, 8, 10, 10, 6, 6, 1, 9, 3, 2, 8, 1, 2, 4, 10, 6, 4, 5, 3, 3, 10, 8, 10, 3, 1, 1, 9, 3, 8, 6, 5, 5, 10, 2, 5, 5, 2, 2, 10, 9, 7, 9, 1, 2, 4, 5, 3, 1, 9, 7, 3, 6, 1, 6, 9, 6, 5, 10, 9, 1, 2, 10, 9, 7, 7, 4, 1, 3, 2, 8, 4, 4, 9, 8, 3, 10, 9, 4, 5, 9, 6, 2, 10, 2, 2, 5, 8, 8, 10, 6, 1, 1, 4, 7, 2, 2, 2, 2, 7, 9, 4, 9, 2, 7, 1, 8, 6, 10, 8, 6, 5, 10, 7, 3, 7, 10, 4, 7, 9, 7, 10, 1, 3, 4, 4, 6, 10, 1, 5, 9, 6, 10, 8, 9, 9, 8, 6, 2, 7, 8, 5, 10, 1, 2, 9, 2, 9, 4, 2, 7, 3, 10, 4, 7, 9, 3, 3, 3, 7, 4, 7, 3, 2, 9, 4, 1, 9, 5, 9, 2, 8, 10, 8, 1, 6, 5, 10, 7, 5, 6, 8, 8, 10, 7, 3, 2, 7, 9, 7, 10, 7, 7, 2, 6, 3, 2, 6, 1, 8, 4, 9, 4, 8, 7, 8, 8, 8, 5, 9, 5, 1, 1, 3, 6, 9, 2, 7, 2, 8, 10, 6, 1, 4, 8, 8, 6, 5, 7, 3, 2, 3, 3, 9, 5, 9, 3, 4, 2, 10, 5, 10, 5, 5, 5, 7, 3, 10, 9, 4, 7, 5, 10, 1, 5, 3, 10, 9, 2, 6, 5, 8, 8, 4, 8, 6, 9, 7, 6, 4, 1, 10, 10, 9, 6, 8, 10, 1, 5, 5, 4, 4, 9, 2, 4, 3, 5, 2, 5, 6, 10, 6, 9, 3, 1, 7, 10, 5, 8, 8, 5, 8, 10, 2, 9, 2, 5, 1, 4, 4, 9, 7, 8, 10, 2, 2, 8, 9, 4, 1, 2, 5, 3, 3, 1, 8, 4, 7, 3, 4, 1, 1, 6, 7, 9, 9, 7, 10, 1, 2, 6, 9, 8, 5, 6, 5, 4, 9, 6, 8, 1, 5, 6, 4, 4, 3, 2, 3, 5, 7, 8, 5, 7, 2, 1, 1, 3, 4, 5, 7, 7, 4, 5, 2, 4, 6, 8, 9, 1, 10, 7, 10, 1, 9, 6, 1, 10, 2, 9, 7, 1, 6, 10, 7, 7, 1, 5, 6, 4, 7, 4, 10, 3, 7, 7, 6, 1, 7, 8, 3, 4, 5, 9, 2, 1, 7, 2, 4, 9, 10, 3, 6, 5, 8, 9, 1, 4, 1, 9, 6, 1, 2, 10, 7, 7, 4, 10, 6, 4, 1, 7, 7, 5, 6, 5, 1, 4, 3, 7, 5, 1, 8, 7, 5, 1, 1, 7, 5, 7, 1, 5, 10, 4, 3, 1, 5, 5, 7, 9, 4, 7, 3, 9, 6, 5, 10, 9, 10, 5, 4, 3, 3, 2, 10, 6, 6, 9, 2, 1, 4, 10, 3, 5, 3, 7, 7, 5, 10, 4, 9, 6, 8, 1, 1, 10, 2, 1, 5, 3, 3, 8, 9, 6, 6, 2, 5, 6, 10, 5, 3, 10, 9, 10, 5, 4, 7, 9, 9, 3, 5, 1, 8, 1, 4, 3, 6, 4, 5, 6, 8, 9, 4, 5, 6, 10, 8, 8, 1, 7, 1, 8, 5, 10, 4, 5, 4, 5, 5, 3, 4, 2, 5, 2, 5, 6, 2, 10, 4, 1, 5, 6, 3, 10, 5, 7, 1, 10, 8, 2, 8, 1, 3, 8, 9, 4, 7, 2, 10, 8, 8, 9, 4, 3, 6, 8, 5, 8, 3, 5, 3, 8, 9, 6, 7, 10, 3, 4, 9, 7, 5, 8, 4, 5, 6, 5, 3, 4, 1, 4, 4, 6, 9, 1, 10, 2, 4, 1, 4, 3, 2, 8, 6, 3, 7, 9, 1, 10, 6, 8, 1, 8, 6, 1, 6, 5, 4, 8, 10, 4, 10, 8, 9, 8, 1, 9, 9, 6, 6, 8, 4, 10, 10, 8, 6, 1, 9, 7, 10, 1, 1, 2, 5, 1, 10, 10, 2, 7, 2, 7, 2, 1, 6, 8, 1, 10, 6, 5, 2, 5, 7, 10, 5, 1, 3, 2, 5, 6, 10, 10, 5, 2, 2, 6, 4, 4, 8, 10, 9, 1, 8, 7, 3, 7, 6, 10, 4, 5, 2, 7, 8, 6, 8, 7, 10, 7, 4, 8, 9, 10, 10, 6, 1, 3, 2, 2, 7, 8, 2, 6, 5, 4, 10, 6, 7, 6, 5, 6, 5, 8, 10, 9, 2, 3, 1, 3, 8, 5, 10, 8, 2, 2, 5, 6, 8, 7, 4, 10, 10, 1, 1, 4, 1, 10, 6, 8, 10, 5, 2, 6, 4, 5, 4, 2, 1, 4, 1, 2, 5, 5, 6, 6, 7, 5, 7, 8, 1, 10, 8, 7, 2, 8, 9, 4, 2, 1, 7, 8, 3, 7, 8, 6, 2, 10, 1, 9, 1, 10, 7, 2, 8, 1, 4, 7, 8, 3, 5, 4, 1, 8, 8, 3, 7, 7, 2, 2, 2, 2, 8, 2, 4, 5, 7, 4, 2, 9, 10, 3, 4, 5, 1, 4, 9, 2, 3, 1, 6, 3, 6, 6, 8, 1, 2, 3, 2, 7, 2, 2, 9, 3, 5, 6, 9, 8, 7, 7, 6, 9, 1, 1, 9, 7, 3, 10, 5, 1, 7, 1, 10, 2, 2, 3, 5, 10, 7, 5, 8, 5, 2, 9, 4, 9, 1, 3, 2, 2, 9, 9, 5, 7, 10, 2, 6, 6, 5, 5, 6, 5, 1, 6, 6, 2, 7, 7, 7, 9, 4, 2, 1, 5, 2, 4, 3, 6, 4, 3, 1, 5, 6, 4, 10, 1, 6, 2, 9, 8, 6, 9, 3, 9, 3, 4, 4, 9, 3, 5, 7, 2, 10, 6, 4, 5, 10, 3, 7, 8, 1, 8, 2, 1, 8, 2, 5, 1, 1, 7, 6, 7, 6, 3, 1, 9, 5, 10, 3, 8, 10, 6, 1, 9, 5, 6, 6, 7, 3, 7, 1, 4, 1, 4, 5, 6, 2, 8, 2, 1, 5, 1, 3, 3, 8, 1, 2, 4, 6, 10, 2, 6, 7, 2, 9, 7, 1, 7, 5, 5, 1, 9, 9, 6, 7, 6, 9, 10, 6, 7, 3, 4, 10, 3, 10, 3, 10, 9, 5, 2, 4, 3, 4, 1, 10, 5, 7, 9, 4, 6, 3, 5, 9, 4, 7, 1, 6, 1, 8, 9, 6, 5, 7, 6, 10, 10, 9, 3, 3, 10, 5, 6, 6, 7, 1, 10, 1, 10, 4, 1, 7, 6, 6, 4, 8, 6, 5, 3, 6, 9, 4, 9, 6, 7, 2, 8, 10, 6, 6, 7, 4, 10, 5, 9, 2, 8, 5, 1, 10, 8, 9, 10, 8, 1, 6, 1, 5, 4, 9, 4, 2, 4, 4, 7, 1, 3, 6, 3, 1, 2, 3, 7, 6, 9, 6, 10, 6, 6, 1, 6, 2, 3, 5, 9, 6, 2, 9, 7, 4, 4, 2, 9, 5, 1, 10, 8, 2, 7, 10, 3, 10, 2, 8, 3, 2, 8, 9, 3, 2, 2, 8, 7, 10, 7, 5, 4, 2, 6, 5, 7, 2, 7, 8, 3, 2, 4, 9, 6, 2, 2, 9, 2, 10, 7, 10, 3, 3, 3, 9, 4, 4, 8, 1, 10, 1, 10, 4, 8, 4, 8, 10, 8, 1, 1, 4, 1, 1, 6, 5, 5, 10, 6, 9, 9, 8, 2, 3, 3, 6, 3, 1, 4, 5, 3, 4, 3, 4, 8, 1, 3, 2, 3, 5, 7, 2, 8, 10, 8, 1, 1, 8, 10, 2, 8, 2, 6, 6, 1, 4, 6, 8, 1, 10, 7, 7, 5, 5, 1, 9, 9, 9, 2, 6, 3, 9, 2, 7, 2, 1, 7, 8, 9, 5, 8, 9, 2, 10, 1, 3, 4, 9, 3, 4, 6, 8, 9, 1, 4, 1, 6, 1, 4, 4, 4, 4, 3, 8, 1, 6, 4, 3, 1, 5, 6, 5, 7, 3, 10, 9, 5, 4, 6, 10, 8, 7, 4, 8, 10, 10, 5, 1, 4, 9, 6, 8, 7, 7, 9, 8, 5, 10, 6, 5, 5, 6, 8, 3, 4, 6, 1, 2, 9, 10, 4, 6, 6, 10, 4, 4, 1, 7, 4, 2, 5, 10, 8, 7, 3, 6, 8, 6, 5, 9, 1, 1, 4, 1, 1, 2, 9, 8, 8, 3, 9, 10, 1, 3, 2, 2, 1, 2, 4, 3, 8, 2, 7, 10, 10, 3, 9, 4, 10, 10, 6, 6, 2, 6, 7, 7, 8, 8, 4, 2, 4, 8, 9, 10, 8, 2, 10, 8, 1, 6, 6, 6, 8, 7, 6, 2, 5, 4, 1, 3, 2, 5, 9, 8, 3, 10, 2, 6, 5, 3, 1, 9, 6, 7, 9, 9, 7, 4, 1, 3, 7, 9, 5, 6, 3, 5, 5, 9, 7, 5, 5, 10, 4, 10, 3, 5, 6, 5, 4, 9, 3, 10, 2, 1, 3, 3, 1, 7, 3, 6, 5, 3, 6, 6, 2, 2, 3, 6, 5, 2, 5, 8, 10, 9, 7, 8, 4, 5, 9, 2, 6, 1, 6, 2, 5, 1, 5, 4, 10, 10, 9, 1, 7, 3, 6, 7, 4, 7, 2, 4, 10, 3, 5, 3, 5, 8, 2, 4, 10, 9, 3, 8, 10, 2, 2, 9, 1, 9, 1, 9, 1, 8, 9, 2, 5, 10, 7, 5, 6, 8, 3, 6, 10, 5, 3, 3, 10, 2, 1, 6, 4, 7, 1, 9, 7, 7, 5, 10, 10, 7, 10, 5, 8, 3, 7, 3, 4, 2, 4, 6, 1, 6, 5, 8, 8, 1, 6, 3, 10, 10, 6, 2, 3, 5, 6, 1, 9, 10, 5, 8, 9, 7, 3, 4, 10, 10, 8, 10, 2, 5, 9, 10, 3, 8, 10, 2, 1, 6, 4, 4, 2, 4, 3, 8, 1, 2, 4, 3, 2, 5, 5, 2, 8, 10, 9, 4, 1, 3, 3, 9, 5, 3, 8, 2, 3, 4, 5, 10, 4, 2, 1, 7, 5, 5, 7, 5, 7, 7, 8, 4, 8, 1, 4, 1, 3, 5, 1, 3, 3, 6, 9, 10, 6, 3, 7, 3, 5, 3, 9, 9, 5, 4, 1, 5, 1, 1, 4, 9, 5, 3, 3, 10, 8, 2, 4, 6, 6, 3, 3, 10, 6, 9, 7, 6, 4, 7, 8, 9, 6, 3, 2, 4, 7, 3, 9, 6, 8, 1, 8, 6, 9, 1, 1, 5, 2, 4, 2, 3, 2, 7, 1, 7, 3, 5, 2, 2, 1, 9, 10, 8, 8, 6, 9, 2, 9, 1, 9, 5, 4, 9, 8, 1, 10, 6, 10, 8, 8, 3, 4, 6, 1, 3, 10, 10, 5, 7, 2, 6, 4, 1, 6, 8, 2, 8, 10, 5, 3, 7, 1, 4, 6, 10, 9, 7, 2, 10, 2, 7, 9, 3, 7, 9, 7, 9, 3, 3, 7, 6, 9, 1, 9, 1, 9, 1, 9, 8, 7, 6, 9, 6, 4, 4, 10, 4, 4, 4, 9, 5, 10, 9, 1, 10, 10, 4, 6, 9, 7, 7, 8, 2, 1, 3, 1, 10, 3, 9, 3, 6, 7, 2, 10, 1, 7, 6, 9, 5, 4, 8, 5, 9, 2, 4, 4, 7, 10, 4, 4, 4, 9, 2, 8, 6, 3, 9, 10, 7, 7, 9, 2, 1, 4, 3, 2, 10, 2, 1, 2, 7, 1, 2, 5, 1, 9, 1, 9, 3, 5, 6, 7, 8, 7, 2, 7, 3, 1, 6, 2, 9, 2, 9, 1, 10, 1, 7, 5, 1, 7, 3, 8, 4, 8, 2, 10, 4, 6, 7, 5, 3, 6, 1, 6, 4, 10, 5, 1, 10, 5, 4, 3, 3, 6, 1, 8, 9, 6, 9, 7, 5, 1, 4, 4, 3, 9, 2, 9, 4, 2, 8, 6, 9, 4, 1, 1, 9, 1, 6, 5, 8, 2, 10, 10, 1, 10, 9, 8, 9, 4, 9, 2, 3, 6, 6, 4, 8, 1, 10, 4, 1, 2, 4, 5, 3, 7, 10, 4, 8, 8, 9, 10, 3, 9, 2, 4, 6, 2, 7, 3, 7, 7, 10, 7, 5, 1, 4, 6, 2, 4, 5, 10, 10, 2, 4, 4, 4, 5, 4, 7, 6, 8, 2, 1, 7, 10, 9, 1, 2, 2, 1, 8, 1, 8, 3, 9, 8, 7, 10, 2, 10, 1, 10, 7, 1, 3, 8, 1, 3, 2, 9, 1, 9, 2, 1, 7, 5, 5, 2, 1, 1, 5, 9, 4, 10, 10, 1, 9, 8, 3, 9, 6, 8, 6, 8, 1, 1, 5, 10, 10, 8, 10, 8, 8, 1, 10, 9, 10, 5, 7, 10, 9, 5, 2, 10, 8, 10, 6, 9, 1, 5, 1, 5, 4, 4, 10, 6, 7, 7, 1, 10, 2, 1, 8, 8, 1, 2, 8, 10, 3, 5, 1, 4, 3, 2, 5, 9, 5, 9, 10, 7, 9, 10, 2, 10, 10, 10, 2, 10, 5, 1, 7, 7, 5, 4, 3, 3, 8, 1, 4, 6, 6, 8, 9, 1, 7, 4, 6, 7, 1, 9, 2, 7, 10, 9, 4, 7, 5, 2, 8, 10, 5, 3, 4, 7, 8, 6, 10, 9, 10, 7, 7, 9, 9, 1, 10, 6, 2, 2, 2, 3, 5, 7, 8, 4, 5, 2, 4, 1, 8, 6, 9, 6, 1, 2, 1, 7, 1, 2, 2, 9, 1, 6, 2, 7, 8, 3, 7, 7, 6, 2, 5, 3, 6, 10, 2, 5, 9, 6, 7, 7, 6, 9, 9, 9, 6, 5, 1, 8, 4, 4, 3, 5, 2, 3, 5, 3, 3, 4, 9, 4, 5, 5, 3, 7, 1, 4, 6, 4, 3, 2, 4, 5, 4, 6, 10, 5, 4, 7, 4, 9, 4, 4, 6, 1, 5, 4, 3, 4, 5, 5, 2, 10, 5, 1, 7, 6, 4, 3, 9, 2, 7, 1, 9, 10, 3, 9, 9, 7, 9, 7, 6, 1, 4, 2, 1, 3, 6, 3, 8, 9, 5, 7, 7, 5, 3, 7, 3, 2, 6, 6, 5, 8, 7, 2, 1, 5, 8, 2, 1, 6, 5, 2, 4, 5, 9, 9, 3, 5, 10, 8, 7, 7, 3, 7, 2, 6, 7, 3, 3, 7, 2, 4, 1, 1, 6, 6, 9, 7, 4, 7, 4, 7, 6, 5, 9, 8, 6, 7, 10, 10, 1, 4, 2, 8, 4, 5, 1, 7, 6, 8, 4, 1, 9, 10, 1, 8, 4, 7, 7, 1, 1, 4, 7, 1, 1, 9, 4, 2, 6, 8, 3, 8, 3, 2, 10, 4, 2, 9, 3, 9, 6, 1, 8, 7, 9, 8, 4, 1, 5, 7, 1, 3, 4, 4, 3, 4, 6, 2, 6, 7, 2, 1, 6, 7, 10, 5, 1, 9, 7, 8, 4, 1, 4, 8, 7, 6, 9, 9, 6, 1, 10, 1, 3, 10, 5, 4, 4, 3, 6, 9, 10, 3, 10, 5, 3, 6, 1, 9, 7, 6, 8, 9, 6, 8, 9, 3, 5, 9, 5, 6, 9, 9, 5, 4, 7, 9, 2, 10, 8, 2, 10, 7, 5, 6, 9, 7, 10, 5, 8, 10, 9, 7, 3, 8, 1, 8, 4, 4, 1, 8, 4, 2, 5, 10, 3, 3, 9, 7, 7, 10, 10, 9, 2, 3, 3, 9, 9, 9, 5, 8, 1, 9, 2, 5, 4, 10, 7, 4, 6, 3, 2, 10, 6, 1, 4, 1, 1, 9, 5, 2, 10, 7, 3, 3, 9, 9, 6, 10, 8, 2, 7, 1, 6, 1, 3, 3, 8, 9, 6, 4, 8, 10, 5, 9, 6, 8, 4, 9, 9, 2, 5, 3, 7, 8, 6, 3, 3, 5, 6, 7, 10, 3, 1, 5, 3, 10, 8, 9, 4, 6, 5, 6, 10, 6, 5, 1, 2, 3, 5, 7, 4, 5, 10, 4, 10, 9, 7, 2, 8, 4, 4, 1, 4, 4, 5, 5, 2, 8, 5, 1, 6, 4, 6, 6, 4, 5, 6, 1, 5, 4, 6, 2, 3, 8, 5, 2, 4, 8, 2, 8, 5, 10, 1, 1, 6, 2, 4, 9, 9, 9, 10, 7, 4, 6, 4, 8, 9, 2, 10, 3, 1, 6, 8, 7, 4, 1, 9, 5, 5, 8, 5, 4, 7, 10, 4, 10, 3, 7, 9, 6, 10, 2, 4, 6, 1, 4, 1, 10, 3, 4, 5, 4, 5, 5, 6, 10, 1, 8, 1, 9, 2, 2, 10, 6, 1, 9, 3, 7, 3, 4, 6, 7, 6, 7, 4, 9, 6, 9, 8, 6, 9, 10, 7, 6, 1, 4, 5, 10, 6, 10, 1, 8, 9, 2, 8, 4, 4, 8, 1, 10, 6, 1, 8, 8, 2, 3, 8, 2, 4, 10, 3, 1, 6, 9, 6, 8, 9, 8, 2, 9, 1, 9, 7, 1, 9, 5, 1, 10, 6, 6, 10, 6, 5, 1, 5, 4, 1, 5, 9, 4, 2, 4, 10, 3, 9, 8, 3, 10, 10, 10, 5, 3, 7, 1, 8, 10, 4, 7, 6, 4, 1, 3, 6, 6, 8, 10, 4, 10, 9, 8, 1, 4, 6, 7, 10, 4, 9, 7, 3, 2, 5, 2, 8, 4, 6, 1, 3, 1, 4, 8, 9, 8, 1, 8, 6, 1, 5, 9, 6, 7, 3, 7, 8, 3, 5, 9, 2, 10, 8, 4, 5, 8, 1, 8, 1, 3, 5, 3, 10, 10, 9, 4, 5, 1, 4, 9, 6, 8, 3, 2, 10, 7, 2, 5, 4, 8, 4, 3, 3, 5, 7, 1, 8, 2, 8, 1, 2, 1, 10, 6, 10, 5, 1, 1, 7, 3, 8, 10, 9, 4, 4, 9, 3, 9, 8, 2, 8, 7, 6, 5, 7, 6, 8, 4, 7, 8, 1, 8, 3, 6, 7, 3, 10, 3, 6, 10, 8, 9, 9, 8, 2, 10, 4, 4, 1, 6, 1, 3, 2, 4, 9, 6, 8, 5, 3, 9, 2, 8, 3, 10, 3, 9, 3, 2, 2, 8, 9, 7, 10, 1, 8, 4, 6, 6, 3, 6, 5, 8, 3, 5, 5, 2, 10, 10, 1, 5, 6, 4, 10, 1, 8, 4, 1, 6, 10, 8, 7, 3, 1, 5, 10, 1, 2, 10, 5, 4, 6, 10, 4, 7, 3, 5, 1, 6, 4, 7, 10, 7, 5, 8, 4, 7, 2, 8, 7, 4, 10, 5, 8, 8, 2, 8, 5, 2, 4, 2, 9, 10, 9, 9, 9, 6, 10, 3, 1, 8, 4, 5, 7, 9, 9, 4, 10, 2, 4, 7, 3, 1, 1, 10, 5, 3, 4, 7, 6, 7, 2, 1, 7, 5, 7, 8, 5, 7, 5, 6, 9, 9, 2, 2, 1, 10, 2, 2, 7, 8, 3, 9, 2, 2, 9, 1, 2, 2, 1, 3, 4, 7, 4, 7, 5, 9, 2, 1, 4, 10, 3, 7, 1, 9, 6, 8, 3, 3, 7, 2, 6, 2, 6, 2, 1, 7, 2, 1, 2, 2, 6, 1, 10, 10, 7, 9, 10, 6, 9, 2, 2, 3, 9, 5, 9, 9, 5, 6, 4, 2, 3, 8, 7, 4, 1, 10, 10, 4, 8, 5, 10, 6, 10, 9, 2, 2, 10, 9, 10, 1, 3, 8, 8, 3, 1, 2, 9, 9, 10, 8, 1, 8, 1, 4, 1, 2, 1, 4, 6, 9, 1, 9, 6, 10, 5, 2, 10, 3, 7, 4, 7, 10, 3, 1, 2, 4, 7, 9, 1, 3, 9, 4, 10, 2, 2, 6, 2, 7, 3, 9, 4, 9, 9, 4, 6, 9, 10, 5, 6, 2, 6, 6, 4, 1, 7, 4, 3, 4, 3, 5, 4, 2, 3, 9, 6, 2, 6, 3, 6, 8, 6, 7, 4, 4, 9, 5, 4, 2, 3, 1, 5, 2, 8, 8, 5, 3, 9, 9, 9, 3, 7, 9, 10, 1, 4, 3, 7, 2, 2, 7, 2, 6, 4, 8, 7, 10, 4, 10, 10, 7, 7, 8, 4, 8, 3, 1, 9, 1, 7, 4, 7, 4, 5, 10, 9, 7, 2, 6, 1, 4, 1, 2, 8, 3, 8, 4, 8, 9, 3, 5, 9, 7, 5, 8, 7, 6, 8, 6, 5, 4, 5, 4, 9, 2, 5, 10, 10, 10, 4, 7, 4, 5, 8, 2, 8, 7, 1, 5, 8, 7, 8, 1, 8, 2, 9, 6, 10, 8, 8, 7, 2, 1, 4, 4, 9, 7, 10, 4, 10, 8, 7, 8, 6, 9, 4, 3, 4, 2, 7, 7, 6, 10, 4, 6, 4, 8, 10, 5, 6, 7, 7, 4, 10, 8, 3, 5, 5, 1, 6, 4, 3, 10, 8, 5, 5, 10, 10, 9, 5, 9, 2, 10, 7, 9, 3, 10, 9, 1, 1, 8, 10, 4, 2, 7, 4, 5, 2, 9, 8, 9, 9, 3, 4, 3, 7, 1, 8, 6, 8, 6, 7, 3, 1, 7, 2, 7, 2, 7, 4, 3, 1, 9, 2, 8, 3, 4, 1, 9, 2, 3, 7, 2, 8, 4, 1, 6, 1, 10, 3, 10, 4, 5, 6, 7, 9, 8, 7, 4, 1, 3, 5, 6, 6, 2, 1, 10, 3, 1, 10, 10, 7, 2, 2, 7, 8, 7, 6, 2, 1, 1, 10, 4, 3, 3, 9, 4, 10, 10, 8, 1, 2, 7, 7, 4, 2, 1, 5, 8, 5, 8, 4, 8, 6, 5, 7, 2, 1, 9, 2, 8, 6, 5, 4, 10, 6, 5, 8, 2, 3, 6, 10, 3, 8, 2, 6, 6, 3, 8, 2, 7, 10, 10, 10, 8, 1, 10, 10, 2, 3, 2, 2, 3, 9, 2, 10, 9, 3, 10, 4, 9, 2, 8, 3, 9, 8, 8, 8, 3, 4, 2, 6, 6, 2, 9, 7, 3, 2, 3, 8, 4, 8, 3, 4, 2, 2, 3, 4, 2, 7, 2, 4, 6, 10, 6, 8, 10, 8, 1, 5, 7, 6, 6, 7, 10, 7, 1, 10, 9, 10, 1, 2, 8, 9, 5, 2, 1, 8, 7, 6, 1, 3, 8, 6, 10, 2, 2, 2, 10, 4, 4, 5, 4, 10, 2, 2, 8, 2, 6, 8, 8, 5, 4, 8, 7, 6, 5, 9, 5, 1, 2, 6, 5, 3, 4, 1, 8, 9, 9, 6, 2, 2, 5, 7, 1, 8, 4, 6, 3, 4, 8, 7, 4, 2, 1, 1, 4, 8, 2, 1, 3, 6, 7, 2, 6, 2, 7, 5, 8, 5, 3, 3, 7, 10, 4, 8, 10, 4, 8, 8, 4, 7, 9, 6, 9, 4, 4, 10, 3, 2, 5, 6, 9, 5, 4, 2, 4, 8, 7, 5, 1, 10, 9, 2, 9, 2, 10, 2, 1, 4, 9, 5, 7, 5, 10, 1, 1, 2, 9, 5, 2, 4, 5, 10, 3, 9, 1, 5, 3, 2, 7, 6, 7, 5, 8, 2, 1, 6, 8, 4, 3, 1, 8, 10, 6, 9, 10, 3, 10, 4, 4, 2, 4, 3, 8, 6, 10, 10, 7, 2, 8, 7, 6, 4, 4, 3, 4, 8, 7, 1, 1, 7, 5, 9, 5, 9, 2, 9, 3, 4, 3, 9, 10, 8, 8, 6, 1, 7, 1, 2, 5, 1, 4, 9, 2, 7, 6, 9, 4, 7, 8, 7, 1, 1, 5, 2, 8, 7, 1, 10, 9, 10, 4, 4, 9, 4, 9, 6, 5, 3, 6, 4, 5, 5, 6, 2, 9, 8, 8, 2, 8, 10, 2, 3, 3, 10, 8, 6, 10, 1, 9, 6, 2, 1, 4, 6, 8, 6, 1, 6, 5, 2, 1, 2, 2, 1, 6, 5, 6, 1, 9, 8, 4, 2, 6, 7, 6, 5, 10, 2, 3, 5, 8, 2, 6, 2, 9, 10, 8, 1, 4, 4, 6, 10, 2, 3, 5, 2, 9, 6, 10, 6, 6, 2, 7, 6, 7, 1, 9, 8, 7, 6, 8, 10, 9, 10, 9, 10, 4, 4, 5, 7, 6, 4, 9, 3, 8, 9, 2, 6, 4, 4, 5, 1, 3, 7, 3, 2, 5, 8, 4, 10, 4, 7, 2, 1, 8, 2, 8, 9, 3, 4, 7, 8, 2, 7, 8, 2, 1, 3, 1, 10, 10, 8, 4, 2, 5, 10, 8, 6, 6, 9, 3, 10, 3, 1, 8, 8, 8, 10, 10, 3, 6, 10, 3, 9, 10, 2, 4, 8, 8, 7, 10, 5, 8, 3, 9, 1, 7, 2, 2, 4, 5, 1, 4, 10, 4, 1, 2, 8, 1, 9, 5, 4, 1, 8, 10, 2, 9, 3, 3, 5, 5, 4, 7, 2, 6, 4, 5, 10, 4, 4, 10, 6, 9, 6, 2, 6, 10, 7, 4, 1, 9, 1, 5, 7, 10, 2, 10, 9, 10, 1, 3, 5, 8, 5, 3, 7, 10, 4, 6, 5, 5, 8, 2, 4, 7, 3, 10, 5, 8, 5, 10, 3, 2, 3, 7, 5, 10, 6, 9, 6, 3, 1, 5, 4, 1, 6, 4, 1, 7, 9, 3, 1, 7, 4, 3, 2, 8, 10, 10, 9, 8, 4, 3, 5, 6, 7, 3, 1, 9, 5, 3, 10, 10, 8, 9, 5, 10, 8, 2, 7, 1, 9, 9, 10, 8, 9, 8, 6, 4, 1, 4, 10, 6, 7, 10, 8, 9, 5, 5, 3, 3, 4, 8, 3, 8, 6, 9, 10, 5, 4, 1, 1, 2, 3, 1, 7, 10, 7, 3, 7, 6, 7, 5, 2, 1, 5, 6, 9, 7, 2, 6, 8, 8, 2, 3, 8, 10, 6, 2, 3, 1, 10, 10, 7, 6, 5, 1, 1, 8, 7, 10, 10, 9, 5, 2, 10, 6, 8, 8, 7, 9, 5, 10, 1, 2, 4, 9, 10, 10, 5, 2, 9, 3, 2, 3, 7, 6, 6, 3, 8, 10, 8, 10, 10, 9, 5, 10, 8, 1, 6, 5, 9, 6, 2, 3, 5, 7, 5, 8, 3, 1, 2, 10, 1, 8, 3, 6, 7, 4, 6, 8, 8, 4, 9, 9, 9, 6, 5, 5, 8, 8, 5, 3, 2, 1, 4, 7, 8, 3, 10, 4, 5, 7, 4, 5, 5, 7, 4, 3, 4, 4, 10, 5, 5, 1, 10, 5, 3, 10, 9, 9, 4, 9, 6, 5, 6, 3, 4, 10, 5, 5, 10, 3, 8, 1, 9, 9, 8, 9, 3, 1, 8, 6, 3, 6, 3, 2, 4, 6, 3, 9, 8, 10, 3, 5, 6, 8, 5, 4, 2, 6, 1, 7, 7, 6, 2, 6, 7, 4, 3, 1, 5, 7, 9, 10, 5, 2, 1, 5, 3, 1, 10, 1, 6, 6, 2, 10, 8, 8, 3, 1, 10, 10, 7, 1, 4, 8, 9, 1, 10, 2, 2, 2, 6, 8, 2, 6, 6, 8, 10, 6, 4, 6, 1, 7, 7, 10, 1, 10, 6, 8, 4, 8, 1, 10, 6, 8, 7, 1, 5, 9, 1, 3, 1, 4, 4, 9, 5, 4, 8, 10, 3, 8, 6, 2, 1, 9, 10, 2, 7, 2, 9, 10, 4, 10, 6, 10, 6, 1, 1, 1, 2, 3, 5, 3, 10, 4, 2, 1, 10, 1, 3, 2, 8, 7, 6, 8, 9, 3, 2, 7, 8, 9, 8, 4, 10, 5, 4, 3, 2, 1, 3, 7, 2, 6, 7, 7, 5, 2, 10, 7, 5, 9, 9, 6, 3, 4, 2, 8, 6, 1, 7, 5, 4, 3, 4, 5, 3, 5, 9, 8, 4, 10, 8, 2, 4, 6, 7, 6, 1, 10, 6, 5, 1, 7, 4, 10, 6, 6, 5, 4, 1, 10, 7, 9, 5, 8, 8, 8, 3, 6, 2, 6, 3, 6, 5, 5, 3, 3, 8, 2, 6, 9, 1, 1, 5, 6, 9, 7, 6, 10, 5, 8, 9, 4, 1, 1, 7, 8, 5, 7, 5, 8, 10, 6, 3, 1, 1, 10, 5, 10, 7, 2, 3, 9, 4, 2, 8, 10, 1, 4, 2, 9, 5, 9, 6, 2, 1, 6, 6, 7, 9, 5, 1, 1, 7, 1, 6, 6, 4, 3, 5, 8, 5, 9, 9, 4, 3, 1, 5, 3, 8, 7, 5, 9, 10, 2, 6, 1, 3, 8, 7, 7, 6, 4, 7, 4, 2, 6, 6, 10, 9, 2, 6, 7, 10, 5, 10, 4, 7, 6, 4, 7, 6, 6, 1, 5, 6, 4, 8, 1, 2, 2, 10, 8, 2, 10, 9, 10, 3, 7, 2, 4, 6, 9, 6, 7, 4, 9, 4, 10, 3, 2, 3, 4, 9, 8, 8, 5, 3, 5, 8, 1, 4, 2, 6, 7, 4, 9, 5, 2, 1, 4, 6, 8, 8, 6, 8, 2, 9, 1, 7, 6, 1, 6, 1, 8, 4, 4, 1, 9, 3, 6, 1, 3, 3, 2, 6, 7, 7, 1, 6, 7, 9, 4, 9, 10, 8, 1, 2, 10, 1, 5, 9, 8, 9, 9, 5, 3, 4, 7, 4, 4, 5, 7, 10, 9, 5, 2, 9, 8, 10, 9, 4, 9, 1, 3, 9, 4, 9, 8, 8, 9, 6, 8, 5, 5, 3, 5, 10, 2, 7, 10, 6, 7, 2, 3, 5, 5, 4, 4, 10, 3, 1, 9, 5, 5, 5, 5, 8, 2, 2, 9, 8, 10, 2, 10, 2, 5, 9, 5, 3, 9, 2, 3, 3, 7, 7, 8, 7, 9, 2, 9, 9, 6, 10, 1, 5, 9, 7, 9, 8, 6, 5, 1, 4, 8, 4, 9, 9, 4, 1, 7, 3, 10, 10, 1, 9, 6, 3, 8, 3, 3, 10, 3, 10, 8, 6, 10, 10, 7, 10, 2, 8, 4, 1, 3, 10, 2, 6, 6, 3, 10, 9, 2, 5, 2, 7, 10, 7, 3, 10, 8, 1, 3, 5, 4, 2, 10, 7, 4, 5, 9, 7, 9, 8, 3, 4, 9, 4, 9, 8, 5, 10, 2, 9, 10, 8, 6, 8, 9, 5, 6, 8, 5, 1, 10, 7, 8, 7, 2, 3, 6, 5, 5, 2, 7, 4, 4, 3, 7, 7, 5, 1, 9, 3, 1, 8, 1, 9, 9, 1, 6, 7, 3, 2, 2, 7, 4, 4, 9, 7, 2, 8, 10, 5, 10, 8, 3, 8, 9, 10, 1, 7, 5, 4, 4, 5, 3, 7, 3, 8, 5, 6, 4, 6, 9, 4, 9, 4, 1, 10, 4, 8, 6, 10, 9, 5, 10, 1, 4, 6, 8, 5, 1, 1, 4, 6, 3, 7, 3, 6, 2, 2, 9, 8, 8, 5, 6, 2, 8, 3, 9, 10, 8, 9, 4, 2, 10, 9, 10, 6, 7, 4, 4, 1, 6, 3, 6, 1, 10, 7, 4, 8, 9, 8, 5, 10, 7, 7, 8, 9, 1, 9, 10, 7, 2, 9, 4, 10, 5, 3, 1, 3, 7, 9, 3, 4, 4, 7, 6, 7, 5, 8, 7, 9, 10, 2, 9, 4, 3, 8, 10, 5, 9, 8, 2, 7, 7, 1, 9, 10, 1, 7, 9, 2, 2, 5, 6, 8, 10, 10, 8, 9, 10, 10, 4, 4, 8, 2, 7, 3, 9, 3, 9, 1, 4, 4, 6, 3, 9, 4, 1, 3, 7, 6, 2, 5, 2, 1, 9, 4, 1, 10, 6, 3, 7, 7, 9, 7, 3, 7, 8, 8, 9, 6, 5, 1, 10, 6, 3, 4, 3, 8, 5, 3, 9, 3, 10, 10, 10, 5, 2, 6, 7, 7, 4, 6, 5, 9, 5, 6, 10, 3, 9, 9, 8, 7, 1, 4, 3, 7, 8, 4, 2, 2, 1, 4, 7, 10, 10, 4, 3, 5, 5, 2, 9, 9, 3, 9, 8, 8, 10, 4, 8, 9, 1, 8, 4, 6, 5, 2, 3, 9, 1, 8, 10, 7, 9, 6, 6, 4, 3, 6, 9, 5, 6, 10, 9, 7, 1, 10, 2, 2, 2, 9, 9, 3, 2, 10, 1, 9, 7, 1, 6, 4, 8, 6, 1, 8, 9, 3, 2, 7, 1, 4, 3, 10, 3, 2, 4, 4, 6, 2, 7, 2, 2, 4, 5, 1, 9, 10, 7, 1, 5, 10, 9, 10, 1, 4, 3, 5, 4, 8, 2, 3, 9, 8, 8, 6, 9, 7, 4, 3, 2, 2, 2, 5, 7, 9, 1, 7, 2, 10, 3, 8, 8, 1, 8, 2, 3, 2, 10, 10, 10, 4, 9, 6, 3, 2, 10, 7, 10, 2, 5, 10, 4, 6, 6, 3, 10, 5, 10, 4, 5, 2, 5, 8, 8, 9, 5, 3, 2, 6, 3, 7, 7, 9, 5, 9, 8, 1, 5, 2, 4, 8, 6, 6, 7, 3, 10, 7, 8, 1, 9, 1, 7, 4, 6, 6, 1, 6, 5, 6, 9, 5, 4, 2, 4, 4, 9, 5, 7, 8, 1, 8, 3, 1, 5, 8, 8, 5, 5, 4, 1, 8, 1, 9, 8, 10, 10, 8, 6, 2, 9, 10, 5, 4, 4, 8, 3, 9, 1, 4, 4, 2, 8, 7, 4, 1, 5, 9, 5, 5, 7, 6, 3, 10, 3, 10, 7, 2, 1, 1, 2, 1, 7, 8, 8, 4, 4, 2, 5, 3, 1, 6, 7, 6, 6, 8, 2, 9, 7, 5, 3, 1, 7, 5, 5, 4, 8, 6, 7, 1, 4, 2, 4, 2, 9, 9, 9, 2, 4, 6, 1, 10, 1, 3, 7, 7, 7, 3, 9, 9, 10, 5, 3, 7, 2, 8, 6, 2, 9, 3, 1, 4, 4, 9, 9, 2, 8, 1, 4, 6, 7, 7, 4, 10, 8, 7, 4, 2, 4, 3, 3, 8, 5, 7, 2, 4, 7, 8, 10, 8, 2, 7, 4, 4, 6, 4, 10, 6, 2, 2, 4, 3, 7, 9, 2, 7, 4, 3, 3, 7, 5, 5, 5, 5, 10, 8, 8, 7, 1, 10, 9, 7, 6, 3, 3, 2, 2, 4, 5, 7, 8, 4, 6, 7, 1, 2, 6, 10, 10, 3, 6, 10, 8, 8, 3, 10, 4, 4, 3, 7, 4, 7, 7, 10, 5, 1, 10, 7, 5, 1, 7, 10, 4, 2, 8, 8, 10, 8, 3, 3, 10, 7, 6, 3, 3, 4, 2, 1, 6, 8, 3, 7, 9, 6, 7, 10, 2, 4, 1, 9, 6, 10, 1, 1, 6, 8, 8, 10, 2, 10, 9, 7, 4, 3, 8, 2, 4, 1, 1, 10, 7, 8, 1, 9, 1, 10, 4, 9, 10, 7, 2, 10, 9, 9, 7, 9, 2, 9, 5, 8, 6, 1, 5, 5, 9, 4, 8, 2, 10, 3, 4, 4, 6, 10, 1, 3, 4, 4, 8, 3, 3, 3, 7, 6, 7, 5, 7, 4, 1, 7, 1, 7, 4, 7, 5, 10, 7, 8, 8, 6, 7, 4, 6, 7, 8, 3, 8, 6, 7, 9, 1, 2, 9, 2, 2, 8, 5, 1, 5, 2, 4, 10, 8, 3, 4, 6, 3, 7, 2, 7, 4, 3, 5, 4, 2, 6, 3, 8, 10, 6, 6, 2, 3, 10, 3, 4, 5, 6, 4, 2, 3, 4, 1, 10, 2, 8, 4, 9, 5, 5, 6, 3, 6, 1, 8, 5, 3, 3, 4, 8, 6, 1, 5, 7, 8, 5, 2, 3, 4, 7, 1, 7, 10, 8, 9, 7, 4, 6, 4, 2, 9, 5, 6, 8, 2, 8, 9, 9, 1, 5, 5, 9, 2, 6, 1, 9, 8, 4, 4, 1, 1, 2, 10, 2, 1, 7, 7, 7, 9, 5, 9, 6, 8, 8, 6, 1, 3, 3, 10, 5, 9, 3, 9, 9, 9, 8, 1, 3, 2, 10, 4, 5, 9, 7, 6, 6, 8, 5, 6, 8, 5, 9, 4, 10, 7, 6, 2, 4, 5, 7, 8, 6, 7, 3, 6, 7, 8, 5, 6, 5, 1, 4, 9, 8, 3, 2, 9, 6, 6, 6, 4, 10, 9, 2, 1, 10, 3, 8, 4, 1, 8, 5, 7, 2, 1, 9, 8, 5, 5, 4, 1, 3, 9, 8, 7, 8, 9, 5, 4, 1, 3, 3, 3, 6, 2, 7, 6, 5, 10, 2, 6, 4, 9, 2, 10, 3, 10, 2, 10, 3, 10, 5, 9, 1, 3, 4, 10, 5, 6, 2, 3, 7, 2, 2, 10, 3, 2, 2, 3, 4, 3, 8, 4, 1, 4, 4, 6, 10, 2, 3, 8, 7, 5, 10, 3, 7, 4, 10, 4, 9, 5, 4, 2, 1, 6, 9, 3, 7, 9, 4, 3, 10, 2, 5, 7, 5, 1, 10, 8, 5, 10, 10, 10, 1, 5, 5, 9, 8, 9, 4, 4, 5, 9, 3, 8, 4, 6, 10, 3, 10, 8, 7, 7, 2, 3, 7, 6, 5, 9, 10, 4, 9, 10, 5, 3, 2, 3, 7, 3, 8, 7, 1, 1, 1, 8, 1, 4, 6, 8, 1, 2, 9, 7, 6, 4, 9, 7, 2, 7, 7, 10, 2, 1, 9, 5, 3, 9, 3, 7, 7, 10, 1, 4, 8, 6, 8, 5, 3, 1, 6, 6, 1, 7, 1, 10, 9, 1, 1, 3, 10, 2, 6, 8, 6, 5, 3, 4, 6, 4, 1, 7, 3, 3, 7, 2, 4, 6, 8, 1, 9, 6, 4, 3, 9, 10, 4, 6, 5, 2, 6, 6, 2, 1, 1, 3, 5, 2, 6, 6, 3, 10, 3, 9, 3, 6, 8, 5, 4, 9, 10, 2, 5, 3, 10, 1, 5, 8, 10, 3, 3, 6, 8, 3, 4, 3, 9, 2, 9, 4, 10, 4, 9, 8, 9, 5, 1, 5, 4, 2, 7, 4, 3, 2, 9, 8, 1, 7, 7, 7, 1, 6, 3, 9, 10, 5, 6, 8, 2, 9, 10, 1, 6, 7, 3, 2, 3, 8, 10, 2, 6, 8, 7, 9, 8, 3, 1, 9, 1, 2, 7, 3, 1, 4, 3, 9, 6, 6, 6, 10, 2, 6, 6, 9, 3, 8, 10, 9, 3, 10, 3, 2, 5, 1, 3, 5, 10, 4, 4, 5, 4, 8, 6, 9, 2, 9, 2, 9, 6, 4, 10, 4, 6, 4, 3, 5, 8, 2, 1, 7, 3, 5, 8, 7, 8, 9, 2, 1, 2, 6, 10, 8, 7, 6, 10, 9, 1, 6, 8, 3, 2, 10, 4, 4, 3, 10, 1, 2, 9, 6, 9, 2, 2, 5, 2, 8, 2, 4, 2, 2, 6, 2, 1, 8, 9, 3, 8, 3, 4, 8, 7, 4, 10, 2, 9, 6, 2, 8, 4, 4, 10, 9, 9, 6, 6, 2, 4, 7, 7, 7, 2, 2, 4, 9, 9, 8, 10, 3, 4, 5, 7, 9, 7, 5, 2, 1, 3, 4, 8, 7, 9, 10, 10, 3, 10, 10, 2, 1, 8, 1, 4, 3, 1, 9, 2, 10, 10, 9, 7, 8, 10, 4, 5, 4, 6, 1, 2, 9, 8, 3, 1, 8, 10, 9, 2, 7, 10, 4, 6, 5, 2, 9, 2, 8, 7, 4, 8, 2, 8, 8, 4, 2, 8, 3, 10, 7, 9, 7, 5, 6, 1, 8, 8, 4, 6, 1, 3, 5, 1, 4, 10, 10, 6, 7, 6, 5, 2, 9, 8, 10, 3, 2, 4, 1, 1, 6, 9, 8, 3, 9, 3, 1, 7, 5, 6, 9, 10, 10, 6, 8, 5, 3, 7, 9, 2, 1, 2, 10, 6, 1, 7, 10, 6, 1, 10, 4, 1, 2, 10, 1, 3, 3, 8, 6, 10, 2, 6, 9, 5, 4, 2, 6, 4, 10, 3, 10, 10, 2, 5, 6, 4, 9, 4, 7, 6, 4, 1, 7, 10, 6, 4, 7, 7, 10, 4, 5, 9, 7, 9, 7, 4, 2, 4, 9, 4, 7, 10, 7, 7, 1, 9, 10, 10, 10, 9, 9, 4, 3, 4, 7, 5, 9, 2, 9, 2, 8, 6, 8, 6, 10, 6, 7, 4, 8, 5, 7, 8, 5, 5, 7, 6, 9, 5, 3, 7, 9, 7, 4, 1, 1, 4, 6, 6, 5, 6, 5, 4, 8, 2, 10, 6, 10, 3, 7, 8, 6, 10, 8, 1, 10, 5, 6, 9, 1, 10, 10, 6, 4, 7, 9, 7, 3, 1, 10, 10, 1, 2, 6, 10, 3, 1, 10, 10, 4, 8, 1, 4, 10, 1, 8, 9, 3, 6, 6, 6, 10, 5, 2, 7, 4, 3, 5, 10, 10, 4, 8, 1, 3, 3, 8, 9, 9, 3, 4, 9, 7, 10, 10, 6, 8, 6, 5, 4, 7, 3, 1, 1, 6, 3, 9, 9, 1, 7, 8, 6, 8, 3, 10, 9, 7, 6, 10, 6, 4, 1, 2, 5, 2, 1, 3, 2, 6, 1, 10, 8, 9, 8, 6, 7, 4, 7, 5, 10, 3, 6, 1, 7, 2, 7, 3, 5, 6, 1, 2, 5, 5, 3, 9, 8, 9, 2, 1, 7, 1, 9, 7, 6, 10, 10, 8, 9, 6, 6, 3, 9, 2, 3, 9, 7, 7, 3, 5, 10, 6, 2, 3, 5, 1, 10, 4, 9, 10, 8, 10, 3, 4, 9, 7, 1, 4, 3, 5, 2, 9, 2, 3, 10, 1, 3, 2, 3, 4, 8, 6, 10, 7, 3, 9, 2, 4, 2, 7, 10, 6, 2, 9, 4, 7, 2, 4, 5, 9, 6, 9, 7, 5, 1, 3, 8, 4, 9, 4, 8, 2, 1, 6, 5, 8, 2, 6, 10, 10, 1, 8, 2, 10, 10, 5, 8, 5, 8, 2, 5, 1, 3, 4, 3, 3, 4, 8, 10, 9, 7, 3, 5, 1, 9, 10, 4, 1, 2, 3, 10, 4, 4, 2, 6, 6, 6, 7, 2, 3, 6, 7, 4, 7, 4, 4, 7, 10, 1, 2, 8, 5, 1, 5, 1, 3, 6, 8, 2, 8, 5, 10, 2, 9, 9, 8, 7, 8, 10, 3, 8, 9, 1, 3, 3, 2, 4, 9, 5, 9, 2, 9, 1, 7, 1, 6, 10, 5, 5, 8, 1, 4, 8, 7, 3, 10, 8, 7, 9, 1, 6, 9, 9, 1, 8, 9, 4, 9, 7, 9, 1, 6, 7, 8, 5, 6, 5, 4, 6, 5, 2, 9, 10, 5, 10, 4, 6, 9, 3, 6, 1, 1, 5, 4, 1, 5, 5, 1, 10, 6, 9, 7, 5, 6, 9, 6, 8, 1, 10, 4, 10, 5, 5, 3, 9, 3, 2, 3, 5, 1, 4, 8, 2, 5, 2, 5, 6, 6, 3, 1, 1, 10, 6, 3, 1, 7, 3, 6, 5, 8, 7, 7, 8, 8, 5, 4, 7, 8, 2, 5, 2, 9, 9, 2, 4, 5, 10, 4, 5, 6, 8, 2, 6, 9, 5, 2, 3, 4, 1, 8, 5, 7, 1, 5, 2, 3, 6, 7, 1, 1, 6, 3, 4, 10, 8, 7, 6, 5, 10, 9, 8, 1, 3, 10, 7, 6, 2, 4, 6, 5, 2, 8, 1, 3, 4, 10, 2, 1, 9, 3, 5, 1, 10, 1, 3, 9, 3, 7, 7, 5, 6, 3, 6, 3, 4, 9, 5, 9, 5, 3, 7, 10, 8, 9, 10, 1, 5, 7, 2, 3, 5, 1, 10, 3, 2, 3, 5, 1, 9, 5, 5, 9, 1, 6, 5, 10, 8, 2, 2, 8, 7, 7, 2, 7, 3, 7, 5, 7, 3, 8, 4, 2, 3, 3, 3, 8, 6, 3, 9, 7, 6, 2, 8, 9, 6, 7, 2, 3, 6, 9, 6, 3, 9, 10, 6, 10, 10, 4, 8, 4, 6, 10, 9, 9, 4, 1, 8, 1, 2, 4, 6, 8, 2, 8, 2, 6, 9, 4, 5, 9, 9, 8, 5, 5, 2, 8, 8, 2, 10, 1, 8, 8, 6, 1, 6, 4, 2, 8, 3, 5, 7, 4, 7, 1, 6, 8, 8, 3, 3, 1, 5, 4, 5, 4, 9, 5, 10, 5, 10, 1, 5, 7, 7, 1, 1, 3, 9, 9, 7, 9, 8, 9, 3, 10, 6, 6, 8, 9, 8, 3, 9, 7, 8, 8, 1, 3, 8, 4, 3, 5, 9, 1, 5, 9, 2, 7, 4, 3, 5, 7, 10, 8, 6, 9, 10, 9, 6, 7, 8, 6, 2, 7, 10, 7, 9, 4, 4, 10, 1, 8, 9, 6, 3, 10, 9, 9, 7, 2, 3, 5, 5, 9, 7, 2, 3, 5, 5, 6, 9, 9, 8, 9, 10, 6, 5, 6, 8, 7, 8, 2, 6, 2, 10, 3, 10, 8, 4, 10, 4, 3, 2, 1, 7, 8, 4, 7, 2, 5, 1, 8, 6, 10, 4, 4, 6, 4, 7, 6, 3, 6, 5, 10, 4, 8, 8, 1, 4, 10, 7, 3, 1, 3, 2, 7, 2, 5, 10, 4, 1, 1, 8, 5, 9, 8, 1, 3, 2, 1, 9, 6, 3, 6, 5, 7, 4, 10, 9, 8, 5, 2, 8, 9, 1, 2, 5, 2, 3, 1, 7, 6, 9, 8, 4, 7, 8, 2, 8, 2, 7, 5, 1, 7, 6, 7, 2, 5, 10, 10, 7, 9, 6, 9, 9, 3, 6, 4, 5, 5, 3, 2, 2, 5, 7, 10, 4, 3, 4, 3, 1, 3, 10, 10, 7, 2, 6, 6, 9, 7, 7, 5, 9, 1, 4, 9, 2, 9, 10, 8, 8, 2, 4, 10, 7, 10, 7, 8, 3, 9, 6, 1, 8, 8, 3, 10, 7, 5, 1, 4, 3, 6, 3, 5, 10, 7, 4, 5, 1, 10, 3, 2, 6, 8, 7, 1, 9, 5, 1, 6, 4, 9, 7, 7, 2, 10, 3, 1, 9, 7, 9, 6, 3, 9, 2, 10, 7, 2, 10, 7, 8, 8, 6, 7, 10, 10, 8, 6, 9, 5, 8, 4, 6, 1, 3, 5, 7, 4, 9, 7, 6, 1, 9, 10, 8, 10, 5, 10, 9, 2, 10, 1, 6, 8, 5, 1, 8, 3, 10, 7, 2, 5, 8, 9, 3, 2, 8, 3, 7, 10, 4, 9, 10, 6, 8, 4, 5, 7, 10, 10, 2, 7, 9, 1, 2, 8, 6, 7, 10, 5, 1, 5, 9, 5, 8, 10, 8, 3, 6, 5, 2, 5, 7, 1, 3, 3, 3, 2, 10, 6, 5, 1, 2, 6, 6, 3, 1, 4, 3, 3, 1, 2, 8, 1, 4, 6, 1, 3, 10, 8, 8, 1, 4, 9, 6, 8, 7, 10, 9, 7, 4, 8, 8, 6, 4, 8, 6, 6, 1, 3, 3, 1, 9, 5, 2, 3, 6, 5, 10, 7, 9, 10, 9, 9, 9, 2, 9, 10, 3, 10, 1, 10, 2, 6, 3, 3, 4, 6, 1, 5, 9, 2, 5, 3, 2, 1, 6, 6, 5, 8, 7, 1, 9, 1, 2, 3, 8, 2, 9, 5, 8, 5, 6, 3, 4, 2, 6, 7, 5, 7, 3, 1, 1, 1, 10, 2, 2, 8, 9, 7, 2, 6, 6, 5, 10, 1, 6, 7, 1, 1, 6, 5, 6, 4, 4, 7, 3, 5, 5, 5, 2, 3, 10, 6, 6, 3, 4, 1, 1, 7, 6, 8, 10, 8, 5, 8, 7, 4, 10, 4, 2, 3, 4, 6, 9, 2, 10, 8, 1, 10, 10, 8, 2, 3, 7, 9, 10, 4, 7, 10, 7, 6, 3, 10, 6, 5, 10, 3, 4, 2, 10, 5, 9, 7, 9, 1, 3, 7, 6, 6, 8, 8, 5, 5, 10, 9, 6, 1, 8, 9, 10, 6, 6, 3, 8, 9, 7, 6, 2, 6, 9, 1, 1, 1, 8, 10, 10, 6, 7, 4, 5, 10, 1, 2, 8, 8, 2, 6, 4, 7, 6, 6, 6, 2, 4, 5, 2, 3, 9, 1, 4, 4, 6, 6, 6, 8, 6, 8, 2, 2, 4, 6, 5, 4, 2, 8, 5, 6, 10, 8, 8, 10, 10, 5, 7, 6, 3, 10, 3, 8, 8, 3, 10, 5, 1, 7, 9, 3, 4, 9, 9, 6, 5, 1, 4, 4, 4, 2, 7, 5, 5, 10, 9, 10, 4, 9, 6, 7, 4, 7, 6, 2, 1, 8, 1, 7, 7, 5, 8, 10, 7, 2, 4, 5, 10, 2, 4, 8, 1, 1, 1, 1, 7, 2, 10, 5, 6, 7, 8, 10, 1, 9, 1, 7, 6, 6, 8, 8, 6, 8, 2, 2, 3, 7, 10, 7, 5, 9, 3, 1, 6, 10, 4, 8, 10, 8, 9, 7, 8, 5, 8, 5, 9, 5, 7, 2, 4, 5, 7, 2, 8, 9, 6, 3, 5, 6, 4, 6, 2, 5, 4, 2, 8, 4, 1, 10, 10, 4, 9, 4, 6, 10, 2, 4, 9, 4, 9, 8, 1, 6, 7, 6, 9, 8, 3, 10, 1, 9, 1, 1, 2, 5, 4, 4, 7, 7, 2, 2, 3, 9, 5, 8, 3, 7, 1, 7, 1, 6, 6, 4, 6, 10, 10, 10, 4, 10, 9, 9, 10, 4, 5, 2, 6, 3, 1, 10, 3, 6, 1, 6, 4, 1, 4, 10, 4, 2, 1, 4, 10, 8, 9, 4, 6, 4, 7, 8, 9, 7, 9, 4, 10, 10, 1, 2, 7, 2, 7, 7, 8, 5, 9, 8, 8, 8, 1, 9, 7, 10, 5, 1, 5, 9, 8, 5, 7, 5, 5, 2, 2, 3, 10, 6, 10, 3, 7, 10, 10, 3, 7, 10, 9, 9, 9, 10, 8, 3, 1, 2, 5, 7, 10, 8, 3, 4, 6, 1, 1, 4, 2, 6, 7, 4, 3, 3, 3, 8, 5, 2, 9, 8, 4, 4, 6, 7, 9, 8, 7, 4, 7, 5, 1, 5, 8, 9, 3, 9, 10, 10, 4, 5, 6, 5, 3, 5, 2, 9, 6, 7, 9, 2, 2, 8, 1, 8, 8, 9, 10, 1, 3, 7, 10, 7, 9, 10, 8, 2, 1, 7, 9, 8, 1, 10, 4, 7, 1, 5, 1, 10, 9, 2, 3, 7, 2, 10, 5, 6, 2, 8, 5, 3, 1, 9, 9, 5, 10, 3, 8, 2, 1, 10, 9, 9, 5, 7, 6, 4, 6, 8, 2, 4, 9, 7, 4, 1, 4, 7, 2, 9, 9, 5, 4, 3, 10, 1, 3, 6, 2, 5, 7, 5, 1, 2, 2, 4, 10, 6, 9, 9, 6, 4, 8, 5, 8, 4, 2, 1, 9, 8, 3, 9, 9, 6, 8, 1, 4, 6, 3, 5, 1, 1, 9, 10, 2, 1, 5, 6, 7, 5, 6, 6, 6, 6, 1, 10, 3, 2, 5, 2, 8, 1, 8, 5, 6, 9, 6, 4, 3, 3, 4, 5, 8, 5, 5, 6, 6, 3, 10, 6, 6, 5, 8, 1, 6, 3, 9, 7, 8, 3, 8, 3, 1, 9, 3, 3, 4, 3, 3, 10, 10, 7, 4, 1, 3, 6, 2, 5, 8, 4, 4, 8, 1, 8, 9, 9, 6, 4, 7, 9, 10, 10, 1, 2, 1, 7, 9, 7, 2, 4, 1, 5, 6, 1, 1, 9, 4, 5, 5, 8, 10, 2, 8, 10, 10, 9, 7, 3, 3, 9, 10, 7, 8, 7, 4, 9, 7, 5, 9, 9, 1, 2, 1, 4, 10, 4, 3, 1, 2, 4, 1, 7, 3, 7, 5, 1, 7, 2, 2, 1, 10, 4, 8, 3, 8, 4, 5, 8, 2, 10, 2, 7, 3, 4, 2, 5, 6, 3, 1, 3, 6, 5, 1, 3, 7, 5, 2, 2, 4, 3, 1, 3, 3, 1, 8, 9, 5, 5, 5, 5, 8, 6, 1, 6, 6, 6, 6, 4, 7, 10, 1, 1, 7, 3, 5, 7, 5, 3, 7, 8, 5, 6, 4, 10, 5, 4, 3, 3, 2, 7, 6, 5, 9, 7, 3, 4, 3, 5, 8, 7, 6, 6, 6, 7, 9, 1, 7, 5, 7, 2, 7, 2, 7, 2, 7, 10, 3, 8, 1, 1, 3, 8, 2, 4, 3, 4, 1, 1, 1, 7, 7, 10, 8, 7, 7, 5, 6, 1, 9, 9, 7, 3, 10, 3, 2, 1, 8, 4, 5, 10, 7, 10, 2, 7, 6, 6, 5, 2, 5, 6, 9, 6, 1, 4, 2, 5, 8, 5, 1, 10, 10, 9, 5, 5, 9, 1, 4, 4, 2, 7, 7, 10, 10, 6, 6, 6, 1, 8, 7, 7, 1, 2, 6, 8, 3, 9, 5, 3, 7, 7, 8, 4, 2, 4, 9, 1, 5, 1, 7, 4, 9, 9, 7, 9, 3, 4, 6, 2, 7, 9, 4, 1, 6, 2, 10, 5, 2, 9, 1, 8, 10, 6, 9, 2, 10, 2, 10, 6, 9, 2, 8, 2, 6, 6, 2, 10, 4, 6, 10, 6, 7, 9, 8, 2, 6, 7, 4, 8, 6, 2, 6, 5, 3, 1, 10, 3, 5, 5, 4, 1, 4, 4, 10, 1, 10, 5, 8, 8, 7, 10, 3, 5, 1, 10, 8, 6, 6, 6, 3, 10, 1, 6, 4, 8, 2, 6, 3, 4, 9, 8, 7, 3, 1, 2, 3, 10, 1, 5, 3, 9, 10, 2, 8, 3, 9, 1, 6, 9, 1, 4, 2, 10, 6, 2, 6, 6, 5, 3, 5, 4, 4, 6, 3, 5, 6, 4, 3, 10, 3, 7, 3, 7, 3, 7, 9, 7, 7, 3, 9, 6, 6, 5, 1, 3, 5, 2, 2, 2, 4, 7, 6, 6, 2, 6, 2, 5, 8, 7, 6, 9, 9, 9, 9, 8, 7, 1, 3, 1, 9, 10, 5, 3, 10, 2, 4, 9, 5, 4, 7, 10, 3, 8, 6, 3, 8, 1, 10, 7, 3, 8, 3, 10, 4, 5, 4, 4, 10, 10, 5, 4, 5, 3, 9, 10, 4, 5, 10, 5, 10, 10, 3, 1, 5, 10, 7, 8, 10, 5, 3, 6, 7, 8, 4, 9, 5, 8, 8, 5, 3, 1, 9, 10, 7, 4, 7, 10, 10, 5, 3, 9, 5, 9, 1, 7, 6, 1, 7, 2, 9, 3, 5, 4, 4, 9, 4, 10, 9, 1, 1, 8, 7, 2, 4, 10, 10, 6, 10, 2, 8, 7, 2, 9, 2, 1, 5, 6, 1, 2, 3, 10, 4, 5, 1, 5, 7, 10, 1, 9, 8, 7, 2, 9, 2, 8, 9, 6, 6, 7, 1, 4, 4, 6, 3, 2, 4, 9, 3, 6, 8, 8, 7, 9, 6, 9, 9, 8, 2, 5, 10, 5, 1, 3, 9, 1, 9, 8, 7, 3, 6, 9, 10, 8, 4, 6, 9, 4, 1, 4, 10, 4, 8, 5, 4, 8, 9, 5, 8, 10, 7, 6, 3, 9, 1, 6, 9, 7, 7, 9, 7, 6, 2, 10, 1, 6, 1, 1, 1, 1, 2, 2, 5, 6, 3, 5, 1, 9, 3, 9, 5, 3, 6, 4, 3, 2, 3, 2, 2, 1, 4, 9, 4, 3, 9, 8, 4, 10, 5, 10, 2, 3, 5, 6, 3, 3, 4, 4, 1, 4, 7, 9, 7, 4, 6, 3, 7, 1, 3, 8, 5, 10, 7, 7, 7, 3, 8, 9, 6, 10, 2, 9, 10, 1, 1, 4, 2, 1, 3, 10, 5, 9, 6, 10, 4, 4, 5, 1, 6, 9, 9, 9, 5, 10, 10, 2, 1, 3, 1, 1, 9, 4, 6, 5, 3, 4, 8, 8, 3, 1, 1, 1, 2, 6, 2, 5, 2, 10, 5, 2, 5, 8, 4, 3, 6, 5, 9, 1, 10, 7, 1, 7, 1, 2, 2, 1, 2, 6, 6, 1, 4, 3, 7, 10, 6, 6, 9, 6, 5, 3, 8, 6, 5, 10, 5, 6, 4, 6, 6, 8, 10, 5, 9, 4, 6, 6, 5, 10, 1, 10, 6, 8, 8, 5, 10, 7, 10, 7, 9, 2, 7, 4, 1, 3, 9, 4, 7, 6, 8, 7, 1, 3, 1, 5, 7, 8, 10, 3, 5, 10, 5, 3, 4, 9, 10, 7, 9, 3, 1, 10, 3, 4, 10, 9, 2, 2, 2, 3, 9, 4, 6, 3, 4, 5, 2, 8, 7, 1, 9, 10, 2, 4, 10, 2, 2, 7, 4, 8, 2, 8, 1, 3, 10, 8, 8, 10, 8, 3, 1, 6, 3, 5, 2, 4, 5, 4, 10, 3, 5, 10, 5, 7, 5, 3, 2, 5, 2, 8, 8, 3, 10, 4, 9, 7, 9, 8, 10, 5, 2, 3, 10, 8, 6, 7, 9, 6, 6, 1, 1, 1, 3, 6, 8, 4, 3, 5, 8, 5, 6, 8, 1, 6, 6, 8, 9, 1, 4, 4, 7, 8, 2, 8, 8, 5, 3, 5, 7, 9, 10, 1, 9, 1, 5, 8, 8, 6, 10, 3, 7, 3, 10, 6, 4, 10, 1, 10, 2, 5, 6, 7, 6, 2, 8, 9, 2, 10, 4, 8, 5, 2, 10, 3, 3, 5, 10, 5, 6, 3, 1, 10, 9, 8, 5, 9, 1, 5, 5, 7, 5, 6, 10, 5, 2, 3, 9, 7, 8, 1, 1, 10, 5, 3, 7, 10, 5, 6, 3, 2, 1, 3, 8, 6, 10, 10, 9, 5, 4, 9, 6, 2, 7, 9, 9, 3, 9, 8, 2, 8, 6, 8, 1, 10, 2, 8, 7, 3, 9, 6, 4, 4, 5, 1, 10, 4, 10, 3, 2, 3, 6, 3, 6, 4, 8, 10, 8, 7, 10, 4, 10, 2, 10, 7, 9, 2, 6, 7, 10, 3, 10, 4, 2, 8, 5, 6, 3, 10, 7, 5, 3, 9, 1, 4, 8, 1, 3, 10, 1, 1, 3, 1, 4, 10, 7, 5, 2, 9, 2, 2, 6, 10, 2, 5, 5, 3, 6, 9, 8, 1, 3, 9, 4, 10, 5, 2, 4, 8, 8, 10, 3, 2, 3, 3, 7, 10, 8, 10, 10, 9, 2, 10, 7, 9, 4, 3, 7, 2, 4, 10, 6, 3, 4, 10, 1, 5, 9, 2, 7, 2, 7, 3, 6, 9, 10, 1, 1, 10, 6, 9, 10, 10, 4, 7, 6, 7, 6, 6, 2, 6, 4, 2, 10, 5, 2, 10, 3, 6, 8, 10, 10, 7, 10, 2, 4, 8, 2, 2, 6, 4, 2, 7, 6, 10, 4, 9, 10, 2, 3, 8, 1, 8, 10, 7, 4, 6, 4, 2, 9, 9, 8, 3, 7, 10, 2, 9, 2, 6, 3, 7, 8, 10, 8, 8, 9, 4, 6, 10, 10, 7, 5, 10, 2, 10, 7, 10, 9, 3, 9, 3, 3, 6, 6, 9, 7, 5, 10, 4, 10, 2, 7, 2, 8, 10, 10, 1, 5, 5, 2, 8, 9, 4, 4, 4, 8, 7, 2, 4, 10, 7, 10, 5, 10, 7, 10, 9, 4, 7, 7, 9, 4, 5, 2, 10, 5, 7, 2, 1, 6, 7, 6, 2, 7, 1, 5, 3, 4, 10, 9, 8, 3, 4, 3, 5, 5, 2, 3, 4, 6, 7, 1, 2, 3, 7, 4, 3, 1, 6, 10, 5, 3, 5, 4, 3, 7, 2, 5, 3, 2, 1, 4, 6, 5, 3, 9, 5, 6, 9, 4, 3, 4, 4, 10, 4, 5, 5, 7, 7, 9, 9, 3, 2, 6, 9, 7, 5, 9, 7, 10, 9, 3, 2, 10, 1, 2, 2, 1, 3, 10, 3, 3, 10, 8, 4, 2, 7, 5, 1, 7, 4, 4, 2, 2, 3, 2, 4, 5, 10, 6, 7, 8, 1, 2, 2, 1, 3, 10, 10, 5, 10, 10, 7, 1, 8, 2, 6, 5, 2, 3, 1, 3, 5, 3, 6, 7, 1, 6, 4, 4, 1, 2, 4, 1, 2, 5, 2, 6, 9, 3, 3, 7, 10, 10, 10, 10, 8, 9, 6, 2, 8, 9, 9, 2, 3, 1, 10, 3, 10, 9, 2, 10, 5, 1, 3, 3, 10, 3, 8, 1, 10, 3, 6, 7, 9, 7, 8, 9, 5, 9, 8, 5, 2, 3, 6, 4, 5, 10, 10, 4, 4, 8, 8, 7, 4, 2, 7, 9, 3, 4, 4, 1, 1, 8, 6, 9, 5, 10, 6, 6, 3, 3, 2, 2, 9, 9, 2, 3, 2, 1, 10, 3, 4, 8, 10, 3, 8, 3, 3, 5, 3, 7, 3, 7, 1, 2, 2, 5, 4, 5, 9, 6, 6, 10, 1, 4, 8, 2, 9, 6, 6, 3, 6, 1, 3, 5, 4, 4, 1, 6, 3, 4, 10, 8, 8, 3, 1, 6, 8, 3, 4, 4, 9, 6, 4, 4, 2, 4, 2, 8, 4, 4, 5, 5, 1, 8, 9, 1, 8, 8, 3, 7, 3, 6, 2, 4, 2, 3, 4, 2, 5, 8, 3, 8, 10, 8, 1, 10, 1, 5, 2, 9, 9, 4, 2, 4, 2, 4, 5, 4, 9, 7, 8, 4, 2, 2, 6, 1, 6, 7, 6, 3, 6, 3, 6, 7, 3, 4, 3, 8, 2, 5, 7, 5, 5, 7, 6, 1, 9, 7, 5, 4, 2, 4, 8, 6, 7, 2, 1, 4, 8, 3, 4, 7, 9, 6, 4, 6, 7, 2, 7, 2, 3, 2, 4, 7, 7, 7, 1, 9, 5, 5, 5, 7, 8, 6, 1, 2, 1, 7, 6, 10, 4, 9, 3, 8, 9, 1, 2, 3, 1, 8, 9, 4, 7, 7, 3, 8, 10, 10, 5, 6, 10, 7, 4, 3, 10, 4, 10, 9, 10, 2, 1, 2, 9, 1, 3, 8, 10, 4, 1, 8, 1, 2, 10, 9, 3, 1, 9, 9, 5, 5, 2, 3, 3, 10, 6, 4, 3, 10, 10, 8, 3, 4, 5, 4, 10, 1, 8, 2, 5, 1, 7, 4, 5, 1, 4, 3, 9, 4, 7, 5, 10, 3, 7, 6, 3, 6, 5, 2, 3, 1, 3, 10, 10, 7, 6, 5, 5, 6, 5, 6, 10, 6, 7, 10, 9, 6, 9, 4, 5, 8, 3, 3, 1, 10, 3, 3, 2, 5, 9, 9, 5, 3, 9, 3, 6, 5, 7, 4, 5, 1, 8, 7, 4, 6, 8, 4, 10, 4, 2, 2, 5, 1, 5, 1, 10, 4, 1, 7, 6, 6, 9, 6, 2, 9, 2, 4, 1, 9, 8, 7, 4, 3, 3, 8, 8, 2, 4, 4, 7, 4, 7, 10, 4, 3, 5, 2, 3, 4, 1, 7, 1, 7, 10, 6, 4, 10, 3, 2, 4, 2, 4, 3, 2, 8, 4, 5, 10, 7, 3, 6, 4, 4, 6, 3, 4, 2, 1, 9, 7, 7, 3, 10, 4, 4, 7, 9, 2, 7, 3, 1, 8, 5, 9, 8, 6, 2, 3, 8, 8, 4, 1, 2, 2, 7, 2, 2, 5, 5, 3, 2, 4, 6, 1, 4, 8, 10, 1, 2, 4, 3, 5, 10, 1, 3, 1, 10, 6, 10, 8, 6, 9, 5, 7, 2, 2, 5, 4, 4, 3, 9, 2, 6, 1, 6, 2, 8, 6, 1, 2, 4, 5, 6, 3, 7, 4, 1, 4, 1, 6, 3, 6, 2, 4, 7, 8, 5, 3, 1, 8, 2, 7, 8, 3, 3, 10, 3, 1, 3, 8, 9, 1, 7, 1, 10, 7, 10, 9, 3, 7, 8, 5, 3, 6, 8, 1, 3, 9, 5, 1, 6, 4, 10, 8, 3, 5, 7, 6, 6, 2, 5, 2, 4, 5, 10, 3, 9, 10, 4, 7, 10, 3, 3, 3, 1, 10, 5, 2, 1, 10, 1, 5, 4, 4, 1, 6, 5, 3, 3, 1, 5, 10, 7, 10, 10, 6, 10, 7, 6, 1, 2, 8, 4, 6, 4, 8, 7, 10, 4, 8, 9, 1, 5, 7, 5, 6, 1, 8, 5, 2, 1, 4, 7, 2, 10, 4, 2, 7, 10, 7, 4, 1, 5, 4, 3, 3, 10, 1, 9, 3, 1, 5, 1, 2, 5, 7, 1, 1, 7, 7, 1, 4, 9, 4, 6, 5, 5, 7, 8, 1, 2, 2, 7, 7, 3, 5, 4, 9, 1, 4, 10, 1, 10, 4, 10, 5, 1, 9, 9, 3, 7, 9, 4, 7, 4, 9, 2, 6, 2, 1, 9, 7, 1, 9, 7, 3, 5, 10, 7, 10, 6, 3, 1, 10, 5, 3, 1, 9, 3, 4, 10, 8, 7, 5, 4, 9, 1, 10, 10, 7, 8, 1, 7, 9, 3, 10, 2, 5, 9, 8, 7, 2, 4, 5, 3, 6, 2, 2, 9, 2, 8, 10, 8, 5, 4, 5, 5, 9, 4, 4, 10, 6, 1, 6, 2, 10, 4, 2, 6, 9, 2, 8, 5, 5, 1, 2, 9, 3, 3, 1, 8, 10, 10, 9, 6, 1, 5, 2, 6, 9, 3, 1, 4, 3, 9, 7, 3, 3, 10, 9, 7, 6, 2, 4, 6, 9, 9, 4, 10, 2, 4, 4, 8, 5, 6, 5, 6, 6, 1, 9, 3, 4, 4, 6, 1, 6, 2, 9, 6, 5, 7, 7, 8, 10, 4, 6, 7, 2, 3, 5, 9, 7, 6, 4, 1, 4, 3, 2, 6, 6, 4, 1, 4, 10, 6, 3, 6, 8, 3, 10, 6, 9, 9, 10, 4, 8, 5, 10, 2, 2, 6, 9, 7, 7, 1, 1, 4, 2, 8, 4, 3, 7, 3, 4, 7, 5, 2, 8, 10, 9, 8, 6, 7, 9, 8, 10, 9, 9, 2, 6, 10, 6, 3, 9, 5, 5, 2, 9, 4, 6, 4, 4, 6, 4, 4, 7, 1, 3, 4, 9, 7, 2, 2, 7, 8, 2, 3, 7, 3, 3, 3, 8, 10, 8, 7, 3, 2, 8, 6, 4, 6, 2, 8, 10, 10, 4, 6, 2, 2, 8, 7, 6, 8, 1, 1, 1, 7, 1, 9, 1, 1, 7, 6, 7, 6, 6, 1, 5, 2, 7, 5, 8, 2, 8, 5, 3, 5, 9, 5, 5, 7, 8, 10, 10, 1, 7, 2, 3, 6, 3, 2, 5, 7, 8, 2, 7, 10, 2, 5, 9, 9, 10, 10, 1, 9, 3, 4, 4, 3, 8, 5, 2, 4, 1, 5, 2, 5, 2, 8, 9, 10, 9, 4, 8, 6, 6, 7, 5, 10, 1, 1, 7, 6, 2, 7, 3, 2, 4, 2, 9, 6, 8, 6, 4, 9, 6, 10, 6, 6, 3, 10, 9, 7, 5, 4, 5, 6, 10, 1, 6, 4, 2, 5, 8, 5, 4, 4, 10, 1, 10, 10, 7, 8, 10, 9, 4, 6, 2, 1, 4, 8, 7, 2, 2, 3, 9, 3, 2, 8, 2, 5, 4, 4, 5, 4, 7, 1, 9, 10, 7, 10, 3, 9, 4, 6, 7, 3, 10, 6, 9, 2, 6, 2, 3, 10, 7, 2, 10, 6, 5, 8, 5, 4, 9, 10, 10, 2, 7, 5, 3, 7, 10, 9, 6, 2, 3, 1, 5, 5, 9, 2, 10, 8, 1, 7, 1, 9, 5, 10, 1, 7, 2, 1, 3, 9, 8, 1, 2, 10, 9, 3, 4, 7, 9, 8, 3, 3, 9, 7, 4, 8, 1, 2, 4, 10, 10, 3, 2, 4, 3, 8, 3, 2, 7, 2, 9, 7, 3, 3, 4, 1, 1, 4, 2, 4, 6, 1, 9, 2, 5, 2, 3, 10, 2, 4, 8, 4, 6, 10, 6, 2, 3, 10, 3, 7, 2, 4, 2, 8, 7, 1, 2, 9, 6, 3, 3, 7, 8, 6, 6, 3, 4, 10, 2, 5, 7, 7, 8, 10, 6, 9, 4, 8, 5, 10, 7, 8, 4, 10, 9, 6, 9, 5, 10, 9, 10, 2, 5, 7, 7, 1, 7, 9, 4, 3, 3, 9, 4, 9, 8, 5, 4, 1, 6, 6, 6, 9, 6, 3, 5, 7, 9, 4, 8, 1, 1, 4, 6, 5, 8, 7, 1, 7, 10, 6, 6, 1, 6, 10, 7, 6, 4, 7, 8, 8, 6, 2, 4, 1, 5, 3, 10, 1, 8, 10, 10, 10, 10, 7, 9, 9, 7, 8, 5, 8, 10, 1, 1, 10, 5, 8, 1, 10, 7, 3, 9, 5, 10, 9, 3, 4, 3, 3, 9, 9, 7, 10, 8, 8, 5, 8, 4, 10, 6, 1, 3, 7, 8, 7, 5, 4, 2, 2, 1, 5, 10, 2, 1, 10, 5, 9, 1, 7, 6, 2, 8, 10, 1, 8, 9, 3, 5, 2, 4, 2, 4, 1, 9, 3, 5, 5, 9, 1, 9, 6, 5, 8, 9, 8, 7, 10, 8, 3, 7, 5, 1, 10, 1, 9, 9, 6, 3, 8, 10, 1, 6, 10, 1, 4, 10, 3, 4, 7, 6, 2, 1, 5, 8, 10, 3, 7, 9, 4, 10, 8, 5, 2, 2, 7, 5, 8, 8, 1, 1, 9, 1, 5, 2, 9, 7, 3, 5, 2, 4, 6, 10, 6, 6, 6, 5, 6, 2, 8, 2, 9, 4, 4, 5, 3, 9, 4, 10, 1, 10, 5, 6, 7, 9, 8, 4, 8, 7, 9, 6, 7, 1, 10, 10, 10, 5, 4, 10, 4, 2, 7, 8, 2, 6, 3, 6, 4, 7, 2, 4, 10, 1, 4, 5, 6, 8, 9, 4, 6, 1, 9, 2, 10, 3, 3, 5, 1, 2, 1, 7, 1, 2, 10, 10, 1, 2, 8, 4, 7, 6, 10, 2, 9, 8, 7, 3, 10, 3, 10, 4, 2, 4, 3, 8, 2, 4, 4, 7, 6, 6, 2, 8, 5, 3, 10, 9, 3, 6, 9, 2, 9, 9, 9, 6, 5, 1, 10, 8, 2, 4, 1, 6, 6, 8, 5, 8, 4, 2, 5, 6, 4, 8, 7, 1, 10, 3, 9, 5, 9, 1, 2, 9, 5, 6, 5, 6, 1, 6, 10, 5, 2, 2, 9, 9, 8, 1, 7, 3, 6, 6, 4, 3, 3, 5, 6, 4, 4, 9, 2, 1, 2, 6, 9, 5, 1, 9, 8, 3, 6, 10, 5, 8, 4, 1, 3, 9, 2, 2, 2, 4, 2, 9, 9, 6, 3, 1, 10, 4, 10, 2, 4, 6, 9, 1, 2, 10, 5, 1, 2, 6, 4, 8, 6, 9, 9, 3, 1, 10, 3, 2, 2, 8, 1, 7, 6, 9, 8, 10, 8, 2, 7, 10, 10, 3, 9, 9, 2, 10, 2, 10, 7, 5, 10, 8, 7, 2, 3, 6, 7, 3, 7, 7, 1, 7, 10, 7, 2, 6, 8, 2, 3, 1, 6, 1, 3, 10, 3, 6, 7, 2, 5, 9, 1, 5, 6, 10, 7, 9, 6, 3, 4, 9, 8, 5, 7, 10, 8, 9, 7, 3, 1, 8, 3, 1, 2, 2, 3, 2, 3, 8, 4, 6, 7, 6, 1, 10, 6, 8, 4, 5, 8, 2, 1, 8, 6, 4, 8, 9, 2, 2, 1, 3, 3, 1, 6, 8, 4, 3, 2, 5, 9, 6, 9, 4, 3, 2, 6, 9, 2, 10, 7, 8, 6, 5, 1, 3, 7, 3, 2, 4, 5, 1, 6, 1, 10, 9, 9, 2, 10, 8, 1, 7, 1, 6, 3, 7, 7, 9, 3, 2, 9, 2, 5, 7, 10, 6, 4, 4, 3, 3, 7, 10, 4, 2, 10, 10, 5, 5, 10, 4, 10, 3, 9, 5, 5, 7, 5, 6, 1, 9, 5, 7, 6, 3, 4, 9, 3, 5, 6, 6, 6, 2, 9, 1, 3, 2, 5, 6, 1, 10, 5, 3, 9, 4, 3, 9, 6, 1, 9, 9, 8, 9, 3, 3, 1, 4, 3, 1, 2, 5, 1, 6, 2, 1, 3, 1, 4, 2, 6, 2, 4, 7, 9, 9, 5, 5, 5, 10, 7, 6, 4, 3, 9, 5, 3, 6, 9, 1, 3, 8, 9, 1, 3, 7, 8, 1, 5, 1, 2, 3, 5, 5, 4, 2, 5, 7, 10, 7, 7, 2, 2, 1, 6, 3, 3, 2, 5, 8, 6, 2, 10, 9, 9, 9, 10, 4, 9, 4, 4, 6, 9, 5, 2, 8, 9, 4, 4, 8, 9, 9, 4, 8, 3, 9, 8, 6, 6, 3, 4, 1, 7, 7, 10, 4, 7, 1, 10, 6, 6, 10, 3, 7, 1, 5, 3, 6, 4, 1, 6, 6, 9, 8, 10, 4, 1, 6, 4, 10, 2, 2, 4, 7, 10, 2, 2, 7, 9, 7, 3, 6, 1, 10, 4, 10, 3, 10, 3, 2, 9, 7, 4, 9, 4, 3, 8, 8, 8, 2, 2, 9, 5, 2, 10, 8, 6, 1, 2, 6, 1, 6, 5, 7, 6, 8, 5, 2, 1, 10, 8, 8, 9, 7, 4, 4, 3, 5, 8, 3, 8, 8, 7, 2, 3, 7, 10, 1, 9, 5, 3, 6, 4, 6, 6, 5, 4, 9, 7, 5, 2, 5, 7, 1, 7, 3, 8, 3, 7, 2, 2, 4, 5, 8, 7, 8, 4, 1, 3, 6, 5, 1, 10, 4, 4, 7, 2, 3, 3, 9, 5, 10, 9, 8, 3, 4, 1, 6, 4, 3, 1, 6, 2, 6, 9, 1, 5, 7, 5, 9, 9, 10, 9, 4, 2, 2, 8, 5, 3, 3, 4, 10, 6, 8, 4, 7, 8, 5, 6, 6, 6, 9, 1, 5, 1, 9, 10, 1, 6, 8, 4, 7, 1, 4, 6, 3, 2, 10, 10, 3, 3, 8, 6, 4, 5, 4, 5, 10, 3, 3, 4, 1, 3, 9, 5, 10, 3, 1, 10, 2, 10, 10, 7, 7, 7, 4, 10, 3, 1, 9, 7, 5, 3, 10, 7, 5, 2, 10, 1, 3, 7, 7, 7, 2, 1, 5, 9, 4, 1, 10, 9, 8, 4, 5, 3, 6, 5, 4, 6, 6, 3, 6, 5, 7, 7, 10, 6, 10, 2, 9, 7, 9, 4, 3, 9, 9, 3, 7, 1, 1, 7, 1, 10, 10, 8, 3, 7, 2, 6, 7, 10, 8, 7, 8, 6, 8, 8, 1, 6, 5, 10, 10, 6, 7, 1, 4, 8, 10, 4, 8, 8, 2, 5, 3, 5, 8, 2, 8, 6, 7, 5, 6, 5, 6, 1, 8, 8, 3, 6, 5, 9, 8, 1, 7, 4, 7, 8, 8, 5, 7, 1, 1, 5, 9, 2, 3, 5, 1, 1, 7, 9, 1, 3, 3, 8, 8, 6, 3, 10, 10, 2, 8, 2, 6, 1, 9, 9, 1, 9, 2, 9, 7, 3, 6, 3, 5, 1, 8, 2, 10, 6, 6, 1, 6, 5, 4, 8, 8, 10, 7, 1, 4, 6, 5, 7, 5, 10, 8, 6, 7, 7, 7, 1, 4, 10, 5, 3, 9, 7, 1, 8, 6, 3, 10, 4, 1, 7, 6, 2, 1, 7, 7, 1, 5, 1, 4, 5, 2, 4, 2, 2, 8, 10, 5, 6, 4, 6, 9, 10, 3, 4, 8, 7, 5, 2, 6, 4, 1, 8, 4, 8, 2, 10, 2, 2, 10, 8, 10, 9, 5, 8, 10, 7, 10, 4, 6, 7, 4, 3, 10, 4, 4, 10, 3, 6, 10, 7, 5, 7, 6, 4, 6, 5, 2, 6, 6, 5, 5, 5, 1, 8, 2, 3, 10, 5, 6, 1, 7, 8, 6, 1, 5, 6, 6, 10, 6, 8, 10, 3, 4, 4, 7, 2, 4, 4, 4, 4, 1, 10, 8, 2, 2, 8, 10, 7, 2, 10, 9, 1, 2, 6, 2, 7, 8, 2, 5, 8, 10, 8, 8, 4, 7, 7, 7, 3, 3, 9, 2, 8, 9, 4, 5, 5, 2, 1, 9, 1, 2, 5, 2, 2, 8, 4, 6, 7, 3, 10, 8, 5, 8, 3, 10, 3, 2, 4, 8, 9, 4, 8, 3, 9, 4, 5, 8, 3, 8, 3, 7, 9, 1, 7, 6, 6, 3, 7, 3, 9, 8, 5, 1, 4, 4, 1, 9, 10, 5, 7, 10, 2, 10, 3, 2, 5, 9, 7, 4, 4, 3, 3, 2, 1, 2, 1, 10, 9, 8, 4, 3, 10, 4, 3, 2, 5, 4, 7, 3, 8, 3, 5, 9, 2, 5, 5, 7, 3, 6, 9, 7, 2, 8, 2, 8, 6, 3, 3, 10, 6, 7, 10, 5, 2, 5, 3, 9, 9, 9, 2, 6, 7, 1, 9, 7, 5, 2, 8, 7, 5, 5, 10, 5, 1, 4, 1, 4, 9, 9, 1, 5, 7, 6, 8, 4, 2, 9, 6, 9, 3, 2, 10, 10, 9, 7, 5, 3, 6, 2, 5, 2, 6, 1, 6, 10, 3, 6, 2, 3, 10, 2, 10, 5, 7, 6, 8, 1, 9, 3, 2, 4, 5, 9, 9, 2, 10, 5, 4, 9, 8, 6, 9, 2, 9, 3, 9, 10, 5, 2, 5, 9, 8, 3, 8, 1, 1, 4, 5, 1, 10, 2, 10, 7, 10, 3, 1, 7, 1, 4, 7, 5, 3, 4, 6, 10, 10, 4, 9, 6, 10, 10, 2, 7, 8, 9, 1, 2, 4, 8, 7, 3, 2, 10, 2, 4, 6, 10, 2, 1, 10, 9, 5, 10, 8, 1, 10, 7, 5, 3, 1, 2, 6, 4, 2, 8, 2, 8, 6, 8, 3, 6, 5, 7, 7, 8, 1, 4, 6, 7, 3, 6, 2, 8, 1, 4, 6, 4, 7, 10, 9, 9, 5, 10, 6, 8, 6, 10, 1, 10, 6, 6, 8, 7, 8, 7, 8, 9, 1, 5, 5, 6, 7, 3, 9, 8, 7, 2, 9, 1, 2, 4, 8, 3, 1, 1, 10, 10, 1, 1, 8, 10, 6, 7, 8, 9, 6, 4, 7, 5, 3, 9, 2, 2, 10, 1, 4, 7, 4, 4, 6, 9, 7, 10, 8, 5, 4, 8, 1, 9, 7, 10, 4, 4, 1, 8, 2, 2, 1, 9, 10, 9, 10, 4, 5, 2, 5, 8, 9, 7, 1, 6, 9, 7, 5, 5, 7, 8, 10, 5, 2, 9, 10, 7, 2, 7, 10, 2, 3, 4, 9, 2, 8, 3, 6, 8, 2, 7, 5, 5, 1, 4, 4, 5, 8, 10, 9, 3, 4, 8, 3, 9, 2, 6, 10, 3, 6, 6, 3, 3, 7, 2, 10, 2, 3, 9, 3, 8, 7, 8, 10, 2, 1, 8, 2, 7, 3, 9, 2, 3, 1, 2, 7, 8, 8, 7, 1, 4, 8, 5, 2, 8, 2, 8, 10, 2, 3, 10, 9, 2, 7, 8, 4, 7, 8, 10, 10, 10, 2, 7, 9, 6, 6, 7, 5, 5, 2, 9, 6, 9, 6, 4, 2, 2, 8, 9, 9, 7, 6, 6, 6, 4, 10, 6, 2, 2, 6, 9, 3, 5, 4, 8, 10, 6, 5, 1, 2, 5, 3, 6, 10, 4, 1, 6, 5, 7, 10, 7, 6, 5, 5, 4, 10, 7, 3, 9, 7, 8, 1, 3, 4, 3, 6, 1, 10, 5, 9, 6, 4, 6, 5, 1, 9, 5, 5, 2, 8, 1, 3, 4, 3, 8, 1, 3, 9, 7, 5, 4, 10, 9, 9, 10, 10, 9, 2, 4, 5, 4, 1, 10, 10, 6, 2, 2, 6, 10, 9, 8, 10, 10, 1, 9, 9, 7, 4, 8, 5, 1, 1, 6, 5, 6, 4, 3, 9, 9, 4, 4, 8, 6, 3, 2, 6, 10, 1, 5, 9, 6, 8, 9, 9, 9, 9, 3, 3, 5, 8, 1, 6, 2, 9, 2, 7, 8, 5, 7, 9, 6, 9, 9, 5, 7, 10, 1, 2, 5, 8, 2, 9, 3, 1, 4, 5, 3, 4, 2, 5, 3, 6, 3, 1, 5, 5, 6, 9, 9, 5, 3, 6, 5, 6, 4, 5, 4, 10, 4, 9, 1, 1, 10, 10, 6, 2, 4, 8, 6, 6, 8, 6, 6, 4, 4, 7, 7, 2, 3, 4, 1, 3, 7, 9, 10, 7, 4, 8, 2, 1, 7, 4, 8, 1, 5, 6, 5, 8, 5, 6, 1, 9, 1, 9, 7, 10, 5, 2, 1, 6, 3, 1, 3, 5, 1, 3, 7, 5, 8, 5, 2, 1, 4, 3, 6, 2, 3, 1, 1, 3, 5, 1, 5, 1, 5, 3, 1, 2, 7, 1, 9, 1, 3, 2, 7, 10, 7, 7, 10, 7, 4, 8, 8, 9, 8, 6, 10, 8, 1, 6, 10, 8, 7, 5, 5, 7, 1, 7, 1, 10, 5, 6, 5, 4, 10, 1, 3, 1, 9, 2, 10, 10, 7, 1, 7, 3, 1, 10, 3, 7, 1, 7, 8, 9, 4, 10, 6, 5, 7, 1, 7, 1, 9, 3, 9, 1, 4, 4, 5, 4, 5, 8, 10, 10, 5, 3, 7, 6, 10, 5, 1, 9, 4, 5, 4, 5, 8, 2, 5, 6, 10, 2, 7, 1, 3, 10, 6, 3, 7, 8, 7, 7, 7, 5, 1, 8, 9, 4, 7, 4, 10, 2, 5, 9, 1, 3, 6, 2, 9, 5, 8, 2, 4, 1, 3, 4, 1, 6, 1, 4, 4, 2, 2, 9, 10, 6, 6, 4, 2, 2, 4, 4, 8, 2, 2, 4, 7, 1, 9, 9, 6, 1, 9, 5, 2, 3, 7, 5, 6, 3, 5, 8, 4, 7, 9, 1, 4, 9, 2, 1, 9, 7, 8, 8, 8, 6, 6, 4, 4, 5, 4, 1, 9, 10, 4, 9, 6, 6, 3, 1, 5, 3, 1, 9, 2, 7, 10, 2, 8, 7, 1, 2, 4, 1, 10, 4, 7, 7, 8, 3, 8, 2, 5, 5, 5, 7, 2, 6, 10, 8, 2, 9, 6, 6, 9, 4, 9, 7, 8, 8, 2, 5, 5, 3, 3, 1, 4, 7, 7, 10, 5, 2, 4, 5, 10, 6, 5, 3, 3, 5, 6, 7, 2, 10, 10, 9, 7, 3, 4, 9, 1, 3, 6, 9, 5, 7, 5, 3, 7, 7, 7, 10, 3, 9, 7, 9, 5, 5, 9, 10, 10, 5, 1, 6, 9, 1, 8, 4, 9, 7, 4, 7, 3, 3, 2, 4, 2, 7, 4, 1, 3, 3, 4, 5, 1, 7, 3, 4, 6, 3, 2, 9, 3, 8, 8, 2, 3, 8, 8, 7, 2, 2, 5, 1, 3, 2, 6, 4, 4, 4, 1, 6, 9, 5, 7, 1, 4, 8, 3, 6, 1, 6, 2, 5, 3, 9, 10, 7, 1, 9, 7, 7, 5, 3, 2, 8, 6, 8, 8, 5, 7, 9, 1, 5, 4, 3, 4, 9, 6, 3, 10, 6, 7, 3, 7, 2, 3, 7, 3, 6, 10, 4, 2, 4, 7, 5, 1, 4, 4, 1, 9, 7, 1, 6, 4, 10, 1, 10, 4, 3, 8, 8, 10, 1, 1, 4, 6, 4, 9, 1, 8, 6, 10, 1, 9, 8, 1, 3, 5, 10, 3, 2, 3, 6, 10, 4, 7, 1, 3, 7, 2, 8, 2, 8, 4, 7, 4, 7, 2, 2, 10, 2, 1, 7, 6, 1, 9, 6, 1, 3, 8, 7, 1, 2, 5, 7, 10, 4, 5, 6, 3, 6, 10, 5, 3, 10, 7, 7, 9, 8, 5, 8, 10, 7, 9, 3, 6, 1, 3, 8, 6, 2, 6, 7, 10, 9, 4, 1, 10, 5, 3, 8, 10, 3, 7, 5, 6, 9, 5, 6, 6, 9, 8, 8, 10, 6, 9, 5, 6, 9, 7, 8, 10, 1, 5, 8, 2, 10, 5, 5, 6, 3, 1, 6, 6, 7, 6, 7, 2, 10, 6, 5, 7, 3, 4, 7, 1, 4, 2, 4, 10, 9, 7, 7, 5, 3, 10, 8, 8, 8, 2, 10, 9, 2, 1, 10, 5, 10, 2, 4, 6, 8, 3, 4, 2, 2, 7, 1, 9, 9, 9, 1, 7, 6, 10, 10, 5, 3, 6, 4, 1, 5, 9, 1, 8, 6, 8, 9, 3, 7, 6, 3, 3, 1, 4, 7, 3, 3, 9, 6, 3, 4, 3, 10, 8, 8, 1, 4, 2, 2, 6, 3, 6, 7, 7, 4, 6, 7, 10, 3, 6, 5, 2, 10, 5, 5, 7, 3, 5, 8, 1, 2, 4, 5, 10, 6, 3, 9, 2, 1, 3, 8, 3, 7, 5, 9, 4, 8, 10, 6, 8, 2, 2, 5, 4, 7, 7, 3, 3, 9, 10, 5, 2, 9, 9, 5, 2, 3, 4, 6, 7, 9, 2, 8, 8, 1, 5, 7, 3, 9, 8, 7, 1, 1, 8, 1, 6, 8, 1, 1, 9, 8, 8, 5, 6, 7, 2, 2, 4, 8, 2, 3, 4, 6, 8, 4, 2, 1, 4, 4, 6, 7, 3, 3, 8, 8, 1, 1, 4, 3, 3, 2, 3, 7, 8, 7, 2, 8, 9, 8, 7, 5, 1, 4, 4, 9, 7, 1, 1, 3, 5, 10, 6, 7, 9, 4, 10, 10, 7, 9, 10, 2, 10, 1, 10, 2, 2, 4, 2, 3, 7, 3, 6, 3, 8, 9, 4, 1, 6, 9, 1, 1, 8, 6, 4, 2, 8, 5, 4, 6, 6, 6, 1, 1, 6, 8, 8, 3, 6, 1, 1, 9, 8, 1, 3, 10, 8, 8, 7, 8, 2, 7, 4, 6, 4, 4, 2, 9, 8, 10, 2, 6, 10, 7, 1, 8, 5, 2, 10, 5, 2, 10, 2, 9, 4, 9, 10, 4, 5, 7, 10, 2, 3, 1, 10, 10, 6, 7, 7, 2, 3, 4, 3, 3, 2, 3, 2, 4, 8, 7, 9, 4, 5, 6, 8, 3, 6, 4, 10, 6, 6, 6, 7, 9, 4, 1, 10, 9, 5, 1, 2, 8, 5, 10, 5, 7, 3, 9, 7, 7, 5, 2, 3, 3, 6, 1, 10, 8, 1, 7, 1, 7, 9, 1, 5, 2, 4, 5, 10, 4, 5, 1, 9, 8, 6, 1, 7, 2, 8, 6, 4, 10, 6, 7, 10, 5, 10, 4, 9, 2, 8, 1, 5, 10, 6, 4, 6, 2, 10, 10, 5, 3, 3, 5, 6, 1, 9, 2, 6, 5, 2, 1, 1, 2, 2, 10, 8, 2, 8, 3, 6, 10, 8, 6, 6, 2, 2, 5, 10, 10, 4, 1, 1, 6, 7, 5, 8, 2, 9, 2, 2, 10, 7, 3, 7, 8, 7, 6, 5, 4, 8, 5, 7, 1, 7, 6, 2, 8, 4, 3, 8, 2, 2, 4, 9, 4, 1, 1, 1, 6, 6, 9, 6, 1, 10, 3, 4, 7, 5, 9, 3, 3, 9, 4, 4, 9, 9, 3, 6, 7, 1, 9, 4, 8, 1, 1, 10, 2, 4, 7, 1, 10, 2, 6, 7, 3, 8, 5, 3, 5, 9, 8, 6, 2, 9, 2, 1, 5, 7, 2, 7, 10, 3, 9, 5, 7, 6, 7, 7, 1, 3, 8, 9, 8, 6, 4, 8, 8, 3, 5, 7, 6, 2, 2, 7, 1, 4, 5, 4, 8, 9, 5, 7, 3, 6, 6, 2, 10, 4, 4, 10, 7, 5, 9, 1, 3, 3, 5, 1, 7, 10, 1, 7, 10, 5, 1, 8, 2, 6, 1, 10, 6, 9, 6, 3, 1, 3, 10, 3, 2, 5, 4, 4, 7, 3, 10, 2, 5, 4, 2, 6, 1, 7, 3, 8, 4, 6, 3, 3, 9, 10, 7, 3, 4, 5, 2, 10, 8, 1, 8, 9, 2, 5, 6, 4, 5, 6, 9, 9, 9, 10, 4, 1, 2, 1, 6, 10, 7, 10, 9, 4, 9, 1, 7, 8, 3, 5, 6, 1, 7, 6, 1, 8, 6, 8, 4, 6, 5, 4, 10, 9, 3, 5, 9, 1, 4, 3, 7, 8, 3, 8, 7, 3, 8, 9, 5, 9, 5, 2, 10, 8, 2, 5, 1, 3, 1, 5, 7, 8, 9, 6, 5, 8, 6, 6, 8, 3, 1, 8, 3, 7, 10, 2, 4, 6, 6, 5, 7, 3, 3, 1, 6, 7, 2, 9, 10, 10, 3, 8, 10, 6, 5, 9, 5, 10, 2, 4, 3, 6, 1, 4, 10, 1, 5, 2, 8, 8, 9, 4, 5, 2, 8, 6, 2, 9, 2, 2, 1, 9, 2, 2, 6, 2, 4, 5, 10, 6, 1, 8, 8, 8, 1, 7, 4, 6, 8, 1, 7, 3, 3, 2, 2, 9, 6, 7, 8, 4, 2, 2, 2, 10, 5, 7, 6, 6, 5, 8, 7, 10, 6, 6, 5, 10, 10, 3, 10, 1, 7, 1, 7, 4, 4, 10, 8, 4, 6, 2, 1, 10, 5, 9, 3, 9, 9, 7, 4, 4, 6, 8, 6, 6, 2, 6, 9, 9, 7, 3, 5, 2, 8, 5, 5, 10, 8, 3, 10, 9, 3, 6, 7, 8, 10, 8, 2, 8, 9, 8, 6, 9, 4, 3, 1, 10, 7, 8, 10, 2, 8, 10, 2, 8, 4, 7, 1, 6, 7, 9, 8, 2, 6, 3, 1, 5, 8, 3, 7, 10, 2, 4, 3, 10, 8, 9, 4, 8, 4, 7, 2, 7, 6, 3, 8, 7, 7, 10, 9, 1, 2, 9, 2, 4, 7, 4, 7, 5, 5, 6, 5, 2, 4, 9, 7, 4, 6, 7, 5, 4, 6, 4, 1, 4, 2, 7, 4, 8, 9, 7, 7, 5, 8, 6, 2, 7, 5, 7, 9, 1, 10, 8, 7, 10, 4, 6, 1, 9, 9, 4, 10, 7, 8, 9, 8, 4, 10, 4, 8, 10, 5, 6, 7, 3, 1, 8, 4, 10, 6, 10, 1, 4, 9, 2, 4, 10, 5, 10, 10, 3, 6, 1, 7, 8, 2, 8, 9, 2, 3, 10, 4, 1, 9, 10, 8, 7, 10, 9, 5, 4, 5, 7, 5, 8, 8, 7, 9, 8, 10, 1, 6, 5, 4, 7, 1, 8, 6, 1, 8, 4, 5, 8, 10, 9, 5, 5, 8, 6, 2, 8, 1, 10, 4, 6, 10, 10, 3, 8, 3, 8, 10, 9, 5, 8, 4, 5, 8, 10, 7, 6, 10, 4, 3, 1, 4, 9, 6, 10, 9, 7, 4, 3, 7, 6, 8, 7, 2, 4, 5, 9, 9, 2, 5, 9, 10, 5, 6, 10, 9, 9, 3, 1, 9, 9, 5, 5, 2, 8, 6, 8, 2, 6, 8, 7, 6, 4, 6, 6, 4, 8, 1, 1, 10, 7, 10, 7, 2, 1, 3, 6, 9, 6, 5, 3, 6, 8, 6, 1, 2, 3, 2, 5, 4, 6, 4, 9, 6, 3, 1, 5, 2, 7, 6, 2, 5, 8, 5, 7, 3, 6, 7, 2, 7, 7, 8, 8, 1, 3, 9, 9, 2, 7, 10, 9, 10, 4, 2, 8, 9, 2, 3, 2, 3, 8, 3, 10, 9, 10, 4, 9, 4, 8, 9, 10, 9, 2, 2, 4, 7, 6, 5, 10, 7, 9, 10, 7, 6, 5, 9, 2, 6, 10, 7, 10, 3, 3, 4, 1, 3, 2, 4, 9, 2, 3, 7, 10, 3, 9, 10, 10, 2, 5, 2, 6, 9, 5, 9, 1, 4, 5, 3, 1, 2, 3, 9, 3, 2, 10, 5, 9, 9, 1, 4, 8, 9, 3, 2, 9, 7, 6, 9, 8, 2, 3, 4, 2, 6, 8, 9, 5, 2, 1, 5, 5, 9, 6, 2, 7, 10, 5, 1, 1, 8, 10, 5, 2, 7, 4, 6, 8, 3, 1, 7, 2, 6, 7, 5, 9, 7, 7, 7, 8, 6, 5, 10, 7, 8, 6, 9, 1, 6, 8, 4, 8, 4, 9, 4, 10, 9, 1, 9, 3, 3, 8, 8, 2, 1, 1, 1, 4, 9, 1, 9, 6, 6, 4, 2, 4, 5, 3, 10, 5, 8, 7, 10, 5, 1, 8, 5, 5, 4, 8, 3, 5, 10, 6, 6, 2, 6, 2, 5, 4, 2, 9, 7, 9, 6, 4, 2, 10, 3, 2, 3, 9, 2, 7, 4, 6, 8, 3, 10, 3, 2, 1, 8, 2, 8, 3, 5, 5, 8, 9, 3, 1, 8, 10, 10, 2, 3, 6, 3, 6, 9, 5, 9, 3, 8, 1, 3, 3, 6, 6, 3, 8, 4, 2, 3, 3, 2, 6, 8, 8, 6, 3, 10, 5, 10, 3, 1, 4, 9, 1, 6, 9, 6, 10, 9, 5, 10, 4, 1, 8, 6, 5, 6, 8, 4, 5, 5, 8, 10, 2, 4, 7, 8, 9, 4, 3, 2, 2, 8, 6, 4, 1, 3, 3, 10, 6, 4, 4, 7, 2, 8, 7, 6, 4, 3, 10, 5, 2, 9, 4, 2, 6, 3, 8, 1, 6, 2, 3, 6, 2, 5, 10, 10, 1, 4, 7, 5, 5, 4, 8, 5, 1, 9, 1, 4, 2, 8, 5, 6, 2, 8, 6, 10, 8, 1, 5, 7, 10, 5, 5, 7, 5, 5, 2, 6, 5, 4, 1, 1, 6, 4, 7, 1, 9, 6, 9, 8, 9, 4, 5, 2, 8, 8, 2, 10, 6, 1, 1, 9, 4, 4, 1, 2, 10, 2, 1, 4, 1, 3, 7, 7, 2, 1, 7, 8, 9, 3, 6, 3, 3, 2, 7, 3, 10, 7, 4, 5, 7, 6, 8, 3, 1, 5, 8, 5, 8, 10, 5, 9, 7, 10, 1, 7, 3, 4, 5, 8, 2, 2, 8, 6, 8, 2, 1, 10, 3, 9, 3, 1, 1, 4, 6, 2, 10, 5, 8, 10, 2, 4, 5, 1, 10, 5, 9, 3, 4, 1, 1, 2, 9, 2, 5, 5, 5, 7, 2, 8, 1, 2, 2, 8, 9, 10, 3, 1, 7, 8, 6, 1, 2, 10, 1, 10, 3, 4, 3, 6, 3, 5, 10, 1, 8, 5, 8, 5, 1, 3, 5, 1, 1, 2, 1, 5, 2, 8, 7, 7, 1, 5, 9, 8, 5, 8, 10, 10, 6, 10, 4, 1, 6, 9, 3, 5, 1, 4, 8, 5, 3, 9, 3, 5, 9, 2, 3, 8, 8, 7, 9, 2, 4, 3, 7, 3, 9, 7, 6, 1, 9, 8, 5, 2, 2, 9, 1, 10, 4, 6, 9, 4, 4, 8, 6, 5, 6, 10, 3, 4, 9, 5, 5, 5, 10, 5, 8, 9, 5, 7, 6, 5, 10, 9, 6, 5, 1, 8, 10, 2, 9, 4, 3, 2, 2, 4, 8, 8, 4, 5, 1, 6, 6, 3, 9, 7, 8, 10, 7, 9, 10, 5, 5, 7, 8, 8, 1, 1, 3, 6, 1, 8, 8, 8, 4, 9, 2, 9, 4, 3, 6, 5, 2, 9, 8, 6, 7, 8, 4, 2, 3, 6, 9, 9, 2, 9, 6, 4, 8, 9, 2, 3, 4, 1, 6, 8, 6, 6, 5, 4, 8, 3, 6, 7, 10, 8, 1, 8, 10, 9, 6, 7, 4, 8, 7, 4, 7, 9, 4, 3, 4, 10, 6, 5, 6, 9, 2, 1, 6, 6, 9, 4, 5, 1, 6, 9, 5, 8, 10, 9, 3, 2, 10, 2, 6, 10, 4, 2, 10, 1, 7, 8, 10, 2, 4, 10, 10, 8, 3, 2, 8, 6, 10, 3, 4, 7, 3, 10, 3, 9, 10, 2, 10, 1, 1, 3, 8, 8, 9, 2, 5, 10, 10, 4, 4, 8, 6, 10, 8, 1, 5, 4, 8, 2, 6, 5, 6, 7, 5, 3, 7, 8, 1, 5, 1, 8, 5, 3, 8, 1, 5, 5, 7, 8, 4, 6, 4, 6, 8, 9, 8, 1, 9, 3, 7, 1, 8, 7, 5, 8, 7, 6, 2, 8, 6, 1, 6, 9, 4, 9, 10, 6, 2, 6, 10, 2, 1, 6, 4, 2, 7, 4, 5, 3, 10, 7, 7, 5, 2, 7, 8, 6, 3, 10, 5, 10, 4, 5, 7, 2, 4, 1, 8, 8, 10, 4, 9, 6, 1, 2, 1, 5, 5, 4, 6, 9, 7, 8, 3, 7, 8, 7, 10, 8, 1, 9, 9, 7, 1, 1, 4, 4, 10, 7, 5, 1, 5, 2, 7, 5, 2, 5, 3, 5, 8, 2, 5, 6, 4, 1, 8, 9, 3, 10, 10, 2, 10, 7, 3, 10, 9, 9, 10, 2, 4, 1, 5, 5, 10, 3, 6, 7, 7, 9, 1, 1, 6, 1, 4, 3, 1, 7, 10, 4, 7, 3, 6, 5, 5, 7, 4, 6, 9, 5, 8, 9, 9, 10, 6, 4, 3, 7, 7, 2, 2, 8, 4, 1, 1, 1, 6, 3, 5, 5, 5, 7, 6, 9, 5, 3, 6, 3, 2, 5, 10, 2, 10, 10, 5, 5, 7, 8, 4, 3, 2, 10, 6, 4, 4, 1, 7, 1, 7, 4, 9, 1, 7, 3, 1, 6, 2, 3, 1, 9, 8, 9, 2, 1, 5, 4, 8, 7, 8, 10, 8, 7, 9, 9, 7, 8, 8, 4, 3, 4, 3, 6, 2, 7, 9, 7, 3, 1, 1, 8, 6, 7, 10, 2, 7, 5, 2, 6, 1, 1, 5, 1, 10, 1, 7, 4, 3, 10, 3, 5, 3, 3, 1, 8, 2, 4, 5, 4, 3, 7, 2, 4, 9, 4, 6, 8, 9, 10, 4, 10, 6, 10, 2, 4, 6, 2, 2, 8, 2, 9, 1, 7, 7, 2, 2, 6, 8, 2, 8, 9, 3, 3, 7, 5, 5, 9, 4, 1, 2, 7, 1, 2, 10, 5, 4, 2, 8, 8, 3, 9, 7, 10, 8, 10, 9, 1, 1, 2, 5, 8, 1, 8, 8, 1, 4, 4, 7, 5, 7, 10, 3, 2, 2, 6, 8, 8, 5, 6, 10, 4, 2, 2, 9, 10, 6, 10, 2, 8, 2, 3, 2, 3, 2, 6, 9, 10, 3, 9, 6, 6, 1, 2, 3, 5, 10, 2, 6, 1, 10, 7, 2, 1, 8, 10, 3, 5, 2, 5, 5, 2, 10, 5, 7, 1, 6, 3, 8, 7, 7, 2, 10, 6, 8, 8, 7, 1, 4, 3, 7, 4, 4, 9, 4, 6, 2, 7, 8, 1, 1, 6, 3, 6, 8, 9, 10, 6, 6, 8, 5, 8, 4, 1, 1, 7, 10, 3, 8, 4, 2, 5, 9, 3, 2, 4, 4, 1, 6, 1, 7, 4, 8, 9, 9, 3, 4, 1, 4, 10, 4, 6, 1, 9, 3, 9, 5, 3, 2, 3, 7, 5, 10, 9, 5, 1, 3, 10, 2, 8, 4, 3, 1, 7, 9, 6, 6, 9, 8, 3, 2, 8, 10, 6, 5, 3, 1, 1, 2, 8, 10, 7, 9, 4, 8, 6, 4, 3, 1, 10, 1, 4, 9, 10, 10, 1, 6, 9, 5, 1, 7, 1, 9, 3, 3, 1, 4, 3, 4, 4, 6, 8, 5, 7, 8, 2, 10, 10, 5, 4, 9, 8, 1, 1, 1, 10, 3, 10, 2, 4, 5, 4, 1, 9, 5, 3, 1, 5, 2, 8, 6, 10, 9, 1, 8, 8, 4, 2, 7, 1, 2, 4, 8, 1, 10, 8, 8, 7, 1, 3, 1, 7, 2, 9, 5, 10, 1, 5, 9, 9, 1, 4, 4, 9, 6, 7, 3, 6, 8, 9, 8, 9, 10, 6, 4, 4, 10, 4, 2, 10, 3, 4, 8, 9, 8, 9, 5, 6, 9, 2, 4, 8, 1, 9, 2, 10, 2, 1, 3, 3, 5, 9, 7, 9, 4, 3, 10, 2, 6, 10, 7, 4, 5, 6, 4, 8, 4, 2, 7, 1, 4, 7, 10, 1, 6, 9, 8, 10, 5, 9, 9, 3, 1, 9, 6, 6, 3, 3, 7, 7, 1, 1, 9, 10, 6, 9, 8, 3, 7, 3, 2, 3, 9, 2, 9, 7, 6, 6, 6, 7, 8, 10, 8, 10, 7, 6, 3, 3, 5, 2, 10, 1, 7, 8, 10, 9, 3, 10, 3, 10, 5, 6, 5, 5, 4, 1, 8, 9, 10, 6, 9, 4, 9, 5, 1, 6, 9, 3, 2, 5, 8, 5, 2, 7, 8, 1, 5, 9, 1, 8, 8, 5, 5, 8, 2, 10, 9, 1, 2, 10, 6, 2, 6, 4, 2, 9, 3, 10, 4, 1, 8, 7, 6, 1, 4, 4, 7, 7, 1, 9, 3, 9, 4, 2, 4, 3, 3, 1, 9, 2, 5, 3, 8, 9, 3, 10, 1, 6, 3, 3, 3, 9, 7, 6, 6, 9, 8, 7, 9, 8, 6, 9, 3, 5, 4, 7, 8, 1, 7, 2, 7, 7, 8, 3, 9, 2, 5, 8, 9, 1, 4, 8, 2, 6, 10, 1, 1, 2, 7, 6, 4, 6, 1, 3, 7, 9, 8, 1, 4, 7, 7, 10, 7, 2, 4, 2, 3, 2, 8, 1, 9, 5, 8, 6, 2, 6, 3, 5, 9, 5, 5, 2, 7, 4, 7, 1, 2, 7, 3, 10, 4, 3, 1, 2, 3, 4, 5, 6, 3, 7, 4, 7, 5, 3, 4, 7, 4, 10, 3, 4, 2, 5, 4, 4, 8, 8, 4, 7, 4, 9, 9, 1, 10, 3, 9, 8, 1, 1, 7, 5, 9, 3, 6, 2, 7, 8, 9, 4, 2, 4, 6, 10, 4, 9, 5, 4, 5, 4, 3, 9, 5, 4, 10, 1, 5, 1, 1, 2, 7, 7, 5, 10, 10, 3, 2, 7, 9, 8, 8, 6, 10, 8, 9, 2, 1, 2, 1, 4, 9, 7, 7, 3, 1, 5, 3, 7, 8, 3, 8, 9, 9, 6, 9, 6, 9, 7, 2, 10, 9, 7, 5, 5, 4, 3, 5, 7, 2, 5, 8, 10, 6, 2, 1, 3, 1, 9, 8, 4, 8, 10, 5, 10, 2, 2, 9, 8, 2, 6, 10, 2, 2, 3, 7, 1, 9, 1, 5, 2, 5, 2, 1, 5, 2, 1, 1, 1, 7, 2, 4, 7, 7, 8, 9, 9, 3, 5, 1, 4, 5, 2, 8, 4, 4, 8, 5, 3, 1, 2, 1, 9, 9, 1, 10, 4, 8, 2, 8, 3, 2, 7, 6, 10, 1, 10, 5, 5, 6, 2, 8, 10, 6, 6, 1, 9, 2, 6, 6, 7, 8, 8, 7, 6, 3, 6, 9, 4, 7, 5, 2, 4, 1, 10, 4, 6, 1, 7, 1, 2, 7, 10, 1, 4, 8, 5, 6, 9, 7, 4, 1, 6, 4, 9, 9, 5, 7, 6, 10, 6, 10, 1, 9, 1, 6, 3, 9, 10, 7, 6, 7, 2, 10, 5, 2, 7, 5, 8, 10, 7, 3, 3, 5, 10, 9, 9, 10, 5, 9, 5, 2, 4, 10, 2, 3, 8, 2, 2, 7, 2, 9, 7, 1, 6, 6, 6, 8, 4, 8, 6, 7, 1, 6, 5, 2, 2, 6, 7, 6, 4, 5, 10, 4, 2, 9, 5, 9, 9, 2, 7, 7, 8, 1, 8, 1, 10, 2, 8, 4, 9, 9, 5, 1, 7, 1, 1, 7, 4, 4, 10, 7, 6, 9, 7, 8, 8, 8, 8, 7, 7, 1, 9, 8, 6, 4, 1, 1, 4, 8, 5, 2, 1, 10, 10, 3, 4, 4, 7, 7, 9, 4, 6, 10, 3, 4, 9, 9, 1, 1, 2, 3, 9, 6, 9, 3, 5, 2, 8, 9, 10, 5, 3, 8, 6, 1, 7, 2, 10, 10, 2, 9, 5, 10, 9, 1, 10, 1, 1, 8, 7, 8, 8, 6, 1, 6, 7, 10, 7, 1, 3, 5, 2, 7, 1, 4, 7, 7, 8, 10, 10, 3, 10, 2, 5, 7, 5, 5, 2, 4, 2, 5, 4, 5, 2, 7, 9, 10, 1, 6, 2, 4, 6, 5, 3, 7, 9, 9, 8, 5, 2, 7, 10, 7, 10, 8, 6, 1, 5, 7, 5, 7, 3, 7, 1, 2, 9, 8, 9, 7, 2, 5, 2, 4, 6, 2, 9, 3, 9, 3, 4, 5, 10, 10, 8, 1, 2, 7, 4, 3, 2, 8, 4, 6, 6, 5, 9, 6, 8, 4, 8, 1, 9, 7, 1, 8, 8, 1, 3, 6, 3, 10, 2, 1, 4, 4, 1, 8, 3, 4, 6, 3, 10, 7, 4, 2, 5, 3, 10, 9, 7, 8, 8, 1, 1, 5, 9, 10, 10, 8, 8, 9, 5, 6, 7, 8, 1, 3, 5, 5, 10, 9, 9, 1, 7, 9, 1, 1, 6, 1, 8, 4, 3, 10, 1, 3, 10, 9, 3, 6, 5, 10, 5, 6, 5, 8, 8, 5, 6, 1, 4, 1, 6, 10, 2, 1, 8, 3, 1, 1, 8, 9, 3, 1, 7, 8, 3, 8, 1, 4, 8, 7, 7, 4, 1, 1, 8, 3, 10, 4, 2, 5, 1, 5, 2, 7, 7, 6, 10, 8, 3, 9, 1, 2, 2, 5, 1, 6, 5, 6, 4, 7, 10, 5, 8, 7, 10, 2, 2, 8, 5, 6, 6, 7, 7, 9, 7, 6, 9, 9, 7, 9, 2, 6, 1, 4, 9, 5, 3, 8, 6, 9, 1, 9, 3, 7, 2, 8, 5, 8, 8, 9, 6, 1, 7, 3, 1, 5, 4, 8, 2, 10, 3, 2, 9, 6, 7, 8, 2, 1, 4, 6, 9, 5, 7, 2, 10, 10, 9, 8, 6, 10, 7, 4, 7, 6, 2, 8, 9, 1, 7, 1, 5, 9, 8, 5, 1, 8, 9, 10, 1, 5, 3, 7, 9, 6, 10, 8, 1, 6, 8, 9, 9, 9, 10, 7, 3, 1, 4, 5, 8, 9, 1, 7, 6, 1, 6, 3, 4, 9, 2, 6, 10, 2, 2, 5, 7, 10, 5, 3, 10, 8, 4, 3, 3, 3, 10, 1, 9, 10, 8, 4, 6, 3, 3, 6, 9, 1, 3, 1, 8, 6, 3, 6, 2, 7, 7, 6, 10, 2, 9, 8, 5, 8, 2, 10, 7, 10, 2, 6, 10, 2, 9, 2, 9, 6, 1, 7, 3, 10, 5, 4, 2, 10, 3, 8, 10, 9, 3, 7, 1, 2, 10, 8, 9, 7, 9, 1, 7, 3, 7, 4, 5, 1, 1, 3, 10, 4, 6, 6, 4, 9, 9, 7, 1, 2, 10, 4, 6, 5, 6, 2, 7, 10, 10, 6, 7, 6, 7, 9, 3, 9, 1, 4, 1, 1, 9, 3, 10, 8, 4, 6, 6, 4, 7, 7, 10, 8, 3, 3, 8, 8, 3, 6, 8, 7, 7, 6, 9, 4, 9, 1, 3, 4, 5, 6, 9, 9, 9, 7, 10, 10, 10, 9, 9, 9, 9, 6, 10, 2, 9, 2, 2, 1, 4, 2, 10, 1, 2, 9, 6, 1, 1, 8, 1, 9, 4, 3, 7, 2, 5, 9, 1, 7, 5, 2, 2, 8, 9, 7, 8, 1, 10, 4, 7, 2, 3, 4, 2, 6, 9, 4, 10, 9, 7, 8, 10, 6, 5, 3, 2, 4, 10, 10, 10, 3, 3, 8, 10, 1, 6, 7, 8, 9, 1, 5, 9, 3, 8, 8, 6, 6, 1, 9, 5, 1, 6, 10, 10, 2, 6, 1, 10, 3, 7, 3, 1, 4, 8, 6, 5, 6, 1, 4, 9, 10, 5, 3, 1, 4, 5, 9, 1, 4, 6, 2, 5, 5, 1, 5, 4, 3, 7, 2, 6, 6, 3, 2, 5, 4, 9, 1, 1, 8, 9, 6, 5, 6, 5, 3, 5, 4, 5, 5, 10, 2, 10, 4, 9, 6, 3, 10, 8, 8, 9, 6, 10, 5, 6, 8, 6, 5, 5, 8, 1, 3, 3, 4, 10, 4, 6, 4, 8, 4, 3, 2, 4, 4, 5, 8, 6, 7, 1, 3, 7, 9, 10, 10, 3, 3, 5, 10, 9, 10, 2, 7, 6, 6, 3, 3, 10, 8, 9, 4, 2, 8, 2, 6, 2, 2, 5, 10, 6, 6, 2, 2, 4, 8, 9, 5, 8, 2, 7, 7, 7, 6, 4, 5, 8, 6, 3, 5, 6, 8, 1, 4, 1, 3, 5, 2, 10, 4, 4, 4, 2, 8, 7, 5, 1, 7, 1, 5, 10, 7, 3, 3, 1, 4, 6, 5, 10, 2, 9, 4, 10, 10, 1, 7, 7, 7, 1, 8, 1, 7, 3, 5, 5, 8, 4, 3, 3, 8, 2, 2, 2, 5, 7, 9, 4, 9, 8, 7, 2, 5, 7, 2, 9, 1, 3, 5, 1, 8, 7, 3, 9, 10, 7, 1, 8, 9, 4, 4, 7, 4, 7, 7, 6, 5, 2, 5, 8, 8, 1, 9, 5, 3, 2, 6, 3, 10, 10, 5, 1, 2, 3, 5, 7, 2, 10, 8, 3, 2, 7, 4, 10, 6, 9, 4, 10, 2, 5, 6, 8, 2, 1, 8, 10, 7, 9, 3, 10, 7, 6, 6, 6, 1, 7, 4, 5, 3, 3, 4, 10, 8, 9, 8, 6, 5, 7, 6, 7, 3, 4, 8, 5, 3, 3, 7, 3, 4, 8, 6, 2, 6, 8, 5, 5, 2, 4, 4, 6, 3, 4, 8, 8, 6, 4, 3, 10, 3, 10, 1, 5, 7, 8, 9, 5, 7, 7, 4, 10, 7, 8, 2, 5, 5, 8, 9, 2, 2, 10, 9, 5, 9, 2, 7, 9, 9, 10, 3, 3, 3, 5, 8, 4, 6, 6, 7, 3, 8, 9, 5, 3, 7, 3, 6, 5, 8, 9, 1, 4, 3, 8, 5, 4, 4, 4, 9, 5, 2, 7, 2, 8, 6, 7, 1, 4, 10, 6, 3, 8, 1, 10, 9, 7, 2, 3, 1, 8, 10, 5, 1, 7, 6, 9, 2, 3, 9, 1, 7, 7, 7, 9, 10, 10, 4, 8, 7, 1, 4, 10, 9, 5, 8, 3, 7, 8, 4, 3, 3, 8, 1, 6, 6, 6, 10, 3, 4, 10, 9, 4, 1, 6, 8, 7, 6, 4, 10, 4, 3, 7, 10, 7, 9, 8, 1, 6, 2, 1, 5, 9, 7, 5, 2, 3, 4, 4, 4, 6, 10, 1, 10, 2, 3, 9, 7, 1, 5, 2, 8, 4, 3, 2, 2, 7, 5, 3, 1, 2, 9, 8, 6, 4, 8, 2, 8, 3, 6, 10, 2, 3, 6, 5, 6, 10, 6, 4, 4, 3, 2, 4, 9, 10, 4, 4, 8, 8, 3, 2, 1, 3, 8, 7, 6, 4, 6, 4, 10, 7, 5, 6, 3, 1, 7, 9, 7, 3, 1, 10, 8, 2, 4, 10, 2, 1, 1, 5, 10, 5, 4, 9, 9, 3, 9, 3, 2, 8, 2, 6, 5, 10, 2, 9, 9, 2, 7, 8, 8, 1, 6, 1, 10, 4, 2, 6, 9, 5, 4, 8, 1, 6, 10, 3, 1, 7, 8, 10, 3, 8, 3, 10, 5, 9, 7, 9, 5, 4, 6, 4, 3, 10, 9, 5, 2, 6, 6, 2, 9, 8, 10, 8, 2, 1, 4, 1, 2, 4, 6, 5, 1, 3, 4, 1, 5, 8, 1, 5, 9, 5, 5, 7, 9, 7, 7, 5, 9, 9, 9, 10, 6, 5, 5, 8, 6, 7, 10, 5, 7, 9, 3, 5, 2, 6, 6, 3, 6, 9, 1, 7, 5, 2, 1, 1, 3, 3, 7, 10, 6, 10, 8, 5, 9, 4, 3, 5, 5, 6, 3, 10, 2, 6, 2, 2, 5, 10, 1, 7, 8, 4, 5, 9, 2, 3, 4, 1, 4, 5, 3, 4, 6, 5, 4, 8, 1, 4, 5, 7, 10, 10, 5, 6, 8, 10, 2, 3, 7, 6, 5, 8, 9, 2, 6, 5, 9, 3, 10, 7, 6, 3, 8, 6, 10, 10, 3, 9, 2, 2, 5, 1, 5, 2, 7, 4, 2, 6, 7, 3, 3, 9, 7, 2, 3, 8, 1, 1, 10, 3, 7, 10, 3, 6, 2, 5, 2, 2, 10, 2, 8, 2, 10, 3, 4, 8, 7, 3, 3, 8, 5, 6, 1, 8, 4, 6, 8, 4, 9, 4, 9, 3, 9, 5, 3, 2, 9, 3, 7, 9, 5, 10, 2, 5, 3, 3, 10, 6, 4, 4, 8, 3, 8, 10, 6, 7, 9, 7, 8, 9, 1, 6, 9, 8, 9, 4, 2, 5, 4, 2, 4, 8, 3, 3, 4, 2, 1, 4, 6, 7, 8, 8, 7, 8, 8, 9, 6, 5, 6, 2, 5, 4, 2, 4, 7, 4, 1, 5, 10, 6, 4, 1, 10, 2, 2, 1, 3, 6, 3, 1, 1, 7, 3, 4, 5, 4, 8, 2, 8, 4, 1, 10, 4, 7, 1, 5, 3, 7, 10, 3, 10, 3, 5, 7, 6, 5, 5, 7, 2, 9, 6, 5, 5, 6, 2, 7, 1, 8, 1, 5, 9, 5, 6, 4, 7, 7, 7, 2, 5, 10, 6, 10, 3, 8, 6, 8, 1, 5, 8, 2, 6, 6, 7, 3, 7, 5, 2, 10, 6, 1, 4, 2, 1, 6, 5, 10, 8, 4, 8, 5, 8, 8, 10, 1, 1, 10, 9, 2, 3, 5, 1, 10, 8, 10, 4, 5, 6, 7, 8, 5, 1, 9, 8, 9, 9, 2, 6, 3, 9, 9, 4, 5, 10, 3, 7, 5, 10, 8, 9, 4, 7, 8, 5, 5, 1, 3, 9, 4, 4, 9, 2, 9, 9, 5, 8, 5, 2, 10, 7, 5, 8, 3, 9, 6, 3, 1, 9, 2, 9, 10, 6, 5, 6, 1, 3, 6, 8, 9, 9, 7, 7, 9, 7, 6, 9, 5, 6, 5, 3, 1, 2, 9, 9, 10, 3, 9, 8, 2, 4, 6, 9, 9, 2, 9, 1, 3, 3, 7, 8, 9, 7, 1, 9, 5, 1, 7, 2, 9, 4, 3, 3, 9, 8, 8, 1, 8, 9, 1, 4, 6, 4, 9, 1, 5, 9, 5, 10, 7, 9, 3, 6, 4, 4, 10, 8, 8, 7, 7, 2, 6, 2, 5, 6, 9, 8, 5, 8, 8, 8, 4, 6, 9, 9, 8, 1, 3, 7, 2, 4, 3, 8, 7, 10, 2, 3, 4, 1, 7, 7, 10, 2, 4, 9, 6, 6, 3, 9, 5, 8, 10, 2, 1, 10, 3, 5, 3, 4, 8, 5, 6, 10, 4, 10, 6, 8, 3, 10, 6, 2, 2, 10, 9, 5, 3, 9, 7, 9, 9, 1, 5, 5, 9, 3, 9, 3, 2, 9, 6, 9, 2, 2, 9, 3, 6, 2, 8, 6, 8, 3, 5, 5, 2, 7, 1, 3, 1, 6, 7, 2, 10, 6, 8, 4, 2, 4, 6, 4, 1, 3, 10, 5, 5, 6, 4, 10, 6, 9, 4, 5, 6, 5, 4, 6, 10, 2, 3, 4, 3, 2, 4, 2, 6, 6, 3, 3, 3, 2, 6, 1, 9, 3, 7, 1, 2, 4, 9, 8, 1, 1, 4, 10, 6, 4, 5, 10, 8, 3, 6, 7, 5, 6, 8, 8, 1, 10, 9, 8, 1, 2, 3, 8, 8, 7, 3, 2, 8, 3, 9, 2, 2, 6, 9, 2, 8, 7, 1, 3, 1, 6, 10, 2, 8, 7, 7, 9, 9, 2, 9, 7, 8, 10, 8, 9, 7, 9, 8, 5, 1, 4, 2, 4, 3, 5, 1, 8, 5, 2, 1, 3, 9, 8, 1, 6, 8, 8, 9, 3, 2, 2, 3, 6, 1, 6, 4, 9, 9, 2, 4, 2, 6, 5, 4, 6, 4, 10, 7, 8, 8, 10, 5, 4, 8, 8, 1, 9, 10, 6, 6, 10, 6, 1, 7, 3, 9, 10, 4, 2, 1, 10, 9, 3, 2, 7, 4, 4, 2, 1, 8, 3, 6, 1, 4, 6, 4, 8, 3, 6, 1, 1, 1, 1, 5, 10, 8, 4, 2, 4, 5, 9, 7, 9, 5, 3, 4, 10, 7, 1, 9, 8, 2, 5, 3, 4, 1, 3, 9, 4, 6, 9, 7, 6, 7, 8, 2, 7, 7, 8, 9, 4, 8, 4, 9, 4, 5, 4, 9, 10, 7, 2, 3, 5, 2, 3, 10, 10, 10, 6, 4, 7, 9, 2, 8, 1, 8, 7, 4, 2, 10, 5, 9, 2, 2, 5, 4, 1, 4, 5, 7, 4, 7, 4, 9, 3, 9, 1, 7, 7, 6, 7, 3, 4, 1, 3, 5, 5, 3, 8, 1, 8, 8, 2, 5, 5, 5, 5, 4, 1, 8, 6, 8, 7, 2, 8, 7, 5, 7, 5, 7, 6, 3, 4, 8, 4, 4, 7, 5, 7, 9, 2, 4, 4, 1, 10, 5, 10, 1, 6, 7, 10, 8, 8, 3, 5, 10, 7, 3, 10, 4, 3, 4, 9, 2, 10, 3, 6, 9, 7, 2, 4, 9, 8, 10, 4, 2, 5, 7, 3, 1, 1, 4, 4, 3, 9, 10, 1, 10, 6, 1, 5, 10, 4, 8, 8, 6, 4, 9, 3, 5, 8, 2, 4, 4, 5, 4, 2, 5, 3, 8, 5, 8, 6, 10, 2, 2, 8, 3, 1, 10, 4, 1, 5, 9, 4, 3, 2, 3, 5, 6, 8, 8, 5, 5, 1, 1, 6, 3, 10, 3, 7, 7, 10, 7, 2, 7, 3, 2, 8, 9, 3, 10, 9, 4, 6, 3, 6, 6, 4, 1, 8, 4, 8, 4, 10, 7, 1, 2, 4, 6, 5, 1, 7, 5, 9, 3, 7, 5, 9, 2, 10, 10, 6, 2, 3, 9, 9, 9, 2, 10, 8, 9, 8, 3, 7, 1, 5, 2, 2, 5, 3, 3, 9, 1, 6, 8, 7, 4, 7, 5, 9, 10, 6, 9, 5, 4, 4, 1, 1, 10, 3, 8, 8, 3, 6, 9, 6, 6, 6, 7, 10, 7, 10, 10, 8, 6, 8, 3, 5, 9, 2, 4, 7, 1, 1, 8, 5, 5, 3, 4, 9, 10, 5, 2, 1, 10, 10, 4, 7, 4, 8, 7, 8, 10, 9, 9, 8, 10, 10, 10, 10, 10, 6, 4, 1, 5, 5, 2, 1, 3, 3, 4, 7, 6, 1, 10, 8, 3, 4, 3, 5, 1, 7, 2, 1, 5, 9, 3, 5, 2, 3, 1, 2, 2, 6, 10, 1, 10, 3, 2, 2, 3, 4, 1, 8, 6, 10, 9, 5, 10, 6, 9, 4, 6, 7, 2, 1, 2, 4, 2, 9, 6, 4, 7, 10, 2, 10, 4, 2, 4, 10, 5, 8, 3, 5, 9, 7, 1, 6, 5, 3, 2, 7, 4, 7, 5, 9, 9, 10, 10, 1, 4, 8, 1, 1, 6, 2, 9, 5, 3, 1, 7, 5, 3, 4, 3, 1, 3, 9, 10, 2, 8, 3, 1, 9, 5, 4, 7, 9, 10, 8, 3, 7, 10, 3, 7, 1, 5, 1, 1, 8, 6, 6, 8, 9, 9, 2, 3, 4, 2, 6, 4, 3, 10, 1, 3, 8, 8, 5, 6, 4, 2, 4, 9, 5, 10, 1, 1, 1, 9, 4, 2, 4, 4, 1, 9, 3, 9, 1, 1, 5, 2, 9, 10, 8, 1, 9, 3, 10, 2, 7, 7, 10, 8, 1, 8, 2, 2, 9, 9, 2, 9, 5, 5, 7, 9, 2, 4, 10, 5, 7, 6, 1, 6, 7, 9, 6, 9, 7, 1, 4, 3, 1, 4, 9, 8, 6, 4, 9, 9, 1, 9, 1, 10, 4, 4, 5, 3, 4, 1, 1, 5, 1, 10, 7, 9, 8, 4, 2, 9, 9, 8, 8, 4, 3, 5, 9, 5, 6, 7, 9, 7, 10, 6, 8, 10, 10, 2, 5, 6, 10, 1, 9, 7, 7, 9, 4, 3, 9, 1, 8, 4, 4, 7, 7, 3, 5, 8, 2, 8, 2, 2, 5, 8, 9, 9, 7, 1, 4, 4, 5, 8, 6, 7, 1, 8, 2, 10, 6, 8, 1, 4, 9, 10, 2, 8, 6, 2, 10, 1, 4, 9, 7, 7, 6, 5, 1, 10, 9, 9, 5, 6, 2, 4, 1, 5, 3, 2, 2, 3, 2, 5, 1, 4, 9, 10, 10, 1, 1, 4, 4, 10, 6, 7, 3, 7, 2, 1, 9, 5, 10, 5, 3, 8, 5, 3, 8, 7, 8, 3, 6, 4, 4, 10, 2, 9, 10, 10, 2, 7, 4, 8, 1, 4, 7, 7, 6, 8, 2, 8, 9, 10, 6, 4, 2, 4, 1, 9, 5, 8, 4, 8, 8, 7, 5, 3, 8, 1, 4, 5, 9, 2, 8, 7, 6, 7, 1, 8, 7, 6, 3, 8, 1, 10, 8, 1, 9, 6, 10, 7, 8, 10, 6, 3, 5, 6, 9, 8, 1, 1, 8, 1, 6, 7, 2, 1, 8, 3, 7, 1, 10, 10, 9, 3, 5, 1, 10, 10, 10, 4, 8, 4, 3, 5, 7, 4, 10, 4, 10, 1, 4, 6, 5, 1, 7, 2, 2, 5, 6, 10, 6, 10, 5, 1, 9, 1, 7, 1, 7, 8, 9, 10, 5, 6, 2, 9, 8, 2, 7, 4, 9, 9, 4, 2, 3, 1, 3, 3, 2, 1, 3, 4, 4, 5, 5, 7, 9, 3, 8, 5, 9, 10, 9, 1, 2, 5, 1, 8, 3, 9, 10, 2, 10, 10, 3, 10, 8, 6, 2, 10, 4, 1, 7, 5, 4, 1, 1, 3, 1, 8, 6, 1, 7, 10, 4, 10, 5, 6, 9, 2, 4, 2, 6, 1, 4, 8, 7, 3, 3, 3, 4, 1, 8, 10, 10, 8, 8, 9, 1, 2, 5, 4, 1, 1, 10, 10, 1, 6, 1, 4, 10, 5, 5, 7, 8, 3, 7, 1, 3, 3, 1, 8, 10, 9, 6, 6, 2, 9, 9, 5, 6, 3, 6, 9, 1, 8, 10, 5, 2, 4, 9, 7, 1, 3, 5, 5, 1, 2, 8, 9, 9, 6, 6, 3, 1, 8, 5, 2, 2, 8, 6, 5, 4, 7, 1, 1, 1, 7, 7, 3, 2, 10, 5, 2, 4, 3, 7, 9, 3, 7, 3, 2, 5, 5, 2, 9, 7, 5, 1, 1, 8, 9, 2, 2, 3, 6, 5, 3, 1, 7, 4, 9, 3, 8, 10, 1, 4, 2, 10, 10, 2, 5, 1, 3, 5, 3, 7, 3, 8, 9, 1, 6, 2, 8, 7, 2, 5, 6, 9, 7, 5, 3, 8, 8, 9, 4, 5, 9, 9, 5, 8, 5, 9, 4, 10, 7, 4, 8, 7, 5, 6, 9, 10, 5, 2, 8, 7, 4, 8, 4, 9, 8, 7, 1, 3, 5, 9, 8, 6, 5, 7, 7, 7, 2, 4, 4, 8, 4, 4, 2, 4, 4, 1, 4, 10, 4, 9, 5, 9, 5, 5, 8, 8, 4, 2, 5, 9, 2, 1, 9, 6, 2, 6, 6, 7, 1, 3, 8, 1, 8, 1, 7, 7, 7, 9, 3, 7, 3, 8, 5, 5, 3, 8, 9, 9, 9, 9, 2, 8, 4, 3, 9, 8, 6, 1, 6, 10, 6, 1, 10, 10, 4, 7, 2, 3, 8, 6, 8, 1, 7, 6, 1, 4, 9, 9, 4, 8, 8, 8, 10, 7, 10, 3, 10, 7, 4, 8, 2, 2, 1, 6, 8, 3, 1, 6, 8, 4, 5, 3, 4, 6, 10, 1, 5, 10, 10, 4, 3, 6, 7, 1, 2, 9, 10, 1, 4, 4, 7, 8, 9, 7, 10, 5, 5, 5, 6, 2, 6, 7, 6, 9, 1, 1, 7, 1, 10, 5, 2, 10, 5, 5, 3, 1, 2, 8, 3, 7, 10, 1, 8, 9, 7, 2, 10, 6, 9, 10, 9, 3, 2, 1, 7, 1, 8, 2, 7, 5, 10, 8, 10, 5, 8, 3, 10, 10, 6, 6, 9, 10, 3, 5, 5, 8, 2, 9, 8, 7, 8, 3, 2, 9, 2, 10, 1, 1, 10, 6, 9, 10, 6, 1, 9, 7, 4, 6, 3, 2, 6, 2, 3, 4, 10, 10, 9, 5, 3, 5, 7, 7, 9, 3, 8, 10, 6, 6, 6, 10, 1, 2, 6, 2, 2, 6, 6, 8, 1, 3, 7, 3, 2, 4, 5, 3, 8, 9, 5, 8, 2, 2, 3, 5, 1, 3, 10, 10, 10, 8, 2, 1, 10, 9, 7, 3, 4, 9, 10, 10, 3, 3, 8, 5, 2, 3, 8, 1, 10, 1, 8, 2, 9, 5, 9, 1, 10, 10, 8, 1, 5, 3, 4, 4, 2, 10, 4, 8, 5, 9, 4, 8, 9, 9, 8, 3, 7, 7, 7, 5, 3, 6, 9, 6, 9, 1, 5, 5, 4, 5, 7, 2, 1, 2, 10, 7, 10, 9, 10, 6, 5, 2, 5, 10, 3, 9, 1, 3, 8, 4, 2, 9, 7, 4, 2, 2, 7, 2, 3, 7, 3, 3, 8, 8, 2, 4, 2, 2, 2, 8, 5, 9, 9, 9, 4, 10, 10, 4, 3, 9, 4, 3, 1, 5, 6, 8, 8, 6, 4, 1, 6, 1, 10, 9, 6, 4, 7, 10, 4, 7, 5, 8, 8, 3, 2, 7, 6, 3, 8, 7, 6, 2, 7, 4, 3, 4, 5, 4, 1, 2, 1, 3, 9, 3, 2, 4, 10, 4, 1, 10, 9, 4, 10, 2, 5, 10, 7, 8, 10, 10, 2, 7, 1, 7, 6, 4, 4, 3, 3, 10, 7, 6, 2, 5, 3, 10, 8, 9, 4, 10, 4, 6, 8, 3, 7, 10, 10, 4, 8, 7, 10, 5, 4, 10, 1, 7, 4, 7, 6, 2, 7, 4, 3, 10, 7, 5, 5, 7, 5, 1, 9, 4, 6, 3, 2, 1, 5, 6, 8, 5, 8, 9, 8, 1, 4, 8, 4, 6, 2, 8, 9, 1, 2, 7, 7, 3, 7, 5, 4, 3, 7, 1, 2, 5, 5, 5, 6, 5, 6, 2, 10, 4, 3, 1, 9, 7, 9, 1, 2, 6, 4, 1, 5, 7, 1, 8, 6, 9, 7, 1, 2, 8, 7, 4, 10, 10, 3, 6, 7, 3, 1, 4, 9, 9, 7, 1, 3, 1, 10, 5, 3, 9, 5, 4, 8, 6, 8, 6, 2, 9, 2, 1, 8, 7, 4, 8, 1, 2, 3, 8, 7, 6, 9, 7, 9, 9, 1, 3, 6, 9, 2, 8, 4, 7, 7, 4, 7, 3, 3, 7, 1, 9, 7, 2, 1, 4, 9, 7, 2, 3, 10, 7, 10, 2, 9, 9, 7, 6, 3, 9, 9, 1, 8, 9, 10, 1, 2, 5, 8, 3, 3, 9, 10, 1, 6, 2, 3, 7, 9, 6, 1, 10, 6, 4, 3, 5, 3, 1, 5, 9, 1, 2, 6, 4, 6, 9, 6, 2, 1, 10, 2, 10, 8, 10, 5, 3, 8, 2, 7, 10, 7, 7, 1, 5, 8, 8, 3, 1, 4, 5, 10, 2, 3, 3, 8, 6, 3, 2, 1, 7, 10, 3, 6, 4, 9, 4, 8, 6, 9, 2, 1, 4, 1, 9, 1, 3, 8, 3, 2, 3, 2, 10, 4, 1, 8, 8, 8, 6, 9, 5, 10, 10, 6, 1, 9, 1, 4, 3, 9, 6, 8, 8, 10, 7, 1, 1, 3, 4, 8, 6, 1, 8, 4, 1, 1, 5, 8, 1, 2, 2, 10, 8, 1, 6, 8, 9, 5, 6, 5, 10, 10, 3, 1, 4, 2, 2, 6, 5, 4, 1, 1, 4, 3, 1, 6, 6, 4, 8, 5, 9, 9, 9, 8, 8, 1, 4, 7, 4, 6, 7, 6, 5, 6, 4, 7, 4, 1, 1, 1, 3, 5, 2, 1, 9, 5, 1, 7, 8, 4, 5, 2, 9, 5, 1, 6, 1, 10, 8, 2, 6, 5, 1, 8, 1, 5, 3, 4, 3, 3, 4, 10, 6, 7, 7, 5, 10, 5, 5, 6, 2, 2, 4, 3, 1, 6, 5, 6, 9, 6, 8, 8, 5, 5, 4, 2, 2, 1, 8, 3, 10, 2, 4, 5, 10, 3, 6, 5, 4, 1, 6, 6, 4, 10, 7, 8, 5, 6, 8, 2, 1, 1, 8, 8, 8, 2, 1, 1, 5, 4, 5, 3, 1, 10, 3, 4, 8, 10, 1, 2, 10, 2, 1, 10, 5, 4, 2, 8, 9, 3, 6, 5, 8, 5, 10, 4, 4, 4, 8, 1, 9, 10, 9, 7, 2, 4, 10, 3, 3, 1, 5, 5, 2, 6, 1, 1, 3, 2, 10, 6, 6, 1, 8, 2, 4, 8, 7, 9, 8, 5, 2, 7, 7, 3, 2, 4, 6, 2, 3, 4, 3, 7, 4, 6, 5, 7, 3, 6, 4, 7, 7, 5, 2, 2, 5, 6, 6, 3, 3, 10, 2, 2, 4, 2, 7, 9, 4, 8, 8, 8, 8, 6, 8, 4, 2, 1, 7, 9, 9, 6, 9, 7, 8, 1, 1, 10, 9, 1, 2, 6, 4, 1, 6, 1, 6, 9, 7, 5, 8, 8, 10, 4, 7, 7, 10, 3, 1, 9, 10, 4, 2, 9, 7, 5, 9, 4, 2, 9, 7, 7, 7, 2, 8, 4, 6, 5, 5, 9, 8, 4, 10, 5, 7, 10, 7, 7, 9, 2, 8, 1, 1, 8, 3, 10, 7, 7, 3, 8, 8, 3, 2, 6, 9, 2, 3, 2, 1, 10, 2, 6, 5, 3, 4, 10, 3, 3, 1, 3, 5, 10, 5, 2, 10, 1, 7, 8, 5, 4, 10, 6, 9, 8, 5, 1, 8, 8, 7, 7, 9, 8, 8, 7, 4, 8, 7, 8, 10, 3, 7, 1, 7, 9, 8, 6, 10, 3, 8, 8, 6, 7, 1, 4, 10, 7, 4, 4, 8, 1, 5, 8, 6, 5, 3, 4, 10, 1, 3, 1, 5, 8, 9, 6, 8, 2, 1, 6, 3, 10, 9, 6, 6, 1, 6, 9, 3, 2, 10, 6, 10, 3, 8, 7, 7, 2, 10, 9, 4, 2, 2, 2, 4, 4, 5, 2, 1, 5, 9, 3, 6, 7, 9, 5, 6, 9, 7, 8, 3, 3, 9, 6, 9, 3, 7, 9, 6, 9, 4, 8, 2, 1, 9, 9, 3, 4, 9, 7, 3, 6, 7, 5, 8, 8, 3, 10, 5, 7, 3, 2, 4, 4, 10, 6, 4, 4, 3, 4, 8, 3, 7, 9, 1, 10, 1, 10, 8, 6, 1, 5, 9, 6, 4, 8, 10, 10, 10, 2, 2, 3, 10, 1, 1, 5, 6, 8, 7, 4, 7, 9, 4, 7, 2, 6, 9, 5, 6, 4, 8, 3, 7, 5, 2, 6, 3, 5, 3, 9, 2, 8, 6, 3, 8, 6, 9, 7, 8, 3, 2, 1, 8, 10, 5, 10, 5, 10, 3, 3, 4, 5, 7, 6, 1, 3, 7, 6, 7, 3, 4, 1, 7, 2, 8, 1, 10, 9, 8, 9, 8, 6, 3, 9, 3, 1, 2, 6, 3, 8, 8, 2, 10, 2, 4, 7, 7, 9, 3, 5, 10, 3, 9, 10, 8, 8, 4, 10, 8, 9, 3, 5, 1, 5, 9, 7, 2, 8, 9, 6, 4, 7, 4, 9, 5, 8, 5, 5, 9, 1, 10, 8, 1, 8, 5, 5, 2, 1, 1, 9, 8, 3, 5, 2, 1, 5, 1, 5, 10, 1, 5, 2, 4, 10, 9, 1, 5, 2, 6, 4, 3, 7, 8, 10, 3, 7, 6, 1, 2, 9, 10, 3, 8, 2, 9, 5, 1, 3, 10, 3, 9, 1, 1, 3, 2, 9, 7, 4, 7, 10, 9, 9, 6, 10, 10, 10, 7, 3, 2, 10, 7, 6, 5, 7, 10, 10, 1, 2, 3, 9, 1, 1, 8, 4, 8, 5, 10, 4, 9, 4, 1, 2, 6, 7, 9, 10, 9, 9, 5, 3, 2, 3, 2, 8, 1, 1, 4, 8, 3, 7, 9, 9, 2, 9, 5, 8, 9, 7, 8, 6, 3, 9, 10, 1, 8, 3, 7, 4, 8, 2, 1, 8, 7, 1, 7, 1, 5, 7, 9, 3, 10, 6, 1, 7, 6, 6, 10, 8, 7, 1, 8, 2, 2, 9, 6, 4, 2, 10, 4, 7, 5, 10, 2, 8, 2, 5, 3, 4, 5, 9, 4, 8, 7, 8, 5, 5, 7, 9, 10, 9, 7, 6, 8, 10, 9, 10, 2, 5, 10, 1, 7, 3, 4, 7, 9, 8, 5, 3, 3, 2, 10, 1, 3, 7, 1, 9, 1, 2, 4, 3, 7, 1, 8, 7, 1, 5, 10, 9, 2, 7, 9, 4, 4, 7, 10, 3, 2, 1, 6, 6, 8, 1, 10, 2, 3, 2, 2, 2, 4, 4, 2, 3, 10, 8, 9, 1, 4, 6, 4, 1, 4, 1, 2, 6, 10, 8, 9, 2, 8, 9, 9, 3, 7, 10, 10, 4, 10, 3, 5, 5, 7, 1, 5, 3, 5, 10, 3, 5, 10, 5, 4, 1, 2, 6, 5, 9, 9, 2, 1, 3, 10, 5, 8, 3, 3, 5, 6, 10, 8, 8, 5, 6, 2, 8, 5, 9, 5, 9, 9, 1, 6, 4, 9, 4, 8, 3, 4, 8, 9, 8, 2, 7, 4, 7, 10, 5, 7, 10, 7, 7, 9, 5, 9, 3, 6, 2, 5, 6, 8, 4, 1, 1, 2, 8, 9, 6, 2, 1, 9, 1, 5, 1, 10, 3, 5, 8, 8, 9, 3, 6, 3, 4, 3, 7, 9, 6, 6, 5, 7, 5, 7, 8, 1, 8, 7, 1, 5, 10, 10, 10, 10, 10, 8, 4, 8, 1, 7, 1, 9, 10, 4, 2, 10, 7, 5, 1, 5, 1, 10, 9, 10, 10, 8, 7, 3, 6, 1, 5, 10, 7, 2, 10, 7, 3, 8, 2, 1, 1, 3, 3, 8, 9, 8, 7, 3, 4, 9, 10, 7, 6, 8, 1, 9, 9, 8, 7, 1, 4, 3, 1, 10, 4, 4, 6, 6, 3, 10, 6, 4, 6, 3, 10, 6, 1, 5, 6, 4, 2, 8, 4, 6, 3, 2, 8, 2, 8, 6, 8, 8, 1, 2, 3, 4, 6, 2, 3, 7, 3, 8, 2, 5, 1, 9, 5, 9, 9, 7, 6, 9, 10, 5, 1, 5, 10, 9, 5, 9, 10, 9, 8, 7, 5, 10, 2, 10, 5, 8, 8, 5, 10, 8, 2, 5, 3, 7, 10, 3, 6, 4, 6, 8, 7, 2, 9, 2, 2, 10, 6, 4, 4, 3, 3, 6, 8, 4, 2, 7, 8, 3, 2, 4, 5, 5, 9, 6, 1, 7, 2, 1, 3, 5, 2, 1, 10, 1, 2, 6, 5, 7, 1, 7, 4, 3, 7, 4, 6, 7, 9, 7, 6, 4, 1, 3, 7, 9, 6, 7, 2, 10, 6, 10, 6, 5, 4, 4, 6, 6, 8, 6, 8, 1, 1, 6, 3, 4, 9, 8, 5, 6, 4, 7, 5, 3, 9, 4, 9, 5, 3, 4, 6, 3, 8, 1, 8, 2, 6, 10, 2, 2, 8, 5, 5, 4, 1, 6, 5, 10, 3, 7, 6, 4, 10, 4, 7, 2, 9, 9, 7, 3, 10, 9, 7, 4, 10, 10, 2, 9, 3, 8, 9, 3, 5, 4, 4, 8, 3, 4, 9, 6, 8, 8, 9, 6, 10, 6, 4, 9, 3, 3, 10, 2, 1, 8, 4, 3, 5, 5, 7, 10, 1, 4, 7, 9, 7, 9, 10, 10, 5, 4, 5, 7, 8, 3, 2, 7, 8, 4, 10, 3, 1, 3, 8, 7, 9, 8, 7, 4, 8, 6, 2, 7, 3, 9, 3, 9, 10, 5, 9, 9, 3, 9, 7, 3, 4, 8, 8, 4, 3, 2, 1, 2, 9, 4, 2, 6, 4, 9, 9, 7, 4, 1, 2, 6, 6, 1, 9, 1, 6, 5, 1, 9, 7, 2, 9, 8, 2, 1, 1, 7, 3, 3, 5, 5, 10, 4, 4, 4, 6, 2, 3, 5, 6, 5, 1, 5, 10, 9, 1, 6, 6, 5, 5, 4, 9, 4, 8, 10, 2, 6, 6, 7, 4, 1, 7, 8, 3, 5, 5, 1, 9, 5, 4, 7, 1, 7, 10, 4, 9, 2, 1, 9, 6, 7, 7, 4, 3, 3, 4, 4, 2, 7, 10, 5, 1, 3, 9, 6, 8, 10, 8, 1, 10, 6, 4, 8, 4, 10, 8, 1, 1, 7, 10, 4, 8, 10, 9, 7, 5, 7, 5, 4, 8, 10, 10, 9, 3, 7, 3, 3, 4, 4, 8, 6, 8, 4, 9, 2, 4, 6, 4, 1, 9, 4, 8, 4, 3, 2, 2, 10, 9, 9, 6, 5, 4, 8, 6, 10, 3, 3, 7, 2, 8, 6, 4, 6, 4, 3, 4, 9, 8, 9, 4, 9, 2, 1, 8, 10, 3, 10, 1, 9, 5, 7, 5, 9, 7, 6, 5, 4, 9, 9, 4, 3, 4, 3, 4, 8, 7, 1, 2, 6, 5, 4, 1, 10, 7, 4, 7, 9, 1, 10, 2, 4, 6, 9, 1, 3, 6, 6, 7, 8, 6, 1, 8, 1, 2, 5, 4, 2, 7, 1, 4, 4, 8, 3, 9, 5, 4, 2, 10, 3, 2, 7, 9, 2, 5, 10, 6, 7, 1, 7, 2, 7, 4, 1, 8, 7, 6, 4, 3, 2, 7, 7, 7, 9, 1, 2, 7, 2, 5, 2, 4, 2, 6, 6, 9, 2, 3, 10, 7, 9, 9, 6, 10, 4, 5, 8, 3, 1, 1, 4, 2, 9, 7, 1, 10, 1, 3, 10, 8, 6, 6, 10, 8, 9, 10, 9, 4, 6, 9, 10, 1, 7, 5, 2, 1, 7, 8, 4, 2, 1, 9, 5, 5, 3, 10, 8, 1, 5, 10, 9, 6, 1, 10, 4, 4, 10, 2, 4, 3, 2, 8, 8, 2, 3, 5, 7, 1, 7, 5, 5, 5, 8, 8, 4, 10, 4, 7, 5, 3, 8, 2, 1, 7, 3, 4, 7, 8, 10, 10, 5, 8, 10, 3, 6, 10, 8, 3, 3, 6, 3, 8, 4, 3, 2, 8, 7, 8, 2, 8, 8, 8, 9, 6, 8, 3, 1, 10, 2, 6, 7, 10, 3, 5, 3, 2, 2, 10, 4, 10, 10, 7, 9, 5, 1, 6, 1, 6, 3, 7, 6, 9, 7, 9, 10, 9, 3, 4, 10, 10, 8, 10, 3, 3, 6, 1, 6, 3, 8, 9, 2, 9, 4, 10, 10, 7, 8, 9, 3, 3, 3, 5, 2, 10, 5, 7, 4, 9, 4, 10, 6, 7, 6, 5, 2, 1, 8, 8, 3, 8, 4, 3, 7, 9, 5, 6, 9, 9, 5, 2, 2, 9, 2, 3, 1, 3, 1, 9, 9, 8, 3, 10, 9, 2, 9, 5, 1, 7, 2, 10, 8, 9, 3, 8, 8, 2, 5, 8, 4, 6, 5, 6, 6, 7, 4, 6, 7, 1, 2, 9, 4, 2, 7, 8, 7, 3, 8, 10, 4, 6, 6, 5, 9, 5, 3, 2, 10, 4, 2, 3, 1, 9, 7, 8, 8, 7, 10, 2, 8, 9, 5, 9, 8, 1, 4, 10, 6, 7, 3, 5, 10, 6, 10, 6, 8, 2, 3, 10, 10, 4, 8, 2, 10, 6, 9, 5, 9, 10, 3, 4, 4, 4, 4, 10, 6, 3, 3, 6, 10, 10, 3, 2, 9, 4, 8, 5, 6, 8, 4, 7, 2, 10, 4, 9, 2, 10, 1, 2, 6, 4, 6, 2, 2, 2, 9, 1, 4, 2, 1, 7, 9, 2, 2, 8, 4, 7, 4, 8, 2, 1, 9, 6, 9, 9, 5, 10, 6, 3, 8, 6, 5, 7, 2, 10, 3, 3, 8, 9, 10, 4, 2, 8, 9, 3, 6, 1, 10, 6, 1, 3, 6, 10, 2, 2, 10, 4, 10, 9, 10, 6, 9, 4, 2, 5, 1, 9, 5, 10, 3, 10, 5, 5, 6, 1, 8, 8, 9, 7, 1, 9, 4, 1, 7, 5, 6, 9, 6, 1, 7, 7, 5, 8, 8, 8, 3, 2, 4, 3, 10, 9, 1, 1, 1, 1, 7, 4, 4, 7, 2, 7, 8, 9, 4, 2, 8, 7, 7, 8, 9, 5, 9, 3, 8, 7, 9, 7, 9, 8, 8, 9, 4, 9, 8, 5, 3, 9, 5, 2, 8, 2, 3, 10, 6, 10, 7, 10, 10, 2, 10, 2, 5, 4, 1, 8, 8, 5, 4, 5, 8, 5, 3, 7, 5, 9, 9, 10, 9, 4, 9, 7, 1, 7, 10, 3, 6, 2, 4, 8, 5, 7, 5, 8, 3, 8, 2, 2, 5, 2, 2, 4, 2, 10, 8, 4, 9, 1, 2, 10, 7, 6, 7, 7, 3, 1, 10, 6, 8, 6, 1, 4, 5, 10, 1, 6, 4, 10, 7, 5, 10, 10, 3, 7, 6, 9, 1, 2, 5, 1, 4, 6, 6, 9, 6, 10, 4, 7, 2, 2, 5, 8, 5, 4, 2, 1, 10, 4, 1, 4, 8, 9, 4, 5, 4, 1, 6, 2, 8, 7, 5, 9, 5, 6, 10, 10, 4, 7, 5, 3, 7, 4, 7, 6, 8, 5, 4, 8, 3, 6, 6, 2, 1, 10, 9, 8, 8, 1, 2, 1, 8, 5, 3, 1, 8, 4, 3, 7, 6, 10, 3, 2, 4, 10, 10, 4, 9, 1, 8, 10, 3, 2, 9, 9, 6, 9, 4, 9, 6, 6, 8, 8, 10, 9, 1, 7, 5, 3, 7, 6, 3, 5, 3, 7, 4, 5, 4, 9, 10, 10, 2, 5, 1, 8, 4, 2, 6, 4, 7, 8, 9, 7, 4, 10, 5, 3, 3, 2, 3, 8, 4, 9, 10, 3, 5, 10, 9, 6, 5, 4, 5, 5, 5, 4, 7, 10, 9, 10, 7, 9, 6, 4, 7, 9, 8, 5, 6, 9, 10, 7, 2, 4, 4, 4, 3, 6, 2, 8, 10, 7, 3, 5, 4, 1, 6, 7, 5, 8, 4, 7, 3, 7, 5, 5, 2, 1, 4, 10, 5, 6, 9, 1, 8, 2, 10, 10, 10, 10, 3, 3, 1, 10, 2, 10, 10, 4, 3, 4, 2, 6, 7, 2, 8, 9, 10, 5, 8, 5, 9, 5, 1, 1, 10, 8, 3, 5, 9, 7, 1, 1, 7, 10, 9, 1, 2, 6, 1, 5, 10, 9, 3, 3, 4, 9, 2, 4, 9, 3, 1, 3, 8, 9, 6, 8, 6, 8, 6, 8, 4, 2, 4, 10, 3, 10, 9, 9, 6, 9, 7, 2, 1, 10, 5, 3, 5, 9, 10, 7, 9, 7, 8, 3, 5, 6, 8, 1, 6, 9, 6, 9, 6, 10, 1, 1, 3, 5, 3, 4, 9, 9, 8, 3, 9, 9, 6, 2, 6, 4, 3, 3, 5, 3, 5, 7, 2, 8, 3, 5, 4, 10, 7, 1, 7, 7, 8, 2, 9, 8, 6, 8, 10, 6, 2, 5, 5, 2, 7, 6, 1, 6, 5, 8, 4, 7, 6, 6, 6, 2, 4, 3, 10, 4, 7, 3, 7, 6, 3, 2, 1, 4, 4, 1, 1, 2, 6, 2, 6, 6, 9, 2, 6, 10, 5, 10, 7, 8, 1, 6, 7, 8, 4, 2, 7, 8, 8, 3, 2, 9, 5, 8, 4, 4, 9, 4, 3, 3, 3, 6, 1, 1, 8, 2, 1, 5, 9, 9, 7, 10, 2, 4, 5, 2, 8, 4, 6, 2, 4, 6, 9, 10, 10, 8, 4, 2, 6, 8, 8, 10, 1, 9, 4, 2, 10, 7, 2, 10, 2, 5, 1, 9, 5, 2, 6, 10, 3, 1, 1, 10, 1, 6, 9, 3, 10, 6, 3, 6, 7, 2, 2, 8, 3, 3, 6, 10, 10, 3, 5, 5, 8, 3, 8, 2, 9, 6, 4, 9, 6, 5, 3, 2, 4, 9, 10, 2, 1, 7, 4, 5, 10, 9, 5, 3, 8, 3, 5, 9, 10, 4, 2, 9, 9, 1, 5, 5, 9, 8, 10, 2, 10, 8, 4, 6, 3, 4, 2, 8, 1, 1, 4, 4, 2, 7, 4, 4, 2, 9, 9, 3, 2, 8, 7, 5, 5, 4, 5, 6, 3, 8, 6, 9, 9, 8, 2, 1, 2, 1, 4, 8, 3, 3, 5, 1, 2, 2, 1, 8, 3, 3, 8, 5, 5, 4, 3, 2, 9, 1, 2, 4, 8, 8, 5, 3, 1, 8, 3, 2, 9, 2, 4, 5, 5, 9, 3, 6, 8, 3, 9, 4, 6, 8, 4, 7, 3, 1, 2, 4, 5, 7, 3, 7, 6, 5, 9, 6, 4, 1, 7, 5, 10, 1, 3, 9, 7, 3, 10, 4, 5, 5, 8, 5, 9, 7, 8, 10, 8, 2, 7, 8, 7, 5, 9, 10, 1, 4, 5, 4, 6, 9, 3, 10, 10, 1, 2, 10, 6, 5, 8, 6, 2, 3, 3, 5, 4, 7, 1, 9, 8, 3, 5, 10, 3, 5, 1, 4, 6, 5, 7, 3, 5, 2, 1, 3, 3, 7, 6, 5, 5, 8, 4, 9, 7, 3, 6, 7, 8, 3, 4, 4, 6, 5, 4, 2, 9, 3, 4, 7, 8, 9, 9, 7, 5, 8, 2, 3, 5, 3, 1, 9, 7, 10, 6, 2, 6, 2, 2, 8, 9, 10, 7, 3, 4, 9, 7, 4, 2, 1, 5, 6, 3, 6, 10, 6, 2, 5, 8, 7, 2, 6, 7, 9, 10, 5, 4, 7, 10, 8, 8, 10, 4, 10, 9, 7, 7, 7, 9, 6, 7, 3, 6, 2, 1, 7, 9, 2, 4, 1, 7, 5, 3, 3, 3, 9, 5, 4, 2, 1, 9, 1, 9, 1, 6, 5, 3, 10, 9, 9, 8, 7, 10, 3, 8, 5, 6, 9, 5, 6, 6, 4, 1, 2, 7, 5, 5, 8, 7, 9, 3, 3, 5, 2, 1, 10, 9, 10, 3, 6, 7, 10, 10, 6, 8, 1, 4, 3, 2, 9, 7, 9, 9, 3, 3, 1, 4, 4, 9, 3, 9, 3, 1, 2, 6, 8, 3, 9, 8, 6, 4, 9, 3, 7, 3, 1, 1, 5, 3, 8, 10, 7, 10, 8, 8, 7, 5, 7, 4, 9, 2, 6, 1, 1, 10, 1, 8, 4, 1, 3, 4, 3, 3, 5, 3, 1, 5, 10, 1, 4, 7, 1, 10, 8, 2, 5, 2, 8, 7, 9, 10, 10, 1, 1, 7, 3, 3, 4, 4, 9, 6, 6, 3, 5, 7, 4, 5, 7, 2, 8, 3, 5, 3, 7, 1, 7, 9, 9, 1, 4, 4, 3, 9, 1, 5, 4, 9, 3, 9, 8, 4, 2, 7, 8, 3, 1, 2, 9, 10, 8, 10, 3, 4, 4, 1, 1, 10, 8, 5, 3, 3, 5, 10, 7, 2, 7, 8, 1, 8, 1, 6, 2, 9, 5, 9, 6, 2, 8, 8, 2, 1, 6, 6, 10, 9, 7, 8, 8, 3, 10, 6, 7, 7, 4, 7, 2, 2, 9, 4, 6, 6, 9, 7, 8, 2, 3, 4, 3, 2, 9, 7, 2, 2, 10, 3, 2, 5, 10, 2, 3, 5, 4, 8, 4, 2, 10, 7, 9, 10, 6, 6, 3, 2, 9, 8, 10, 10, 10, 6, 3, 1, 4, 4, 4, 5, 2, 4, 7, 6, 7, 2, 10, 10, 1, 2, 7, 6, 8, 9, 9, 4, 9, 4, 10, 3, 1, 7, 7, 8, 1, 3, 3, 4, 1, 7, 7, 3, 1, 7, 5, 2, 7, 8, 2, 8, 10, 10, 9, 5, 7, 4, 8, 8, 1, 6, 1, 4, 1, 10, 9, 5, 8, 4, 5, 2, 6, 6, 6, 3, 10, 5, 1, 1, 4, 1, 8, 2, 8, 7, 1, 6, 5, 8, 5, 4, 7, 8, 6, 5, 2, 8, 10, 2, 9, 7, 2, 8, 6, 10, 6, 2, 7, 9, 9, 3, 5, 1, 2, 6, 7, 1, 2, 8, 7, 6, 7, 3, 5, 4, 8, 2, 2, 4, 6, 9, 5, 1, 7, 1, 2, 9, 10, 4, 8, 9, 1, 1, 9, 4, 8, 4, 5, 10, 8, 4, 9, 9, 4, 2, 8, 1, 4, 8, 8, 10, 10, 1, 4, 4, 5, 9, 5, 7, 8, 1, 4, 8, 3, 6, 1, 8, 9, 6, 4, 2, 1, 6, 10, 2, 5, 7, 6, 8, 3, 1, 8, 8, 1, 5, 7, 10, 7, 8, 8, 9, 5, 8, 8, 4, 2, 8, 1, 2, 3, 8, 5, 10, 9, 2, 1, 1, 1, 7, 10, 10, 7, 4, 10, 9, 8, 8, 3, 9, 3, 7, 7, 6, 9, 6, 8, 8, 8, 10, 3, 9, 10, 5, 1, 8, 10, 5, 6, 4, 7, 3, 4, 1, 2, 2, 9, 1, 7, 3, 5, 4, 6, 9, 1, 10, 1, 8, 5, 10, 9, 3, 3, 2, 8, 7, 6, 3, 10, 1, 4, 7, 5, 6, 10, 4, 10, 1, 4, 3, 10, 7, 7, 8, 3, 10, 7, 6, 4, 1, 4, 3, 10, 10, 3, 5, 9, 6, 8, 6, 6, 4, 10, 5, 3, 3, 4, 5, 7, 10, 7, 2, 1, 4, 3, 2, 6, 9, 5, 8, 8, 6, 4, 3, 9, 9, 4, 9, 1, 3, 7, 4, 9, 1, 8, 3, 5, 6, 5, 9, 3, 7, 7, 9, 6, 1, 10, 9, 9, 10, 2, 4, 6, 2, 1, 7, 9, 8, 6, 1, 3, 8, 1, 9, 7, 5, 7, 5, 10, 2, 2, 8, 1, 3, 4, 6, 1, 4, 7, 5, 3, 9, 1, 1, 8, 4, 7, 2, 10, 1, 10, 3, 2, 8, 2, 10, 5, 1, 8, 2, 1, 3, 2, 9, 1, 1, 1, 10, 2, 2, 4, 7, 1, 1, 9, 2, 10, 7, 9, 5, 8, 3, 8, 3, 6, 3, 1, 5, 6, 3, 10, 2, 9, 7, 2, 1, 6, 6, 7, 4, 5, 5, 5, 10, 8, 4, 6, 6, 6, 1, 2, 2, 6, 4, 2, 4, 8, 2, 4, 6, 9, 9, 9, 2, 5, 9, 2, 9, 7, 5, 3, 6, 8, 3, 5, 9, 5, 10, 1, 3, 1, 1, 9, 1, 7, 7, 6, 6, 3, 9, 1, 2, 8, 5, 2, 3, 2, 9, 3, 4, 7, 4, 3, 5, 2, 6, 1, 5, 2, 5, 5, 5, 3, 1, 4, 8, 4, 6, 6, 6, 4, 9, 4, 9, 10, 6, 7, 9, 10, 6, 2, 7, 9, 1, 8, 10, 5, 10, 7, 1, 10, 9, 9, 9, 7, 7, 9, 2, 4, 8, 4, 7, 8, 9, 3, 6, 6, 8, 3, 6, 7, 10, 7, 9, 1, 4, 9, 5, 3, 5, 7, 10, 10, 7, 5, 2, 2, 8, 3, 7, 2, 5, 7, 7, 5, 7, 8, 10, 7, 9, 7, 10, 1, 6, 5, 5, 5, 1, 6, 6, 1, 7, 3, 5, 1, 6, 4, 9, 8, 3, 6, 7, 7, 8, 3, 2, 3, 5, 9, 10, 3, 5, 2, 8, 2, 5, 5, 10, 4, 10, 1, 10, 1, 2, 6, 5, 5, 4, 1, 2, 4, 2, 10, 7, 3, 4, 6, 2, 3, 4, 2, 2, 10, 6, 5, 3, 5, 2, 6, 10, 8, 7, 7, 5, 5, 2, 9, 6, 4, 4, 2, 6, 1, 1, 2, 9, 10, 5, 5, 6, 1, 3, 7, 2, 9, 3, 1, 10, 1, 10, 3, 4, 5, 1, 10, 5, 6, 5, 6, 2, 4, 6, 5, 5, 1, 4, 1, 5, 8, 8, 10, 10, 4, 10, 8, 7, 10, 7, 5, 10, 2, 10, 5, 3, 7, 4, 1, 7, 4, 1, 5, 9, 7, 10, 10, 9, 3, 10, 2, 9, 1, 2, 3, 9, 2, 4, 10, 8, 6, 1, 8, 9, 6, 2, 3, 8, 8, 2, 3, 3, 8, 6, 5, 10, 4, 7, 6, 3, 2, 2, 2, 2, 7, 5, 7, 1, 8, 4, 9, 10, 1, 7, 7, 2, 4, 5, 4, 2, 4, 5, 9, 7, 10, 10, 6, 1, 8, 5, 5, 4, 1, 2, 10, 3, 10, 4, 7, 1, 4, 10, 2, 7, 8, 5, 4, 7, 3, 6, 7, 6, 1, 1, 8, 2, 5, 4, 9, 5, 6, 5, 5, 8, 9, 2, 8, 10, 5, 10, 3, 5, 6, 5, 10, 3, 6, 4, 6, 6, 5, 7, 6, 1, 3, 10, 9, 8, 1, 9, 6, 3, 9, 9, 5, 6, 7, 9, 9, 3, 6, 4, 5, 10, 8, 5, 1, 1, 6, 7, 9, 4, 9, 5, 1, 6, 4, 8, 4, 5, 2, 7, 2, 2, 8, 3, 7, 4, 2, 10, 4, 8, 3, 2, 8, 9, 4, 5, 8, 9, 6, 3, 6, 6, 4, 3, 1, 1, 1, 10, 2, 7, 10, 3, 1, 3, 10, 1, 3, 10, 4, 5, 1, 1, 1, 3, 5, 5, 5, 3, 7, 9, 1, 8, 7, 3, 6, 2, 8, 5, 9, 5, 10, 2, 10, 7, 1, 2, 4, 5, 10, 8, 2, 2, 9, 3, 9, 1, 10, 2, 10, 2, 6, 7, 1, 1, 10, 7, 5, 9, 1, 6, 7, 9, 6, 4, 3, 2, 7, 3, 3, 9, 2, 8, 8, 2, 3, 2, 6, 8, 2, 10, 10, 9, 5, 9, 2, 1, 8, 5, 1, 3, 3, 2, 9, 7, 2, 2, 5, 6, 7, 2, 10, 5, 4, 9, 2, 10, 6, 3, 1, 6, 1, 7, 7, 10, 7, 3, 7, 9, 9, 1, 1, 3, 3, 9, 9, 7, 1, 4, 6, 8, 4, 6, 4, 5, 9, 6, 7, 3, 8, 4, 8, 4, 5, 3, 7, 4, 6, 9, 10, 3, 10, 4, 9, 7, 3, 2, 5, 2, 10, 4, 3, 6, 4, 8, 3, 5, 7, 8, 5, 3, 8, 10, 9, 3, 7, 9, 7, 5, 6, 8, 4, 8, 1, 10, 2, 9, 7, 5, 7, 3, 7, 9, 6, 10, 2, 10, 1, 10, 1, 9, 6, 1, 8, 3, 1, 2, 6, 9, 5, 3, 3, 10, 3, 6, 3, 2, 3, 4, 4, 3, 7, 6, 10, 1, 4, 3, 4, 3, 9, 9, 9, 4, 2, 9, 5, 3, 4, 2, 7, 7, 10, 8, 2, 2, 10, 2, 8, 1, 2, 1, 2, 2, 5, 7, 1, 10, 4, 1, 1, 1, 1, 9, 6, 8, 6, 5, 7, 1, 5, 3, 8, 9, 6, 1, 9, 4, 4, 1, 7, 1, 8, 4, 10, 9, 10, 3, 8, 3, 9, 2, 6, 5, 7, 10, 2, 10, 6, 1, 3, 1, 3, 10, 2, 9, 7, 4, 7, 4, 2, 5, 8, 5, 8, 4, 1, 8, 5, 6, 5, 8, 5, 5, 1, 3, 7, 9, 7, 6, 5, 10, 8, 8, 4, 3, 1, 8, 7, 7, 6, 8, 8, 7, 1, 1, 4, 10, 3, 10, 9, 8, 8, 2, 2, 8, 3, 6, 9, 2, 3, 2, 7, 8, 9, 4, 10, 1, 8, 5, 5, 1, 7, 5, 5, 6, 3, 2, 3, 5, 1, 1, 1, 9, 10, 1, 4, 10, 1, 4, 7, 7, 2, 5, 2, 6, 2, 2, 3, 2, 9, 4, 1, 8, 2, 1, 3, 4, 7, 2, 8, 7, 2, 2, 7, 7, 7, 6, 6, 9, 2, 7, 7, 3, 5, 2, 9, 1, 1, 8, 10, 2, 10, 6, 9, 6, 3, 10, 9, 7, 5, 6, 3, 5, 3, 2, 6, 10, 9, 1, 6, 10, 7, 6, 9, 10, 5, 6, 9, 10, 9, 6, 7, 6, 1, 7, 9, 3, 6, 7, 6, 5, 5, 8, 9, 7, 6, 5, 3, 7, 4, 3, 2, 8, 1, 4, 6, 2, 1, 8, 1, 5, 4, 5, 6, 3, 6, 3, 5, 9, 4, 4, 10, 3, 10, 2, 1, 7, 9, 5, 5, 7, 4, 7, 6, 8, 9, 1, 6, 3, 5, 8, 5, 8, 2, 4, 8, 4, 5, 7, 3, 6, 10, 5, 8, 9, 6, 6, 2, 3, 9, 5, 9, 8, 7, 7, 8, 7, 5, 6, 6, 8, 7, 10, 3, 1, 10, 1, 5, 2, 8, 5, 8, 8, 10, 10, 4, 3, 1, 4, 9, 9, 6, 5, 6, 6, 3, 10, 6, 5, 9, 6, 5, 2, 10, 3, 3, 5, 8, 4, 4, 8, 10, 7, 1, 5, 1, 7, 8, 2, 1, 5, 3, 4, 4, 8, 1, 7, 7, 10, 7, 10, 2, 2, 10, 6, 10, 1, 10, 6, 8, 2, 6, 2, 9, 9, 5, 5, 9, 9, 5, 5, 9, 9, 3, 2, 1, 7, 4, 2, 7, 9, 6, 7, 3, 1, 2, 1, 5, 4, 6, 8, 8, 4, 6, 2, 6, 3, 5, 4, 8, 6, 1, 9, 5, 1, 9, 10, 1, 9, 7, 8, 9, 1, 5, 6, 1, 4, 4, 3, 1, 3, 9, 5, 2, 3, 10, 9, 5, 7, 9, 8, 9, 4, 8, 2, 6, 8, 7, 10, 6, 3, 8, 7, 3, 5, 1, 8, 4, 9, 5, 7, 5, 6, 8, 1, 6, 9, 9, 8, 8, 4, 7, 9, 1, 4, 8, 10, 8, 1, 9, 9, 3, 4, 4, 4, 4, 8, 10, 3, 9, 6, 6, 3, 2, 5, 6, 6, 1, 6, 1, 10, 3, 8, 3, 5, 10, 1, 3, 10, 7, 6, 6, 8, 3, 3, 10, 5, 2, 9, 4, 5, 2, 3, 3, 8, 1, 1, 1, 10, 7, 6, 9, 9, 5, 7, 4, 7, 4, 3, 9, 1, 8, 6, 9, 5, 3, 1, 3, 2, 10, 2, 2, 4, 10, 6, 5, 7, 5, 9, 8, 1, 1, 1, 4, 10, 1, 8, 5, 2, 4, 3, 4, 7, 9, 7, 2, 6, 7, 2, 8, 3, 1, 7, 8, 6, 8, 4, 5, 2, 4, 7, 4, 3, 1, 8, 8, 6, 1, 7, 4, 9, 4, 8, 5, 6, 9, 3, 6, 4, 5, 7, 3, 10, 1, 5, 2, 1, 6, 1, 2, 7, 10, 3, 9, 10, 10, 5, 2, 6, 2, 1, 8, 2, 7, 6, 9, 9, 8, 4, 9, 6, 8, 10, 10, 3, 4, 5, 5, 6, 2, 8, 7, 9, 1, 5, 9, 10, 6, 2, 10, 6, 5, 7, 1, 5, 3, 3, 7, 4, 8, 10, 2, 4, 5, 1, 8, 9, 7, 4, 2, 7, 9, 3, 7, 4, 7, 4, 6, 3, 10, 6, 1, 9, 7, 2, 3, 8, 2, 9, 8, 6, 4, 6, 8, 5, 10, 8, 9, 7, 7, 9, 7, 5, 8, 8, 9, 6, 9, 5, 2, 3, 2, 2, 9, 1, 6, 9, 9, 1, 10, 4, 6, 5, 3, 3, 7, 9, 8, 2, 9, 7, 6, 5, 9, 6, 10, 9, 2, 6, 9, 4, 10, 7, 5, 8, 9, 5, 3, 1, 5, 1, 9, 7, 5, 9, 5, 8, 6, 8, 2, 1, 8, 4, 1, 10, 9, 1, 8, 2, 9, 9, 1, 6, 1, 7, 4, 2, 6, 10, 3, 6, 5, 5, 10, 1, 6, 8, 10, 8, 7, 8, 10, 6, 3, 3, 5, 3, 2, 1, 2, 3, 10, 8, 3, 3, 4, 7, 7, 2, 10, 6, 4, 9, 10, 8, 1, 9, 10, 5, 3, 9, 9, 5, 10, 6, 7, 2, 9, 2, 7, 1, 4, 6, 6, 7, 1, 3, 3, 10, 9, 4, 1, 3, 6, 2, 10, 6, 3, 10, 7, 9, 5, 2, 9, 3, 4, 10, 9, 10, 10, 8, 5, 2, 3, 7, 10, 3, 8, 5, 7, 9, 4, 5, 3, 8, 3, 6, 4, 2, 2, 1, 4, 5, 2, 1, 10, 6, 10, 1, 10, 5, 6, 7, 9, 3, 6, 10, 5, 4, 10, 2, 8, 6, 9, 1, 2, 2, 10, 6, 1, 4, 5, 9, 9, 1, 1, 10, 10, 3, 2, 7, 3, 9, 1, 4, 6, 4, 6, 6, 7, 8, 1, 6, 3, 7, 9, 9, 6, 2, 6, 8, 4, 5, 3, 9, 9, 6, 8, 1, 7, 6, 10, 3, 2, 6, 5, 2, 9, 3, 2, 3, 5, 4, 4, 2, 7, 4, 7, 5, 5, 2, 9, 10, 1, 7, 5, 4, 7, 1, 5, 6, 5, 7, 9, 4, 3, 9, 1, 6, 7, 7, 1, 7, 1, 1, 10, 7, 2, 3, 4, 8, 3, 9, 4, 1, 10, 2, 2, 8, 6, 4, 1, 6, 4, 7, 1, 1, 1, 7, 5, 1, 10, 9, 10, 10, 7, 10, 3, 2, 5, 2, 4, 1, 5, 3, 1, 5, 9, 7, 7, 5, 4, 8, 9, 7, 10, 8, 5, 8, 10, 6, 5, 4, 4, 10, 4, 1, 7, 10, 4, 2, 7, 1, 8, 4, 4, 6, 5, 5, 1, 6, 10, 2, 7, 7, 7, 10, 9, 7, 10, 5, 3, 6, 1, 2, 7, 9, 5, 4, 2, 7, 5, 1, 6, 1, 4, 1, 1, 3, 2, 8, 7, 3, 4, 4, 3, 7, 10, 5, 2, 6, 6, 6, 6, 10, 6, 3, 8, 3, 3, 7, 10, 7, 6, 6, 9, 6, 4, 5, 9, 2, 10, 2, 5, 10, 2, 10, 3, 7, 9, 2, 9, 2, 10, 7, 8, 2, 7, 10, 10, 5, 5, 3, 8, 7, 10, 3, 3, 9, 10, 2, 9, 2, 9, 1, 1, 9, 7, 1, 9, 4, 2, 7, 4, 10, 9, 9, 1, 6, 2, 8, 9, 6, 1, 6, 10, 5, 4, 7, 1, 7, 10, 2, 3, 3, 4, 5, 8, 10, 3, 3, 4, 10, 9, 3, 5, 9, 5, 3, 10, 2, 1, 10, 8, 2, 3, 3, 9, 4, 9, 9, 1, 8, 3, 1, 10, 9, 3, 3, 7, 2, 3, 7, 3, 7, 10, 2, 5, 7, 1, 6, 10, 6, 3, 5, 8, 2, 3, 4, 2, 5, 3, 3, 10, 9, 6, 9, 3, 9, 3, 4, 1, 3, 7, 10, 8, 7, 4, 10, 3, 1, 8, 7, 7, 9, 8, 3, 1, 2, 1, 4, 1, 1, 10, 2, 8, 3, 6, 4, 3, 7, 2, 3, 6, 5, 3, 5, 1, 10, 5, 7, 5, 9, 8, 3, 1, 5, 1, 3, 1, 7, 2, 8, 6, 2, 8, 8, 2, 6, 4, 10, 4, 10, 5, 9, 8, 10, 6, 8, 3, 4, 4, 1, 6, 2, 3, 10, 8, 4, 7, 9, 10, 9, 2, 7, 10, 6, 1, 4, 9, 3, 8, 6, 6, 1, 1, 7, 4, 2, 5, 2, 4, 10, 2, 6, 8, 3, 10, 7, 6, 1, 10, 8, 10, 8, 9, 8, 5, 6, 6, 7, 5, 4, 3, 6, 2, 10, 5, 6, 5, 4, 3, 9, 1, 4, 9, 8, 2, 2, 9, 2, 7, 3, 8, 2, 9, 8, 5, 2, 6, 6, 9, 9, 1, 7, 8, 3, 6, 1, 3, 8, 8, 10, 6, 9, 3, 7, 2, 10, 8, 2, 1, 2, 5, 1, 4, 1, 2, 7, 2, 5, 3, 10, 3, 5, 1, 3, 7, 8, 9, 8, 1, 2, 1, 2, 6, 4, 10, 8, 2, 10, 2, 8, 2, 1, 6, 1, 6, 10, 5, 4, 3, 1, 9, 4, 2, 4, 1, 2, 7, 9, 1, 6, 3, 3, 6, 8, 2, 7, 3, 5, 4, 7, 8, 10, 10, 7, 2, 6, 7, 1, 9, 3, 4, 10, 10, 3, 6, 7, 6, 6, 6, 10, 9, 10, 5, 10, 1, 10, 4, 9, 2, 3, 1, 9, 7, 6, 3, 8, 9, 8, 10, 1, 3, 2, 4, 3, 2, 7, 10, 2, 8, 6, 3, 5, 3, 3, 9, 10, 2, 9, 1, 3, 6, 9, 9, 4, 9, 3, 8, 7, 3, 2, 4, 3, 5, 4, 1, 6, 10, 2, 9, 1, 5, 1, 9, 4, 4, 1, 4, 10, 8, 10, 6, 6, 7, 6, 1, 7, 8, 5, 2, 5, 1, 7, 1, 1, 3, 3, 2, 2, 7, 8, 10, 2, 3, 8, 9, 4, 3, 1, 9, 3, 1, 5, 6, 5, 1, 5, 2, 1, 6, 7, 4, 1, 9, 9, 7, 4, 9, 6, 10, 3, 3, 3, 7, 10, 4, 8, 9, 2, 8, 9, 10, 8, 7, 7, 9, 5, 1, 9, 1, 8, 9, 3, 1, 4, 5, 8, 3, 7, 7, 7, 7, 8, 7, 2, 1, 6, 1, 5, 1, 8, 6, 5, 2, 5, 5, 4, 4, 3, 6, 6, 9, 6, 5, 9, 4, 5, 2, 8, 1, 3, 4, 7, 7, 3, 4, 7, 1, 4, 1, 2, 10, 3, 8, 1, 3, 2, 9, 2, 2, 10, 4, 3, 2, 5, 9, 8, 9, 1, 8, 8, 4, 5, 9, 2, 1, 3, 4, 2, 1, 1, 1, 8, 4, 8, 9, 3, 1, 10, 6, 9, 8, 2, 8, 10, 9, 2, 1, 10, 9, 7, 10, 2, 2, 8, 7, 8, 5, 2, 4, 6, 5, 2, 4, 2, 5, 7, 5, 4, 5, 3, 6, 7, 3, 6, 8, 1, 5, 6, 3, 10, 8, 7, 2, 7, 6, 9, 4, 8, 2, 8, 4, 9, 10, 1, 1, 4, 5, 2, 5, 4, 5, 8, 3, 4, 5, 6, 3, 1, 5, 4, 1, 8, 2, 10, 9, 5, 3, 7, 7, 3, 1, 2, 2, 2, 8, 2, 10, 6, 8, 10, 4, 7, 2, 1, 4, 9, 2, 5, 4, 6, 5, 9, 4, 2, 5, 8, 5, 5, 8, 9, 6, 5, 4, 2, 1, 5, 8, 8, 2, 3, 6, 3, 1, 1, 1, 9, 3, 8, 4, 4, 6, 10, 5, 3, 8, 1, 6, 1, 10, 4, 8, 8, 2, 10, 8, 10, 8, 9, 9, 6, 8, 10, 1, 4, 8, 7, 3, 8, 9, 2, 9, 2, 5, 1, 8, 1, 5, 10, 2, 3, 4, 6, 1, 2, 4, 4, 3, 9, 5, 10, 10, 1, 2, 9, 4, 7, 8, 5, 2, 2, 2, 9, 3, 1, 9, 7, 9, 10, 1, 1, 1, 4, 8, 8, 1, 7, 3, 5, 1, 6, 5, 5, 10, 2, 8, 4, 6, 9, 1, 8, 9, 2, 4, 5, 6, 9, 3, 2, 5, 4, 1, 5, 3, 6, 5, 8, 6, 3, 5, 4, 3, 10, 2, 6, 10, 9, 9, 3, 1, 6, 8, 10, 6, 8, 3, 5, 4, 4, 4, 1, 2, 9, 7, 2, 6, 3, 3, 7, 4, 2, 5, 6, 3, 5, 7, 10, 10, 2, 4, 4, 2, 6, 2, 6, 8, 2, 1, 9, 4, 9, 6, 5, 8, 3, 10, 9, 7, 10, 7, 10, 5, 9, 5, 1, 1, 10, 6, 7, 3, 2, 3, 10, 8, 2, 10, 7, 7, 2, 7, 6, 8, 7, 2, 8, 5, 9, 1, 1, 10, 5, 4, 2, 6, 2, 1, 2, 7, 8, 3, 9, 10, 10, 4, 6, 8, 2, 2, 3, 1, 5, 4, 1, 6, 7, 7, 6, 2, 6, 4, 1, 1, 1, 2, 5, 6, 2, 6, 7, 7, 10, 10, 9, 10, 4, 8, 7, 5, 1, 1, 4, 1, 4, 4, 6, 1, 9, 5, 7, 3, 1, 10, 6, 1, 4, 5, 6, 2, 3, 6, 2, 7, 1, 1, 7, 7, 1, 4, 8, 4, 2, 4, 5, 5, 8, 5, 10, 5, 8, 6, 2, 9, 10, 6, 7, 3, 6, 10, 6, 3, 8, 8, 5, 8, 3, 7, 10, 2, 8, 10, 2, 2, 9, 10, 1, 5, 1, 10, 3, 3, 9, 4, 2, 9, 1, 5, 7, 3, 2, 3, 6, 3, 4, 5, 6, 5, 2, 8, 10, 3, 4, 5, 8, 7, 3, 10, 7, 7, 2, 8, 8, 1, 1, 9, 10, 6, 4, 5, 10, 5, 8, 1, 1, 8, 5, 10, 2, 3, 10, 8, 3, 10, 8, 8, 8, 2, 5, 7, 4, 6, 3, 8, 1, 10, 5, 1, 3, 10, 7, 2, 2, 9, 2, 6, 3, 10, 8, 2, 1, 4, 3, 10, 3, 1, 2, 4, 9, 4, 10, 1, 9, 5, 9, 5, 6, 6, 2, 5, 10, 3, 3, 10, 8, 2, 10, 8, 1, 2, 6, 7, 2, 6, 8, 5, 1, 5, 10, 3, 4, 2, 5, 5, 10, 7, 2, 10, 8, 1, 4, 6, 9, 3, 4, 6, 10, 6, 2, 2, 6, 6, 7, 4, 1, 8, 9, 5, 9, 4, 4, 9, 9, 1, 3, 4, 10, 4, 2, 9, 8, 10, 10, 5, 9, 8, 8, 2, 3, 10, 8, 2, 5, 3, 5, 1, 2, 10, 1, 9, 2, 2, 9, 4, 1, 2, 8, 6, 3, 8, 7, 6, 1, 4, 8, 9, 10, 7, 9, 4, 4, 7, 2, 4, 5, 7, 3, 6, 8, 10, 7, 3, 8, 9, 1, 9, 8, 8, 6, 4, 9, 7, 5, 8, 10, 3, 8, 9, 6, 4, 5, 3, 9, 6, 8, 7, 2, 10, 3, 4, 8, 10, 2, 6, 7, 7, 8, 8, 1, 7, 9, 9, 3, 1, 6, 6, 10, 9, 7, 8, 6, 2, 9, 6, 8, 10, 8, 7, 7, 8, 10, 8, 2, 1, 7, 1, 5, 7, 10, 1, 9, 4, 1, 7, 1, 7, 4, 7, 7, 6, 2, 8, 5, 7, 10, 9, 9, 8, 2, 7, 2, 6, 9, 8, 1, 4, 9, 9, 6, 9, 4, 5, 4, 3, 5, 8, 3, 3, 2, 3, 6, 1, 8, 8, 5, 9, 7, 1, 6, 8, 10, 2, 7, 5, 7, 1, 7, 9, 4, 9, 9, 9, 7, 2, 7, 4, 2, 9, 1, 9, 1, 2, 10, 10, 3, 7, 5, 4, 4, 3, 5, 9, 3, 8, 3, 3, 10, 9, 1, 7, 6, 3, 1, 7, 7, 4, 2, 9, 8, 7, 3, 6, 7, 5, 4, 10, 1, 10, 1, 3, 8, 6, 1, 3, 10, 6, 1, 5, 7, 6, 9, 4, 9, 7, 7, 3, 2, 6, 8, 7, 9, 9, 8, 7, 4, 1, 3, 3, 10, 10, 9, 3, 2, 3, 2, 1, 7, 7, 4, 7, 3, 1, 4, 4, 5, 2, 2, 4, 2, 5, 2, 4, 6, 9, 3, 3, 8, 8, 4, 9, 3, 3, 3, 1, 7, 7, 2, 10, 3, 7, 3, 4, 9, 4, 10, 4, 7, 10, 9, 8, 8, 1, 8, 6, 9, 9, 5, 5, 10, 2, 5, 4, 2, 6, 2, 9, 4, 9, 6, 7, 8, 2, 10, 10, 8, 10, 5, 9, 10, 7, 7, 5, 5, 3, 6, 3, 4, 2, 8, 3, 8, 1, 10, 9, 4, 2, 5, 9, 1, 10, 6, 4, 7, 3, 7, 5, 7, 3, 4, 5, 5, 6, 1, 6, 8, 9, 8, 8, 1, 9, 8, 4, 4, 8, 10, 5, 1, 10, 5, 9, 6, 4, 2, 5, 8, 8, 5, 1, 1, 2, 3, 1, 8, 7, 6, 8, 10, 1, 5, 9, 4, 10, 10, 4, 2, 5, 3, 9, 5, 4, 8, 5, 2, 6, 2, 9, 3, 8, 3, 9, 3, 10, 6, 8, 3, 5, 7, 3, 3, 4, 3, 3, 6, 6, 1, 3, 5, 3, 6, 5, 3, 2, 3, 7, 9, 5, 10, 6, 7, 2, 9, 3, 6, 1, 8, 4, 2, 9, 8, 8, 9, 5, 6, 7, 9, 7, 5, 4, 2, 9, 7, 8, 4, 7, 2, 6, 2, 1, 6, 3, 10, 9, 1, 8, 1, 8, 2, 9, 3, 9, 5, 10, 4, 3, 10, 4, 2, 6, 8, 10, 3, 2, 2, 2, 2, 2, 4, 1, 9, 9, 9, 6, 7, 2, 9, 9, 5, 2, 5, 4, 4, 5, 1, 7, 3, 6, 8, 8, 5, 8, 9, 2, 6, 1, 5, 2, 2, 9, 2, 3, 10, 7, 8, 2, 4, 8, 3, 8, 4, 7, 7, 8, 8, 2, 9, 9, 4, 10, 7, 8, 8, 10, 1, 4, 4, 6, 10, 2, 2, 7, 1, 8, 3, 7, 9, 5, 4, 9, 3, 9, 6, 7, 2, 10, 4, 9, 4, 10, 9, 9, 3, 10, 5, 8, 9, 4, 9, 10, 2, 3, 8, 4, 6, 6, 8, 4, 2, 1, 10, 10, 9, 4, 2, 5, 9, 10, 4, 2, 8, 1, 9, 2, 3, 10, 7, 2, 7, 10, 6, 10, 2, 4, 6, 10, 5, 2, 3, 5, 3, 2, 6, 9, 10, 7, 10, 3, 10, 2, 7, 5, 9, 7, 8, 1, 8, 6, 7, 4, 7, 4, 3, 9, 5, 2, 5, 2, 3, 5, 9, 2, 1, 2, 9, 10, 2, 8, 5, 6, 7, 1, 2, 5, 9, 10, 3, 8, 7, 4, 9, 6, 2, 2, 7, 6, 6, 2, 10, 2, 3, 3, 4, 9, 1, 10, 3, 1, 1, 4, 4, 2, 9, 9, 3, 10, 2, 1, 2, 10, 5, 3, 6, 1, 6, 8, 10, 9, 9, 3, 3, 2, 1, 10, 6, 10, 6, 4, 9, 5, 3, 5, 5, 7, 1, 9, 3, 10, 3, 1, 9, 7, 7, 7, 8, 4, 8, 5, 9, 5, 1, 10, 8, 10, 1, 3, 4, 5, 8, 7, 10, 5, 9, 9, 1, 10, 3, 4, 9, 6, 8, 5, 5, 9, 4, 4, 4, 8, 5, 3, 1, 9, 1, 1, 3, 4, 10, 2, 8, 9, 2, 6, 9, 4, 7, 6, 6, 1, 2, 6, 9, 3, 1, 3, 5, 10, 8, 1, 5, 9, 9, 8, 6, 1, 4, 1, 6, 3, 7, 10, 5, 8, 3, 1, 7, 9, 4, 4, 10, 3, 7, 9, 10, 7, 9, 3, 9, 1, 2, 10, 4, 3, 9, 8, 7, 2, 7, 9, 2, 9, 8, 2, 2, 8, 1, 4, 5, 7, 8, 7, 10, 3, 3, 5, 9, 9, 1, 1, 2, 1, 2, 8, 10, 2, 5, 8, 5, 8, 8, 4, 10, 2, 6, 3, 9, 4, 8, 2, 4, 9, 10, 10, 2, 8, 5, 6, 1, 8, 7, 1, 5, 2, 3, 4, 9, 1, 6, 2, 9, 4, 4, 8, 1, 7, 3, 3, 2, 9, 9, 3, 6, 10, 10, 4, 1, 7, 9, 7, 5, 7, 3, 1, 10, 10, 10, 9, 8, 5, 7, 3, 6, 2, 5, 8, 1, 10, 1, 4, 4, 2, 6, 10, 5, 2, 6, 3, 10, 2, 4, 10, 7, 6, 6, 2, 3, 2, 8, 10, 8, 1, 2, 7, 3, 6, 10, 9, 6, 7, 5, 9, 8, 5, 4, 9, 8, 10, 8, 4, 2, 5, 1, 8, 4, 1, 9, 3, 2, 9, 5, 1, 4, 6, 9, 3, 3, 9, 8, 8, 10, 7, 6, 5, 1, 10, 9, 8, 4, 9, 2, 2, 7, 7, 9, 10, 10, 9, 5, 6, 9, 4, 4, 5, 7, 3, 5, 1, 2, 6, 9, 2, 10, 10, 4, 5, 4, 1, 6, 10, 8, 3, 6, 10, 3, 8, 5, 4, 1, 2, 10, 6, 7, 2, 2, 10, 8, 4, 2, 2, 1, 10, 7, 8, 9, 6, 4, 8, 4, 3, 4, 10, 1, 4, 2, 6, 3, 9, 3, 7, 5, 6, 1, 2, 1, 1, 5, 7, 4, 1, 9, 3, 9, 4, 3, 7, 9, 3, 5, 5, 3, 6, 9, 6, 4, 8, 8, 3, 7, 4, 3, 9, 3, 7, 4, 4, 2, 1, 9, 3, 8, 10, 7, 3, 6, 3, 9, 7, 9, 10, 9, 1, 1, 8, 8, 3, 4, 9, 7, 9, 5, 5, 3, 6, 4, 6, 3, 8, 3, 5, 4, 9, 2, 10, 8, 3, 5, 10, 9, 7, 9, 6, 4, 8, 9, 2, 2, 5, 4, 6, 10, 9, 1, 5, 6, 4, 6, 3, 5, 1, 10, 1, 6, 1, 2, 6, 4, 7, 2, 7, 6, 1, 3, 9, 4, 9, 8, 3, 4, 1, 2, 3, 10, 4, 8, 2, 7, 9, 4, 8, 9, 8, 10, 2, 2, 3, 7, 9, 8, 10, 8, 7, 2, 9, 2, 1, 3, 4, 3, 3, 7, 8, 7, 1, 1, 2, 1, 10, 5, 7, 8, 4, 3, 8, 2, 3, 5, 2, 4, 2, 5, 9, 10, 3, 8, 6, 7, 8, 5, 1, 3, 7, 3, 4, 4, 3, 10, 9, 3, 9, 7, 6, 10, 2, 6, 5, 9, 8, 7, 9, 3, 3, 1, 1, 2, 4, 7, 3, 6, 2, 6, 10, 7, 5, 7, 8, 4, 2, 8, 2, 2, 6, 3, 7, 1, 3, 3, 8, 9, 2, 3, 5, 8, 8, 7, 6, 2, 3, 7, 4, 10, 7, 3, 6, 10, 9, 3, 3, 2, 8, 6, 2, 8, 5, 10, 6, 8, 4, 5, 9, 2, 5, 5, 4, 6, 8, 3, 7, 10, 4, 8, 7, 2, 8, 8, 2, 1, 6, 3, 1, 7, 8, 3, 5, 3, 3, 9, 4, 1, 1, 2, 3, 8, 7, 9, 1, 7, 2, 1, 6, 8, 2, 4, 1, 5, 10, 8, 5, 2, 8, 3, 1, 4, 7, 7, 3, 9, 6, 7, 10, 1, 7, 5, 7, 6, 8, 9, 8, 10, 8, 1, 10, 7, 5, 7, 5, 7, 3, 1, 6, 6, 8, 4, 8, 4, 10, 7, 1, 1, 6, 2, 5, 4, 8, 9, 10, 8, 5, 9, 10, 8, 5, 6, 6, 8, 5, 10, 9, 3, 5, 10, 9, 10, 2, 4, 4, 8, 6, 9, 5, 1, 5, 10, 10, 3, 8, 7, 5, 2, 7, 1, 8, 4, 8, 10, 10, 7, 4, 10, 4, 9, 2, 4, 3, 4, 4, 4, 2, 5, 7, 8, 5, 3, 10, 10, 7, 7, 4, 9, 8, 7, 8, 7, 9, 8, 7, 10, 9, 10, 8, 5, 3, 3, 6, 7, 6, 9, 6, 5, 7, 3, 3, 5, 6, 6, 5, 6, 3, 3, 2, 6, 1, 9, 5, 6, 8, 7, 9, 5, 6, 5, 2, 8, 4, 3, 8, 6, 4, 9, 1, 7, 3, 9, 5, 3, 6, 7, 2, 10, 10, 7, 2, 8, 2, 3, 2, 4, 8, 7, 3, 3, 3, 6, 6, 3, 1, 7, 6, 5, 8, 4, 2, 4, 5, 5, 2, 2, 2, 1, 9, 1, 3, 1, 8, 9, 6, 1, 9, 2, 6, 7, 9, 5, 5, 9, 7, 9, 6, 5, 7, 7, 7, 2, 1, 5, 2, 9, 1, 8, 2, 10, 1, 3, 7, 1, 4, 7, 3, 10, 4, 5, 6, 1, 10, 6, 5, 6, 4, 8, 4, 8, 3, 1, 4, 7, 1, 7, 7, 9, 8, 3, 6, 9, 3, 5, 5, 10, 6, 8, 8, 10, 9, 2, 2, 8, 10, 2, 1, 5, 1, 7, 6, 5, 3, 8, 3, 8, 9, 10, 1, 3, 8, 7, 6, 10, 7, 2, 6, 3, 2, 5, 4, 3, 9, 3, 3, 10, 2, 6, 3, 1, 6, 2, 10, 3, 1, 7, 5, 10, 7, 1, 1, 4, 10, 4, 7, 9, 8, 9, 7, 10, 6, 5, 8, 10, 1, 2, 3, 4, 7, 2, 1, 10, 1, 5, 7, 7, 2, 6, 4, 8, 3, 5, 8, 6, 4, 8, 5, 1, 9, 2, 3, 8, 6, 9, 7, 7, 1, 4, 2, 10, 3, 5, 7, 4, 2, 3, 6, 4, 5, 1, 2, 8, 3, 4, 1, 5, 10, 4, 7, 10, 10, 1, 6, 2, 5, 1, 5, 7, 4, 2, 6, 3, 5, 3, 10, 10, 1, 9, 3, 5, 5, 6, 1, 8, 4, 5, 3, 3, 7, 10, 5, 6, 6, 4, 7, 10, 10, 10, 3, 3, 9, 4, 5, 5, 10, 5, 5, 10, 2, 9, 2, 5, 3, 6, 1, 10, 5, 3, 7, 6, 8, 8, 1, 5, 8, 4, 1, 8, 10, 2, 7, 7, 3, 9, 7, 8, 6, 3, 3, 7, 2, 8, 1, 9, 3, 9, 4, 2, 1, 2, 6, 2, 8, 1, 9, 8, 10, 7, 1, 7, 1, 8, 3, 6, 10, 9, 9, 3, 6, 9, 3, 6, 1, 9, 10, 10, 6, 2, 4, 7, 8, 10, 3, 4, 7, 1, 6, 10, 4, 3, 2, 1, 4, 10, 5, 4, 10, 8, 3, 6, 4, 9, 9, 5, 10, 9, 9, 4, 5, 7, 7, 6, 7, 4, 5, 1, 6, 10, 7, 2, 1, 1, 4, 7, 7, 3, 6, 5, 2, 4, 8, 4, 1, 3, 1, 2, 2, 5, 1, 4, 1, 9, 6, 6, 7, 10, 10, 1, 2, 5, 5, 9, 8, 6, 6, 8, 10, 1, 10, 2, 9, 8, 4, 1, 7, 3, 8, 9, 1, 3, 8, 6, 6, 7, 2, 9, 4, 2, 2, 6, 8, 7, 10, 9, 3, 4, 3, 4, 4, 3, 7, 7, 1, 5, 9, 10, 9, 2, 4, 4, 1, 2, 5, 2, 2, 2, 10, 9, 9, 4, 3, 8, 4, 7, 3, 3, 7, 6, 8, 10, 9, 3, 6, 2, 3, 3, 2, 10, 3, 9, 2, 4, 9, 10, 1, 7, 6, 7, 2, 3, 2, 3, 6, 7, 8, 8, 9, 1, 4, 3, 9, 4, 9, 1, 2, 6, 7, 10, 5, 4, 6, 8, 9, 9, 4, 3, 7, 3, 7, 4, 8, 8, 1, 7, 9, 7, 5, 5, 1, 9, 8, 3, 3, 10, 6, 6, 3, 6, 4, 4, 6, 6, 3, 2, 9, 5, 6, 4, 8, 9, 1, 10, 1, 6, 1, 10, 5, 8, 3, 1, 3, 6, 4, 2, 3, 3, 5, 4, 3, 1, 9, 7, 9, 9, 8, 6, 1, 6, 8, 10, 8, 4, 7, 5, 5, 5, 4, 10, 3, 8, 10, 3, 10, 8, 8, 4, 8, 6, 8, 3, 3, 5, 2, 4, 2, 10, 9, 4, 9, 9, 1, 8, 10, 1, 10, 8, 4, 6, 9, 5, 7, 8, 3, 2, 5, 9, 1, 3, 9, 2, 3, 3, 3, 4, 3, 5, 4, 10, 1, 3, 9, 2, 5, 7, 2, 6, 6, 3, 7, 5, 8, 4, 3, 6, 6, 3, 9, 7, 4, 4, 7, 4, 4, 1, 8, 10, 6, 9, 4, 8, 7, 9, 4, 4, 9, 7, 5, 2, 2, 10, 7, 3, 10, 4, 1, 4, 6, 6, 2, 4, 2, 7, 7, 1, 4, 3, 8, 1, 2, 8, 10, 2, 9, 6, 6, 4, 6, 3, 10, 2, 1, 4, 7, 2, 8, 3, 4, 1, 2, 10, 4, 4, 3, 2, 8, 9, 3, 1, 7, 1, 7, 8, 10, 4, 1, 2, 3, 3, 5, 9, 7, 10, 10, 4, 5, 5, 8, 8, 1, 4, 5, 2, 1, 8, 2, 2, 10, 6, 10, 7, 7, 5, 8, 4, 3, 1, 3, 6, 5, 5, 7, 4, 4, 2, 3, 1, 10, 7, 3, 7, 6, 6, 7, 8, 4, 1, 4, 6, 7, 8, 2, 2, 8, 2, 10, 6, 6, 10, 4, 3, 1, 5, 10, 10, 3, 1, 1, 9, 8, 8, 4, 1, 4, 7, 8, 1, 8, 5, 6, 2, 1, 5, 1, 1, 9, 4, 4, 7, 3, 1, 10, 1, 5, 7, 9, 1, 7, 4, 1, 7, 4, 9, 3, 6, 10, 7, 2, 1, 6, 1, 6, 7, 5, 6, 4, 1, 4, 9, 5, 6, 3, 9, 4, 4, 10, 4, 7, 5, 9, 1, 1, 2, 10, 3, 5, 3, 2, 8, 5, 9, 5, 3, 6, 4, 8, 1, 8, 10, 6, 8, 1, 7, 4, 1, 9, 5, 1, 2, 6, 3, 5, 4, 10, 4, 9, 3, 1, 5, 1, 8, 2, 7, 9, 10, 5, 1, 10, 3, 8, 2, 4, 3, 10, 6, 10, 4, 1, 2, 10, 8, 2, 7, 4, 3, 1, 8, 4, 7, 10, 9, 10, 6, 4, 9, 10, 6, 7, 4, 3, 7, 3, 8, 7, 7, 7, 10, 9, 4, 6, 1, 9, 9, 3, 3, 6, 7, 1, 4, 5, 2, 8, 9, 4, 9, 1, 9, 8, 7, 10, 7, 4, 9, 7, 4, 5, 8, 9, 4, 9, 9, 7, 2, 9, 7, 5, 4, 10, 4, 8, 10, 4, 6, 8, 8, 4, 4, 5, 5, 1, 9, 7, 1, 9, 4, 2, 1, 5, 9, 2, 1, 7, 8, 3, 9, 4, 4, 10, 8, 2, 6, 5, 7, 3, 6, 8, 10, 10, 2, 8, 8, 4, 7, 8, 7, 2, 8, 3, 7, 4, 4, 3, 1, 6, 2, 6, 9, 9, 10, 5, 3, 6, 4, 9, 5, 6, 8, 8, 7, 9, 10, 3, 5, 3, 10, 3, 3, 10, 4, 5, 5, 4, 10, 3, 1, 5, 3, 5, 8, 1, 9, 6, 3, 6, 7, 3, 6, 3, 8, 10, 7, 6, 9, 5, 6, 10, 7, 10, 1, 10, 1, 2, 8, 10, 4, 9, 3, 3, 8, 1, 6, 8, 8, 1, 2, 3, 7, 8, 6, 7, 5, 6, 5, 4, 8, 6, 2, 2, 9, 7, 4, 9, 10, 7, 5, 2, 7, 5, 4, 2, 1, 1, 5, 10, 1, 9, 6, 3, 10, 7, 6, 2, 6, 4, 9, 9, 2, 8, 6, 3, 5, 8, 4, 6, 4, 3, 2, 9, 9, 3, 7, 8, 3, 8, 2, 1, 4, 3, 3, 5, 7, 10, 9, 9, 4, 7, 1, 8, 5, 7, 7, 5, 9, 3, 5, 5, 1, 3, 4, 3, 3, 4, 6, 7, 4, 3, 6, 1, 8, 10, 10, 1, 8, 5, 4, 9, 5, 2, 8, 4, 7, 4, 8, 3, 2, 8, 8, 9, 6, 9, 2, 4, 5, 8, 5, 3, 2, 8, 10, 1, 10, 9, 2, 1, 10, 10, 2, 1, 7, 2, 1, 2, 9, 1, 6, 8, 3, 10, 10, 6, 2, 1, 2, 7, 7, 6, 9, 6, 10, 1, 8, 6, 3, 3, 4, 7, 4, 4, 3, 1, 3, 4, 1, 2, 1, 5, 8, 4, 5, 4, 1, 4, 7, 10, 9, 4, 1, 7, 6, 9, 7, 2, 5, 6, 8, 10, 2, 10, 10, 4, 1, 4, 7, 8, 8, 8, 6, 2, 2, 3, 3, 10, 1, 3, 5, 9, 5, 3, 9, 3, 1, 7, 4, 5, 5, 1, 2, 1, 10, 8, 4, 4, 3, 7, 3, 5, 4, 2, 7, 4, 8, 6, 4, 7, 9, 9, 5, 4, 9, 5, 6, 8, 7, 8, 6, 4, 10, 10, 1, 1, 3, 9, 4, 6, 2, 2, 6, 4, 7, 6, 9, 10, 1, 8, 3, 9, 7, 4, 9, 7, 5, 1, 7, 7, 7, 4, 5, 3, 2, 10, 7, 10, 6, 9, 3, 10, 9, 2, 2, 4, 10, 4, 8, 9, 4, 9, 3, 2, 7, 5, 2, 1, 6, 10, 5, 6, 7, 9, 7, 6, 1, 4, 8, 9, 7, 5, 10, 3, 2, 6, 1, 2, 3, 5, 5, 3, 8, 1, 10, 1, 2, 1, 7, 3, 1, 2, 7, 3, 4, 10, 10, 10, 9, 8, 5, 6, 1, 6, 3, 3, 3, 2, 8, 6, 6, 5, 3, 5, 5, 2, 4, 9, 10, 5, 5, 3, 8, 1, 8, 9, 6, 9, 3, 3, 5, 7, 7, 10, 1, 7, 7, 9, 10, 6, 1, 2, 5, 8, 7, 7, 7, 3, 7, 9, 4, 5, 3, 9, 2, 9, 4, 9, 8, 7, 2, 9, 9, 1, 7, 1, 10, 8, 10, 1, 7, 1, 8, 8, 3, 6, 7, 3, 3, 4, 7, 10, 3, 9, 6, 5, 3, 4, 10, 1, 10, 9, 6, 5, 10, 2, 7, 1, 4, 10, 2, 3, 5, 10, 3, 1, 6, 8, 4, 9, 10, 9, 9, 7, 10, 2, 10, 2, 6, 1, 4, 1, 2, 10, 5, 2, 9, 10, 5, 1, 4, 3, 6, 2, 9, 7, 4, 3, 6, 3, 8, 2, 4, 8, 4, 5, 7, 1, 5, 4, 7, 2, 4, 7, 6, 1, 4, 7, 7, 9, 5, 1, 3, 5, 7, 3, 10, 4, 7, 7, 5, 6, 7, 5, 5, 8, 1, 3, 4, 6, 2, 1, 10, 10, 9, 4, 6, 8, 10, 7, 1, 9, 2, 4, 1, 9, 5, 7, 9, 5, 7, 6, 4, 9, 6, 9, 1, 10, 3, 6, 6, 10, 1, 1, 7, 9, 6, 5, 9, 8, 3, 6, 10, 9, 7, 9, 10, 6, 7, 2, 9, 5, 2, 8, 4, 10, 7, 10, 8, 8, 5, 5, 7, 9, 4, 4, 8, 1, 6, 7, 4, 10, 7, 10, 8, 8, 9, 4, 1, 4, 3, 9, 5, 8, 9, 1, 9, 2, 2, 9, 8, 8, 8, 7, 7, 6, 6, 5, 3, 6, 4, 9, 9, 3, 7, 10, 10, 9, 7, 4, 4, 6, 1, 8, 5, 6, 3, 4, 4, 8, 9, 4, 8, 7, 2, 7, 2, 5, 8, 4, 6, 2, 6, 7, 10, 10, 6, 6, 6, 10, 1, 5, 10, 1, 1, 4, 5, 4, 5, 5, 4, 1, 1, 3, 6, 9, 9, 4, 6, 10, 4, 4, 10, 10, 9, 7, 8, 7, 4, 5, 3, 4, 3, 6, 9, 10, 2, 3, 1, 1, 9, 5, 2, 1, 5, 6, 10, 1, 8, 1, 3, 4, 5, 10, 2, 3, 4, 7, 6, 5, 3, 8, 7, 9, 6, 9, 5, 4, 4, 1, 2, 9, 3, 10, 8, 9, 9, 9, 9, 10, 3, 4, 4, 5, 4, 5, 5, 1, 6, 9, 9, 7, 1, 8, 7, 7, 8, 3, 3, 1, 9, 5, 2, 10, 8, 1, 10, 7, 5, 10, 5, 3, 6, 3, 6, 1, 5, 1, 1, 4, 10, 2, 8, 10, 8, 5, 4, 1, 2, 10, 8, 1, 1, 7, 5, 7, 5, 2, 4, 8, 6, 1, 8, 8, 9, 10, 8, 9, 9, 2, 4, 7, 7, 9, 5, 10, 5, 8, 10, 3, 5, 9, 9, 7, 5, 10, 7, 2, 1, 1, 5, 7, 4, 4, 3, 10, 8, 8, 4, 6, 9, 3, 10, 5, 8, 8, 1, 5, 6, 9, 4, 7, 4, 1, 10, 2, 5, 4, 4, 5, 10, 4, 1, 9, 5, 7, 7, 1, 3, 10, 8, 7, 1, 7, 5, 7, 5, 6, 9, 2, 3, 2, 7, 5, 3, 7, 5, 2, 9, 1, 6, 5, 3, 1, 1, 10, 2, 2, 3, 8, 7, 2, 9, 4, 3, 3, 8, 1, 5, 5, 10, 1, 6, 2, 1, 1, 3, 1, 10, 1, 1, 2, 5, 4, 8, 10, 3, 7, 3, 5, 9, 2, 1, 4, 4, 6, 2, 1, 6, 6, 9, 4, 9, 7, 8, 5, 3, 6, 1, 1, 7, 6, 4, 9, 7, 8, 7, 6, 1, 10, 9, 5, 8, 6, 7, 10, 8, 9, 3, 5, 4, 2, 9, 1, 9, 1, 2, 9, 5, 8, 7, 10, 10, 8, 4, 7, 3, 4, 8, 9, 1, 1, 2, 2, 6, 3, 3, 4, 8, 9, 5, 9, 2, 4, 1, 8, 3, 8, 8, 10, 1, 3, 6, 4, 2, 6, 8, 1, 5, 8, 2, 3, 2, 7, 4, 10, 4, 5, 8, 9, 2, 6, 8, 5, 2, 10, 10, 2, 5, 1, 4, 10, 2, 10, 1, 8, 7, 4, 7, 8, 3, 4, 8, 5, 10, 9, 9, 5, 10, 10, 4, 6, 3, 6, 9, 2, 9, 8, 10, 8, 7, 7, 5, 7, 1, 9, 8, 2, 1, 8, 2, 4, 9, 2, 7, 4, 2, 8, 8, 6, 5, 3, 9, 2, 8, 7, 6, 6, 10, 1, 4, 6, 5, 10, 7, 3, 9, 6, 2, 5, 2, 6, 10, 6, 3, 3, 2, 10, 9, 10, 7, 1, 3, 4, 10, 8, 9, 5, 3, 5, 8, 8, 6, 6, 6, 4, 7, 10, 1, 5, 5, 6, 6, 1, 1, 2, 1, 5, 8, 8, 4, 8, 5, 3, 7, 7, 6, 9, 3, 1, 7, 10, 8, 6, 7, 7, 9, 7, 5, 7, 5, 1, 7, 4, 1, 9, 3, 5, 7, 6, 2, 1, 8, 8, 4, 7, 10, 5, 6, 1, 8, 1, 9, 7, 2, 4, 6, 5, 3, 7, 2, 9, 3, 2, 9, 1, 4, 1, 4, 2, 9, 8, 1, 3, 1, 10, 10, 4, 3, 4, 9, 2, 9, 8, 8, 10, 5, 9, 8, 4, 4, 8, 5, 3, 7, 5, 2, 1, 2, 2, 8, 7, 6, 3, 2, 7, 2, 3, 9, 5, 10, 5, 3, 4, 10, 1, 2, 7, 10, 2, 3, 2, 1, 5, 10, 4, 6, 2, 7, 7, 10, 3, 3, 4, 3, 1, 10, 7, 2, 1, 1, 2, 10, 8, 4, 1, 4, 10, 4, 5, 10, 9, 7, 8, 8, 7, 7, 8, 5, 10, 9, 5, 2, 6, 1, 1, 2, 5, 7, 7, 6, 5, 2, 3, 3, 2, 6, 7, 3, 9, 5, 6, 6, 1, 8, 3, 3, 2, 3, 3, 4, 1, 10, 1, 5, 5, 9, 2, 1, 8, 2, 7, 9, 8, 7, 2, 3, 10, 7, 8, 4, 3, 3, 3, 8, 8, 2, 7, 1, 5, 9, 4, 6, 6, 4, 1, 9, 7, 3, 8, 7, 7, 10, 9, 6, 4, 7, 1, 2, 3, 8, 6, 1, 3, 9, 6, 9, 6, 9, 1, 7, 2, 2, 2, 6, 2, 2, 9, 6, 7, 6, 1, 3, 10, 9, 2, 6, 3, 5, 1, 4, 10, 9, 4, 9, 5, 3, 8, 1, 2, 6, 2, 9, 7, 5, 5, 8, 8, 6, 3, 7, 8, 4, 10, 1, 1, 8, 4, 2, 6, 1, 7, 9, 5, 1, 9, 1, 3, 2, 5, 10, 8, 7, 1, 10, 3, 4, 6, 7, 8, 2, 3, 9, 2, 6, 1, 2, 4, 6, 2, 6, 10, 2, 6, 2, 9, 10, 8, 1, 5, 6, 2, 1, 8, 10, 4, 3, 3, 1, 9, 1, 10, 6, 1, 4, 6, 6, 3, 4, 4, 2, 7, 3, 2, 8, 9, 8, 3, 9, 4, 1, 1, 9, 9, 4, 2, 6, 5, 10, 5, 7, 3, 2, 10, 8, 1, 2, 6, 7, 9, 3, 2, 2, 6, 8, 10, 4, 3, 4, 6, 9, 8, 10, 2, 6, 7, 5, 4, 10, 7, 3, 8, 2, 1, 8, 4, 6, 7, 2, 6, 3, 10, 3, 6, 3, 3, 2, 6, 8, 5, 2, 2, 9, 1, 1, 2, 6, 2, 8, 5, 7, 2, 7, 4, 7, 4, 4, 5, 3, 4, 3, 8, 6, 4, 1, 9, 7, 3, 10, 7, 5, 7, 2, 3, 8, 4, 10, 7, 2, 8, 7, 4, 9, 2, 6, 6, 1, 5, 4, 5, 3, 1, 4, 6, 5, 2, 6, 7, 5, 5, 9, 2, 3, 9, 9, 1, 9, 8, 7, 9, 3, 8, 4, 4, 4, 1, 3, 3, 5, 7, 4, 8, 4, 1, 7, 7, 2, 10, 1, 4, 10, 7, 2, 10, 4, 3, 9, 9, 4, 8, 6, 3, 7, 1, 9, 8, 10, 3, 1, 8, 5, 4, 4, 8, 6, 3, 8, 3, 7, 10, 2, 8, 5, 1, 7, 4, 4, 8, 5, 7, 4, 1, 10, 7, 10, 10, 2, 9, 2, 8, 9, 2, 9, 2, 5, 4, 10, 2, 1, 1, 2, 3, 3, 6, 7, 2, 6, 2, 4, 4, 3, 5, 7, 9, 4, 7, 6, 3, 10, 10, 5, 3, 3, 3, 6, 4, 10, 2, 7, 4, 8, 9, 1, 4, 10, 2, 9, 4, 7, 8, 3, 3, 4, 7, 5, 8, 8, 10, 5, 1, 6, 6, 4, 6, 9, 10, 4, 2, 10, 6, 2, 3, 2, 8, 5, 7, 4, 2, 3, 4, 7, 10, 1, 8, 2, 2, 6, 1, 8, 2, 9, 3, 10, 2, 3, 4, 6, 10, 4, 3, 7, 2, 2, 1, 9, 5, 10, 8, 1, 2, 1, 6, 4, 4, 7, 7, 5, 7, 2, 9, 1, 8, 5, 8, 3, 7, 7, 5, 10, 1, 3, 10, 2, 2, 5, 1, 4, 9, 8, 7, 10, 6, 1, 1, 3, 7, 1, 5, 1, 6, 5, 2, 3, 2, 9, 5, 8, 6, 3, 1, 1, 1, 1, 2, 5, 6, 5, 6, 7, 6, 1, 1, 2, 10, 4, 2, 1, 5, 5, 2, 8, 8, 10, 5, 2, 1, 4, 1, 5, 3, 6, 5, 2, 5, 10, 5, 8, 2, 2, 2, 8, 4, 10, 10, 1, 3, 10, 1, 4, 8, 5, 8, 1, 3, 3, 9, 6, 9, 7, 2, 8, 2, 4, 1, 9, 9, 4, 4, 7, 2, 4, 9, 6, 8, 3, 8, 8, 10, 4, 4, 4, 7, 1, 5, 1, 2, 10, 4, 10, 1, 7, 8, 1, 2, 2, 3, 1, 2, 2, 2, 9, 1, 10, 4, 2, 7, 8, 9, 2, 8, 4, 4, 3, 3, 9, 5, 6, 8, 5, 8, 3, 10, 5, 1, 2, 3, 2, 4, 4, 9, 2, 4, 7, 3, 6, 6, 2, 7, 1, 7, 2, 7, 9, 2, 4, 9, 4, 6, 5, 8, 6, 3, 1, 8, 4, 10, 4, 5, 7, 2, 10, 4, 10, 9, 4, 9, 2, 6, 10, 3, 6, 7, 2, 8, 2, 7, 2, 2, 9, 8, 1, 8, 2, 7, 10, 9, 4, 9, 9, 8, 9, 5, 1, 3, 7, 9, 6, 6, 2, 10, 6, 10, 1, 8, 2, 4, 4, 1, 8, 4, 8, 3, 3, 5, 1, 4, 2, 9, 8, 5, 2, 2, 3, 9, 9, 10, 4, 1, 10, 5, 9, 7, 4, 6, 8, 8, 5, 9, 3, 7, 9, 9, 3, 1, 4, 6, 9, 1, 8, 5, 5, 8, 1, 1, 4, 5, 1, 7, 9, 8, 8, 6, 2, 2, 3, 7, 6, 1, 7, 1, 8, 10, 10, 1, 8, 9, 4, 9, 7, 10, 8, 3, 2, 6, 5, 10, 2, 3, 10, 10, 5, 2, 8, 4, 3, 8, 1, 3, 7, 3, 3, 4, 8, 4, 4, 7, 10, 1, 4, 6, 7, 3, 9, 4, 7, 4, 4, 10, 2, 6, 2, 5, 4, 4, 2, 10, 6, 5, 2, 1, 5, 7, 10, 7, 1, 7, 1, 9, 4, 3, 6, 6, 4, 6, 2, 10, 3, 3, 10, 5, 8, 7, 7, 4, 10, 1, 5, 5, 4, 4, 9, 2, 1, 3, 9, 10, 9, 8, 1, 5, 3, 1, 6, 10, 1, 3, 9, 2, 3, 3, 9, 3, 8, 7, 3, 9, 8, 1, 1, 5, 10, 7, 3, 3, 8, 10, 1, 3, 2, 8, 2, 8, 3, 5, 6, 10, 6, 7, 4, 5, 5, 10, 5, 7, 4, 10, 7, 2, 4, 4, 9, 6, 1, 1, 9, 1, 10, 10, 3, 4, 10, 4, 8, 1, 7, 9, 1, 5, 4, 3, 2, 1, 7, 2, 6, 4, 3, 10, 4, 9, 8, 8, 2, 10, 5, 2, 4, 5, 6, 8, 6, 1, 3, 4, 1, 5, 8, 7, 1, 8, 8, 9, 7, 3, 5, 8, 2, 7, 4, 10, 3, 8, 2, 6, 3, 9, 5, 5, 4, 3, 6, 9, 8, 1, 5, 10, 6, 1, 2, 4, 2, 9, 10, 4, 6, 8, 6, 9, 4, 3, 8, 4, 4, 1, 8, 2, 5, 5, 4, 5, 2, 6, 3, 2, 8, 8, 3, 3, 7, 2, 6, 2, 2, 8, 1, 9, 4, 4, 1, 2, 4, 9, 2, 10, 2, 6, 4, 8, 4, 1, 8, 5, 7, 1, 6, 6, 5, 5, 4, 7, 8, 5, 5, 9, 10, 4, 8, 1, 6, 6, 8, 5, 3, 9, 1, 10, 7, 3, 9, 4, 5, 8, 7, 6, 3, 3, 7, 9, 3, 8, 5, 9, 6, 1, 2, 10, 1, 10, 8, 6, 9, 10, 6, 10, 6, 3, 8, 8, 2, 3, 5, 3, 5, 3, 5, 3, 2, 9, 6, 8, 10, 9, 1, 1, 7, 5, 3, 7, 1, 9, 6, 6, 3, 8, 7, 5, 8, 8, 10, 3, 5, 4, 3, 6, 10, 9, 9, 5, 5, 5, 8, 3, 9, 6, 9, 10, 2, 1, 2, 2, 7, 10, 8, 5, 5, 2, 4, 10, 1, 6, 5, 9, 10, 4, 8, 3, 4, 8, 2, 2, 6, 5, 9, 5, 5, 7, 6, 4, 2, 9, 4, 2, 10, 3, 7, 4, 3, 5, 8, 1, 7, 9, 9, 2, 1, 5, 1, 3, 6, 7, 1, 4, 3, 7, 3, 4, 4, 2, 3, 8, 3, 1, 5, 1, 5, 9, 1, 4, 6, 9, 3, 2, 2, 9, 1, 6, 2, 6, 9, 7, 3, 3, 2, 4, 5, 1, 6, 6, 2, 9, 10, 3, 7, 8, 9, 3, 9, 6, 2, 1, 4, 6, 6, 6, 4, 1, 6, 6, 4, 7, 1, 3, 10, 3, 1, 4, 10, 9, 4, 6, 7, 3, 10, 6, 10, 7, 7, 7, 9, 8, 2, 6, 9, 2, 5, 7, 6, 7, 6, 2, 6, 1, 4, 10, 8, 3, 4, 6, 10, 8, 1, 7, 10, 4, 10, 3, 6, 3, 9, 9, 4, 3, 8, 4, 4, 10, 5, 1, 7, 6, 10, 8, 9, 8, 10, 1, 5, 6, 4, 3, 7, 3, 5, 9, 7, 10, 1, 9, 3, 2, 7, 5, 10, 10, 5, 4, 1, 8, 4, 7, 8, 6, 5, 3, 8, 8, 10, 2, 1, 2, 10, 9, 6, 2, 7, 7, 7, 7, 2, 3, 10, 4, 9, 8, 8, 8, 4, 8, 8, 7, 6, 10, 10, 4, 8, 10, 7, 5, 3, 2, 6, 7, 7, 1, 5, 1, 3, 8, 2, 2, 8, 3, 5, 4, 4, 1, 6, 2, 8, 7, 7, 3, 9, 8, 5, 2, 10, 4, 1, 9, 2, 9, 6, 6, 8, 8, 1, 6, 7, 8, 10, 5, 9, 5, 1, 2, 8, 5, 2, 2, 7, 3, 4, 5, 3, 6, 4, 1, 6, 5, 6, 10, 6, 4, 3, 5, 10, 3, 1, 8, 3, 9, 1, 10, 8, 1, 2, 7, 8, 9, 5, 7, 4, 2, 3, 5, 1, 5, 2, 10, 6, 5, 4, 1, 3, 9, 2, 8, 2, 9, 3, 2, 6, 7, 5, 8, 9, 10, 1, 8, 4, 5, 10, 8, 8, 8, 4, 9, 9, 1, 2, 9, 1, 8, 3, 9, 10, 3, 4, 9, 8, 5, 9, 4, 6, 10, 1, 2, 5, 7, 8, 1, 1, 9, 4, 5, 5, 8, 3, 5, 10, 5, 8, 9, 2, 10, 2, 9, 2, 8, 5, 4, 1, 6, 9, 7, 9, 9, 9, 1, 7, 8, 6, 2, 5, 4, 6, 10, 7, 2, 8, 7, 9, 1, 3, 6, 9, 3, 7, 1, 7, 9, 4, 4, 6, 8, 3, 2, 2, 3, 9, 5, 1, 6, 1, 10, 6, 4, 4, 8, 9, 4, 7, 9, 7, 5, 4, 2, 8, 9, 6, 5, 6, 5, 8, 1, 10, 7, 4, 10, 4, 2, 2, 8, 2, 4, 3, 8, 6, 6, 8, 7, 9, 9, 3, 2, 2, 5, 7, 5, 9, 5, 2, 10, 8, 4, 8, 6, 3, 5, 7, 1, 7, 1, 7, 10, 5, 10, 10, 1, 9, 9, 6, 8, 9, 4, 10, 10, 6, 3, 1, 9, 6, 9, 2, 8, 2, 2, 8, 6, 1, 10, 3, 2, 1, 2, 7, 8, 10, 6, 6, 10, 8, 6, 9, 10, 10, 2, 3, 3, 8, 9, 7, 4, 8, 6, 5, 1, 4, 1, 6, 9, 2, 3, 7, 4, 1, 8, 3, 9, 2, 6, 8, 8, 2, 9, 7, 1, 6, 3, 6, 10, 10, 5, 6, 1, 3, 4, 7, 3, 8, 1, 2, 2, 3, 4, 5, 9, 4, 6, 5, 9, 6, 2, 7, 9, 9, 9, 1, 4, 7, 3, 9, 3, 10, 5, 9, 6, 10, 7, 9, 3, 4, 6, 2, 6, 5, 4, 4, 5, 1, 4, 7, 4, 9, 8, 1, 1, 10, 8, 1, 7, 10, 3, 4, 2, 7, 5, 8, 3, 10, 8, 4, 1, 8, 2, 3, 4, 7, 4, 8, 8, 3, 1, 5, 8, 1, 6, 10, 1, 10, 10, 7, 10, 6, 3, 5, 3, 9, 2, 3, 2, 2, 1, 5, 6, 1, 5, 9, 10, 7, 2, 8, 9, 7, 9, 4, 6, 6, 8, 9, 8, 6, 9, 3, 2, 6, 5, 8, 1, 9, 10, 7, 2, 10, 7, 3, 10, 3, 10, 7, 2, 3, 6, 9, 3, 2, 5, 6, 1, 1, 10, 3, 5, 10, 8, 6, 5, 6, 2, 2, 10, 2, 5, 6, 1, 3, 7, 3, 3, 1, 8, 1, 7, 3, 10, 10, 1, 4, 3, 6, 4, 8, 2, 4, 9, 3, 2, 1, 7, 6, 1, 5, 1, 9, 8, 8, 9, 4, 2, 8, 1, 7, 5, 6, 4, 6, 4, 3, 6, 7, 2, 2, 3, 9, 7, 1, 2, 7, 5, 3, 6, 7, 4, 7, 3, 5, 10, 9, 2, 8, 7, 7, 2, 2, 10, 8, 3, 2, 9, 5, 5, 10, 1, 1, 1, 1, 2, 10, 9, 10, 7, 7, 1, 9, 7, 7, 9, 1, 7, 7, 1, 7, 2, 2, 9, 10, 3, 8, 9, 1, 4, 3, 5, 2, 6, 7, 10, 7, 1, 3, 7, 5, 5, 4, 4, 10, 1, 1, 2, 3, 10, 6, 1, 2, 10, 6, 6, 2, 10, 4, 10, 1, 7, 10, 5, 6, 7, 1, 2, 3, 5, 9, 5, 6, 2, 10, 5, 1, 1, 4, 4, 3, 10, 8, 6, 6, 7, 10, 10, 2, 5, 6, 4, 3, 7, 8, 2, 7, 5, 3, 3, 1, 9, 10, 7, 2, 5, 5, 7, 1, 7, 8, 2, 9, 10, 9, 4, 8, 5, 9, 6, 8, 10, 6, 9, 8, 7, 4, 7, 6, 5, 2, 8, 10, 9, 2, 10, 8, 9, 8, 2, 5, 7, 4, 8, 9, 3, 8, 7, 7, 5, 2, 5, 1, 8, 5, 5, 3, 2, 1, 10, 7, 7, 9, 2, 8, 3, 9, 9, 3, 3, 8, 1, 8, 5, 4, 7, 10, 4, 10, 9, 6, 1, 5, 10, 7, 1, 1, 2, 10, 7, 6, 5, 7, 5, 4, 10, 4, 7, 4, 3, 6, 6, 4, 4, 9, 1, 8, 6, 7, 9, 10, 8, 6, 8, 3, 5, 8, 10, 9, 2, 10, 7, 3, 2, 9, 7, 3, 8, 1, 9, 8, 3, 8, 1, 5, 7, 10, 6, 4, 9, 10, 5, 10, 1, 9, 1, 7, 8, 3, 1, 4, 10, 2, 5, 3, 8, 3, 3, 8, 3, 6, 1, 1, 5, 1, 3, 8, 8, 2, 6, 1, 5, 8, 6, 10, 1, 4, 7, 5, 1, 2, 5, 7, 6, 3, 10, 9, 1, 10, 5, 1, 7, 5, 4, 7, 7, 3, 9, 10, 7, 8, 2, 3, 9, 2, 5, 4, 8, 6, 7, 4, 1, 3, 5, 1, 3, 2, 7, 4, 10, 3, 8, 4, 7, 2, 2, 2, 7, 6, 10, 7, 7, 1, 2, 4, 2, 8, 8, 6, 1, 10, 5, 4, 6, 8, 1, 1, 3, 2, 1, 9, 1, 5, 8, 7, 9, 7, 10, 8, 8, 8, 3, 9, 9, 3, 1, 5, 10, 2, 9, 9, 2, 6, 3, 7, 4, 3, 1, 2, 10, 7, 1, 9, 3, 4, 2, 8, 2, 2, 1, 9, 6, 9, 10, 5, 7, 2, 3, 1, 7, 2, 7, 1, 4, 4, 8, 4, 5, 7, 8, 3, 2, 1, 1, 8, 8, 1, 9, 4, 2, 5, 7, 8, 9, 10, 2, 2, 1, 8, 6, 7, 5, 5, 9, 10, 5, 10, 6, 10, 6, 9, 4, 7, 6, 4, 9, 9, 2, 10, 1, 8, 5, 8, 10, 1, 3, 1, 9, 6, 6, 6, 10, 4, 2, 8, 9, 10, 3, 1, 8, 5, 6, 9, 6, 6, 6, 10, 9, 9, 2, 3, 8, 6, 7, 8, 3, 10, 3, 7, 6, 7, 2, 8, 7, 9, 9, 8, 5, 4, 4, 6, 10, 8, 1, 2, 9, 7, 6, 2, 2, 10, 4, 4, 2, 3, 2, 2, 2, 2, 9, 5, 7, 1, 5, 7, 2, 8, 9, 6, 8, 6, 4, 3, 9, 5, 1, 2, 7, 10, 1, 5, 8, 1, 2, 2, 5, 4, 3, 9, 9, 1, 3, 5, 2, 3, 5, 7, 8, 4, 8, 2, 6, 1, 8, 7, 6, 9, 4, 7, 10, 10, 6, 4, 5, 2, 1, 8, 4, 3, 10, 1, 5, 8, 5, 5, 1, 6, 5, 3, 7, 4, 4, 1, 2, 1, 6, 7, 2, 7, 3, 5, 1, 1, 1, 3, 5, 10, 1, 9, 8, 2, 1, 10, 10, 8, 6, 4, 4, 7, 5, 3, 4, 8, 6, 10, 4, 7, 4, 2, 2, 7, 10, 1, 9, 8, 1, 1, 6, 5, 2, 5, 8, 10, 5, 1, 8, 4, 8, 10, 7, 4, 10, 1, 6, 3, 3, 6, 3, 10, 1, 10, 5, 5, 7, 5, 7, 2, 3, 1, 9, 7, 4, 1, 9, 4, 2, 4, 2, 10, 9, 8, 7, 6, 3, 8, 5, 6, 3, 5, 3, 8, 4, 2, 2, 4, 1, 9, 5, 2, 5, 2, 10, 2, 1, 5, 9, 9, 8, 8, 9, 2, 8, 4, 4, 3, 5, 1, 5, 8, 4, 9, 1, 2, 5, 6, 3, 2, 8, 3, 6, 3, 10, 5, 7, 8, 8, 3, 1, 4, 8, 1, 10, 6, 3, 10, 4, 7, 5, 10, 4, 10, 4, 10, 1, 1, 4, 5, 3, 2, 6, 10, 3, 4, 10, 2, 8, 10, 8, 7, 9, 10, 6, 9, 6, 3, 2, 9, 2, 6, 8, 9, 2, 7, 8, 2, 3, 6, 8, 3, 6, 8, 1, 4, 6, 8, 10, 9, 5, 6, 7, 3, 1, 8, 3, 5, 2, 1, 6, 5, 8, 9, 10, 6, 10, 2, 7, 1, 10, 4, 3, 6, 5, 8, 4, 2, 7, 2, 6, 1, 9, 10, 5, 9, 8, 6, 6, 10, 3, 3, 7, 5, 9, 7, 4, 1, 2, 6, 2, 8, 5, 3, 9, 7, 7, 10, 6, 1, 6, 5, 8, 9, 3, 2, 5, 10, 2, 1, 5, 3, 7, 3, 9, 8, 9, 5, 10, 8, 9, 8, 7, 8, 4, 8, 3, 10, 1, 9, 1, 8, 7, 7, 8, 2, 1, 1, 4, 2, 1, 10, 7, 2, 5, 9, 2, 3, 9, 4, 8, 10, 10, 7, 4, 5, 6, 3, 3, 6, 9, 8, 1, 3, 6, 3, 4, 3, 10, 6, 6, 5, 5, 1, 6, 2, 5, 2, 6, 4, 5, 3, 2, 9, 1, 3, 8, 7, 4, 10, 1, 3, 2, 7, 2, 8, 6, 9, 8, 1, 9, 4, 2, 3, 9, 8, 2, 3, 10, 5, 4, 8, 3, 7, 1, 8, 4, 10, 5, 2, 9, 4, 3, 9, 5, 4, 6, 5, 9, 3, 7, 2, 3, 4, 3, 5, 10, 5, 1, 1, 1, 8, 3, 9, 8, 10, 5, 8, 8, 7, 3, 3, 4, 2, 8, 2, 5, 4, 2, 9, 9, 1, 10, 7, 5, 6, 2, 3, 8, 5, 10, 7, 9, 10, 5, 5, 9, 10, 10, 9, 4, 2, 3, 9, 6, 4, 2, 10, 1, 3, 4, 7, 10, 4, 5, 6, 1, 7, 10, 8, 7, 10, 4, 10, 5, 10, 10, 5, 3, 3, 9, 6, 9, 7, 9, 2, 9, 5, 1, 4, 6, 3, 6, 9, 8, 4, 9, 2, 3, 2, 6, 5, 4, 8, 7, 8, 8, 2, 9, 6, 6, 8, 6, 5, 10, 10, 4, 5, 10, 9, 10, 2, 9, 9, 8, 3, 4, 9, 7, 9, 1, 1, 3, 2, 10, 6, 10, 1, 7, 1, 3, 2, 3, 9, 7, 9, 8, 9, 3, 5, 1, 6, 9, 10, 8, 2, 8, 6, 6, 8, 1, 9, 6, 9, 4, 1, 1, 4, 8, 6, 9, 7, 10, 5, 5, 9, 8, 10, 9, 6, 6, 9, 10, 6, 6, 6, 3, 2, 5, 1, 1, 8, 5, 3, 2, 1, 3, 7, 6, 3, 5, 4, 4, 4, 5, 2, 5, 8, 1, 10, 9, 9, 2, 2, 10, 4, 4, 8, 5, 4, 8, 5, 5, 9, 7, 9, 10, 10, 4, 2, 9, 3, 10, 9, 6, 10, 7, 8, 4, 5, 8, 8, 9, 1, 1, 6, 8, 2, 10, 4, 7, 1, 4, 6, 7, 3, 4, 1, 7, 7, 1, 8, 3, 1, 6, 6, 8, 10, 8, 6, 1, 10, 9, 5, 6, 1, 1, 9, 5, 5, 7, 7, 6, 8, 1, 10, 8, 10, 5, 2, 4, 2, 9, 4, 2, 3, 9, 7, 10, 8, 10, 4, 7, 10, 2, 5, 9, 8, 1, 4, 1, 10, 7, 3, 4, 1, 8, 8, 9, 5, 3, 8, 1, 1, 5, 10, 9, 10, 7, 7, 4, 3, 10, 10, 5, 5, 5, 2, 5, 4, 5, 6, 7, 8, 6, 9, 2, 9, 5, 7, 9, 10, 3, 1, 2, 4, 2, 3, 4, 4, 5, 9, 8, 7, 9, 5, 1, 10, 9, 8, 6, 3, 6, 8, 5, 9, 1, 1, 3, 3, 6, 6, 7, 9, 3, 8, 2, 8, 8, 1, 2, 9, 6, 6, 6, 5, 10, 6, 8, 9, 10, 10, 10, 3, 6, 4, 4, 7, 4, 10, 10, 7, 7, 5, 6, 3, 8, 4, 8, 4, 1, 10, 6, 6, 8, 3, 9, 5, 8, 5, 1, 4, 6, 6, 9, 5, 10, 5, 2, 6, 7, 6, 10, 2, 7, 5, 5, 1, 7, 9, 4, 9, 2, 2, 4, 10, 6, 9, 5, 8, 6, 10, 1, 3, 7, 2, 4, 3, 7, 1, 1, 9, 8, 6, 4, 2, 3, 5, 2, 6, 7, 3, 3, 3, 5, 10, 10, 4, 7, 5, 8, 8, 1, 6, 7, 10, 3, 7, 10, 10, 8, 10, 1, 1, 9, 8, 3, 3, 9, 4, 1, 5, 9, 8, 4, 9, 2, 4, 8, 9, 3, 2, 6, 7, 10, 4, 4, 4, 2, 2, 10, 5, 1, 2, 3, 1, 8, 3, 10, 3, 3, 4, 4, 7, 5, 2, 4, 8, 10, 1, 7, 9, 2, 10, 2, 6, 5, 8, 2, 8, 3, 8, 3, 8, 6, 2, 6, 5, 2, 6, 1, 7, 2, 10, 8, 8, 4, 8, 3, 2, 6, 3, 1, 8, 3, 9, 3, 7, 6, 8, 4, 8, 2, 4, 8, 9, 1, 4, 9, 1, 9, 7, 5, 6, 4, 1, 6, 9, 9, 10, 4, 7, 4, 5, 3, 6, 5, 5, 8, 6, 3, 6, 6, 4, 7, 9, 5, 5, 10, 10, 9, 8, 10, 4, 3, 10, 4, 7, 8, 8, 8, 8, 4, 7, 10, 7, 4, 4, 1, 1, 1, 2, 7, 6, 3, 10, 10, 10, 2, 6, 4, 9, 3, 2, 2, 10, 9, 4, 2, 5, 9, 3, 9, 5, 9, 6, 7, 9, 2, 5, 4, 2, 9, 10, 6, 2, 5, 3, 7, 1, 4, 8, 1, 1, 8, 10, 6, 10, 4, 3, 6, 5, 3, 4, 7, 10, 6, 6, 1, 7, 8, 9, 10, 4, 4, 8, 1, 5, 4, 1, 3, 6, 8, 8, 4, 7, 10, 6, 10, 6, 2, 5, 6, 3, 4, 6, 10, 4, 10, 9, 1, 8, 2, 6, 1, 7, 9, 5, 4, 10, 1, 3, 9, 7, 9, 10, 4, 7, 10, 10, 5, 3, 6, 6, 6, 5, 2, 6, 6, 5, 9, 7, 2, 9, 7, 3, 4, 6, 8, 1, 9, 10, 7, 6, 10, 3, 4, 3, 8, 6, 5, 7, 9, 4, 7, 2, 9, 5, 7, 5, 3, 6, 3, 10, 8, 10, 6, 10, 4, 10, 10, 2, 9, 9, 9, 4, 2, 8, 1, 7, 5, 7, 2, 8, 1, 5, 4, 5, 9, 10, 6, 10, 7, 9, 10, 7, 4, 8, 2, 3, 8, 9, 7, 10, 8, 6, 5, 10, 7, 10, 1, 8, 3, 5, 10, 3, 8, 4, 4, 9, 10, 9, 2, 5, 2, 5, 5, 2, 8, 7, 4, 5, 1, 1, 8, 3, 7, 3, 3, 5, 2, 4, 8, 5, 3, 7, 3, 4, 1, 2, 3, 10, 8, 7, 10, 10, 8, 9, 9, 6, 2, 1, 7, 9, 9, 2, 10, 9, 3, 3, 10, 7, 8, 1, 9, 3, 3, 6, 1, 9, 4, 3, 8, 5, 7, 6, 10, 3, 7, 1, 9, 8, 2, 8, 9, 2, 6, 2, 3, 10, 2, 1, 10, 10, 1, 8, 9, 3, 4, 5, 4, 1, 5, 4, 10, 5, 1, 8, 10, 5, 10, 7, 7, 7, 10, 10, 2, 1, 1, 4, 1, 8, 5, 9, 3, 8, 8, 8, 10, 5, 7, 9, 8, 3, 4, 7, 9, 5, 1, 10, 7, 9, 6, 1, 8, 7, 10, 7, 3, 7, 4, 2, 2, 6, 3, 10, 5, 10, 3, 8, 10, 2, 8, 6, 10, 6, 5, 3, 10, 9, 1, 4, 5, 4, 6, 2, 2, 3, 7, 5, 8, 9, 7, 1, 4, 10, 10, 5, 5, 5, 8, 3, 6, 8, 5, 3, 3, 2, 6, 8, 8, 2, 3, 9, 7, 5, 7, 5, 6, 8, 5, 4, 7, 7, 6, 10, 1, 2, 8, 5, 7, 3, 8, 1, 3, 1, 4, 6, 7, 6, 2, 5, 7, 4, 6, 7, 3, 9, 2, 3, 9, 3, 9, 4, 7, 9, 6, 4, 9, 1, 8, 9, 5, 10, 9, 2, 1, 1, 7, 4, 6, 9, 4, 8, 3, 3, 4, 3, 3, 10, 6, 2, 3, 1, 3, 3, 6, 1, 10, 10, 4, 9, 4, 6, 8, 3, 4, 8, 8, 10, 10, 9, 6, 2, 3, 5, 9, 1, 5, 5, 2, 3, 8, 7, 10, 9, 3, 7, 9, 4, 6, 3, 7, 10, 5, 3, 8, 4, 5, 3, 1, 9, 9, 3, 2, 6, 2, 5, 5, 6, 2, 2, 4, 2, 10, 3, 2, 1, 8, 10, 10, 6, 10, 6, 8, 9, 4, 1, 10, 5, 10, 3, 9, 3, 4, 6, 8, 2, 1, 2, 9, 3, 8, 1, 1, 9, 6, 6, 2, 2, 8, 10, 1, 6, 9, 2, 5, 1, 1, 1, 4, 9, 8, 6, 1, 7, 3, 8, 7, 1, 9, 6, 1, 5, 2, 4, 9, 1, 5, 6, 5, 1, 8, 6, 9, 2, 3, 1, 6, 4, 9, 6, 8, 5, 8, 7, 7, 8, 2, 6, 1, 1, 5, 9, 4, 5, 6, 8, 6, 10, 6, 3, 4, 9, 3, 1, 9, 8, 8, 9, 7, 4, 7, 1, 7, 7, 5, 2, 3, 3, 8, 2, 5, 8, 1, 3, 8, 7, 3, 8, 10, 4, 9, 5, 6, 2, 7, 7, 6, 10, 5, 10, 4, 5, 9, 7, 8, 3, 4, 8, 2, 10, 7, 5, 7, 5, 6, 4, 10, 2, 1, 5, 1, 1, 5, 3, 4, 7, 9, 1, 4, 1, 9, 8, 10, 4, 8, 9, 7, 10, 5, 5, 10, 4, 9, 3, 3, 9, 10, 5, 1, 8, 5, 2, 4, 3, 5, 5, 7, 3, 5, 7, 1, 4, 4, 9, 5, 1, 7, 1, 2, 6, 9, 5, 1, 9, 2, 1, 2, 8, 7, 5, 1, 7, 3, 3, 8, 9, 5, 4, 7, 5, 2, 5, 7, 10, 7, 7, 9, 10, 1, 3, 5, 3, 4, 6, 1, 4, 9, 1, 5, 9, 3, 1, 2, 5, 2, 4, 9, 2, 2, 5, 10, 6, 2, 2, 10, 4, 5, 10, 10, 1, 3, 8, 5, 3, 4, 9, 7, 2, 5, 9, 1, 10, 2, 9, 7, 8, 6, 5, 9, 8, 4, 3, 2, 7, 5, 10, 5, 9, 7, 10, 6, 9, 8, 5, 9, 2, 8, 4, 3, 10, 7, 5, 10, 4, 5, 1, 5, 2, 2, 8, 6, 5, 10, 9, 9, 6, 10, 5, 10, 2, 7, 6, 10, 10, 8, 8, 1, 5, 10, 10, 5, 2, 7, 7, 8, 9, 9, 3, 9, 7, 7, 2, 1, 5, 9, 10, 9, 1, 2, 9, 10, 1, 10, 3, 5, 6, 9, 7, 9, 5, 7, 10, 4, 8, 8, 2, 8, 10, 10, 6, 2, 2, 2, 9, 8, 2, 1, 4, 7, 7, 1, 8, 8, 7, 7, 9, 8, 7, 4, 5, 3, 1, 6, 2, 8, 1, 9, 6, 4, 8, 6, 4, 1, 1, 4, 2, 8, 5, 7, 10, 3, 4, 7, 10, 7, 4, 8, 1, 2, 5, 10, 9, 5, 3, 1, 1, 7, 8, 4, 6, 9, 5, 4, 1, 7, 7, 6, 5, 7, 6, 5, 9, 6, 9, 7, 4, 2, 2, 6, 2, 10, 9, 5, 2, 1, 9, 5, 9, 8, 3, 7, 1, 8, 3, 9, 3, 6, 5, 3, 3, 7, 3, 6, 1, 4, 7, 9, 8, 2, 4, 9, 6, 2, 7, 5, 3, 6, 8, 5, 8, 5, 5, 8, 6, 6, 5, 3, 1, 5, 5, 8, 2, 9, 4, 6, 5, 7, 10, 7, 1, 4, 8, 5, 8, 1, 1, 5, 10, 4, 4, 4, 5, 1, 2, 3, 2, 2, 6, 4, 8, 3, 7, 4, 1, 4, 7, 3, 10, 3, 5, 4, 7, 2, 10, 2, 7, 3, 10, 6, 4, 5, 9, 3, 9, 10, 5, 9, 6, 9, 3, 1, 5, 3, 6, 6, 2, 7, 10, 8, 8, 3, 4, 5, 5, 7, 3, 6, 4, 2, 5, 10, 1, 10, 7, 6, 2, 5, 5, 9, 1, 8, 7, 6, 4, 7, 7, 5, 6, 8, 9, 7, 1, 10, 3, 8, 3, 9, 3, 1, 10, 9, 8, 5, 3, 7, 1, 9, 4, 9, 1, 4, 10, 3, 9, 10, 5, 1, 2, 9, 6, 9, 6, 5, 4, 9, 2, 3, 5, 4, 10, 1, 9, 3, 2, 3, 3, 5, 7, 3, 8, 7, 2, 8, 4, 2, 4, 10, 8, 4, 6, 8, 9, 3, 4, 8, 2, 5, 10, 1, 7, 4, 8, 8, 10, 4, 4, 4, 6, 4, 8, 9, 8, 2, 6, 2, 10, 6, 10, 5, 7, 2, 9, 7, 2, 9, 3, 3, 10, 5, 5, 6, 5, 6, 9, 2, 2, 2, 7, 5, 3, 6, 5, 3, 4, 9, 10, 6, 8, 8, 1, 4, 5, 6, 9, 9, 9, 7, 4, 8, 7, 4, 7, 1, 4, 1, 9, 7, 6, 5, 6, 9, 5, 4, 4, 2, 2, 6, 4, 2, 1, 9, 4, 5, 10, 9, 1, 6, 5, 3, 5, 7, 6, 2, 2, 4, 5, 5, 8, 7, 7, 8, 7, 5, 5, 4, 8, 2, 3, 5, 5, 10, 10, 5, 7, 10, 4, 4, 9, 1, 1, 7, 5, 7, 6, 1, 9, 5, 4, 2, 9, 7, 7, 7, 1, 10, 8, 1, 3, 4, 2, 4, 3, 3, 5, 9, 3, 6, 10, 5, 1, 10, 1, 1, 1, 5, 9, 2, 3, 9, 10, 8, 10, 8, 9, 2, 6, 10, 10, 4, 5, 5, 10, 6, 3, 4, 1, 7, 8, 6, 8, 4, 9, 2, 7, 7, 1, 5, 9, 5, 2, 4, 1, 3, 2, 5, 1, 9, 8, 2, 2, 4, 3, 2, 10, 6, 9, 6, 9, 10, 4, 2, 10, 1, 6, 4, 10, 1, 4, 10, 8, 2, 2, 8, 4, 10, 8, 1, 8, 2, 1, 9, 9, 4, 4, 8, 6, 10, 3, 2, 6, 1, 5, 7, 10, 10, 1, 1, 9, 9, 4, 10, 1, 5, 5, 5, 5, 5, 4, 8, 1, 4, 5, 7, 1, 9, 6, 8, 7, 9, 5, 3, 8, 9, 5, 4, 1, 6, 2, 4, 5, 10, 5, 6, 7, 6, 10, 10, 9, 7, 5, 6, 6, 3, 8, 4, 6, 7, 6, 4, 1, 9, 8, 3, 5, 10, 3, 10, 7, 1, 10, 10, 5, 5, 6, 9, 4, 6, 10, 9, 5, 4, 1, 2, 10, 9, 6, 4, 3, 5, 5, 9, 4, 7, 1, 10, 8, 5, 1, 10, 9, 9, 8, 9, 5, 8, 7, 4, 4, 3, 9, 10, 7, 2, 1, 4, 5, 8, 4, 6, 4, 6, 5, 10, 4, 10, 10, 9, 9, 2, 3, 10, 5, 8, 3, 10, 4, 1, 3, 2, 5, 5, 7, 10, 8, 7, 6, 7, 5, 3, 8, 5, 1, 2, 4, 1, 6, 6, 10, 6, 4, 7, 7, 3, 9, 10, 9, 9, 6, 10, 9, 6, 4, 1, 3, 5, 1, 1, 10, 8, 7, 1, 6, 6, 4, 10, 2, 10, 8, 4, 1, 8, 6, 3, 8, 3, 6, 6, 7, 3, 1, 2, 10, 10, 7, 8, 4, 3, 8, 6, 4, 8, 9, 5, 2, 5, 7, 7, 3, 6, 1, 3, 3, 6, 2, 7, 1, 2, 2, 6, 8, 6, 6, 4, 4, 1, 1, 4, 2, 3, 9, 7, 10, 6, 8, 2, 7, 7, 4, 6, 7, 10, 2, 7, 10, 1, 10, 9, 5, 4, 6, 9, 5, 3, 3, 7, 5, 7, 10, 5, 4, 3, 6, 4, 10, 4, 1, 4, 10, 3, 4, 3, 4, 5, 1, 1, 4, 9, 1, 1, 6, 1, 10, 3, 4, 9, 9, 4, 8, 2, 6, 7, 6, 5, 3, 10, 3, 5, 10, 2, 1, 4, 7, 9, 1, 2, 10, 6, 4, 10, 7, 9, 3, 9, 10, 8, 7, 5, 2, 8, 5, 10, 4, 6, 10, 2, 7, 1, 6, 1, 10, 2, 7, 10, 9, 6, 10, 4, 7, 2, 10, 3, 10, 3, 9, 7, 3, 6, 3, 7, 4, 6, 9, 7, 4, 2, 1, 4, 3, 2, 8, 9, 4, 1, 6, 7, 7, 1, 2, 10, 7, 6, 2, 5, 7, 8, 6, 3, 3, 1, 6, 5, 7, 7, 2, 6, 9, 9, 5, 1, 6, 10, 6, 6, 3, 3, 4, 10, 6, 8, 5, 8, 1, 6, 7, 1, 6, 8, 4, 5, 2, 4, 7, 8, 3, 9, 2, 5, 1, 4, 4, 1, 6, 2, 9, 2, 3, 4, 10, 4, 7, 7, 9, 7, 10, 8, 10, 1, 9, 5, 6, 4, 1, 9, 9, 5, 2, 7, 9, 5, 7, 3, 6, 2, 2, 5, 1, 1, 6, 4, 8, 2, 7, 7, 5, 9, 8, 3, 8, 8, 2, 7, 10, 2, 4, 1, 9, 8, 9, 9, 7, 6, 4, 9, 6, 3, 2, 3, 10, 10, 4, 3, 10, 2, 5, 3, 9, 6, 7, 8, 5, 5, 6, 9, 8, 5, 7, 10, 9, 2, 1, 9, 7, 5, 10, 4, 5, 9, 10, 3, 8, 7, 8, 3, 8, 3, 6, 5, 9, 10, 2, 10, 9, 8, 10, 5, 5, 3, 10, 4, 6, 2, 6, 8, 7, 6, 3, 4, 2, 2, 6, 3, 10, 5, 8, 3, 6, 5, 10, 5, 10, 8, 7, 1, 10, 10, 2, 10, 10, 7, 1, 4, 1, 7, 1, 9, 2, 2, 3, 9, 8, 8, 4, 6, 6, 4, 4, 8, 5, 2, 6, 2, 9, 9, 1, 2, 6, 7, 2, 10, 5, 2, 3, 4, 10, 6, 4, 6, 4, 7, 3, 6, 2, 8, 9, 8, 2, 8, 6, 4, 8, 9, 4, 6, 8, 10, 3, 3, 3, 3, 3, 4, 7, 9, 7, 3, 6, 9, 8, 5, 5, 10, 8, 1, 5, 4, 5, 4, 1, 6, 10, 4, 7, 1, 6, 2, 4, 10, 5, 2, 5, 10, 5, 5, 4, 7, 4, 3, 9, 2, 7, 4, 1, 5, 6, 7, 1, 2, 4, 6, 3, 9, 2, 3, 4, 10, 9, 9, 5, 2, 1, 3, 9, 8, 7, 4, 8, 9, 3, 1, 7, 2, 2, 8, 9, 8, 2, 9, 9, 10, 5, 10, 10, 6, 1, 10, 3, 6, 9, 4, 8, 3, 5, 1, 10, 8, 2, 2, 10, 8, 9, 7, 4, 3, 3, 7, 2, 2, 5, 3, 10, 8, 8, 9, 8, 9, 6, 10, 7, 3, 9, 7, 7, 8, 5, 2, 9, 7, 2, 8, 3, 5, 8, 5, 1, 6, 3, 10, 2, 6, 7, 8, 6, 3, 4, 2, 10, 9, 8, 1, 9, 3, 8, 9, 2, 7, 8, 8, 10, 9, 8, 4, 6, 2, 10, 1, 4, 7, 9, 10, 2, 6, 10, 7, 10, 4, 6, 10, 1, 1, 2, 4, 5, 6, 5, 4, 2, 6, 7, 5, 3, 3, 6, 10, 9, 9, 2, 4, 4, 10, 9, 2, 1, 7, 6, 4, 5, 7, 9, 7, 1, 7, 2, 4, 5, 1, 2, 4, 8, 6, 10, 10, 5, 1, 8, 4, 8, 8, 5, 1, 2, 2, 6, 5, 5, 8, 3, 2, 6, 6, 5, 7, 8, 7, 4, 2, 6, 4, 2, 5, 7, 1, 4, 8, 4, 2, 3, 10, 8, 3, 10, 3, 5, 9, 3, 10, 1, 6, 1, 5, 10, 6, 3, 5, 9, 3, 6, 3, 1, 3, 6, 3, 8, 3, 5, 8, 4, 2, 6, 6, 8, 4, 8, 1, 10, 1, 8, 9, 9, 5, 7, 9, 1, 5, 5, 10, 1, 3, 4, 7, 6, 1, 10, 4, 5, 9, 10, 5, 4, 4, 6, 4, 4, 7, 9, 3, 8, 8, 7, 4, 3, 10, 5, 4, 5, 1, 9, 7, 6, 6, 6, 1, 7, 1, 6, 7, 3, 4, 2, 1, 3, 1, 6, 9, 4, 8, 8, 6, 10, 4, 4, 3, 5, 3, 3, 1, 4, 5, 9, 3, 1, 3, 4, 4, 6, 2, 1, 3, 10, 5, 3, 1, 7, 1, 6, 5, 3, 1, 10, 8, 9, 10, 7, 1, 7, 5, 7, 3, 9, 7, 9, 8, 9, 2, 6, 2, 1, 10, 9, 4, 9, 9, 8, 8, 6, 7, 6, 10, 2, 9, 5, 6, 4, 3, 1, 8, 2, 3, 9, 9, 8, 5, 4, 8, 10, 4, 3, 10, 10, 10, 2, 10, 2, 9, 3, 10, 1, 2, 3, 4, 10, 7, 7, 2, 7, 4, 8, 10, 2, 5, 5, 3, 8, 2, 6, 10, 9, 6, 2, 8, 10, 3, 4, 5, 8, 6, 4, 1, 5, 5, 9, 3, 1, 2, 10, 6, 4, 3, 5, 10, 1, 1, 4, 3, 10, 8, 7, 4, 5, 1, 3, 6, 2, 10, 5, 1, 10, 2, 1, 9, 4, 5, 4, 4, 6, 7, 5, 10, 1, 6, 10, 6, 6, 8, 9, 5, 1, 6, 9, 4, 1, 2, 8, 10, 3, 2, 1, 3, 5, 6, 5, 10, 8, 9, 6, 6, 8, 2, 8, 6, 10, 5, 4, 1, 7, 8, 10, 4, 1, 3, 1, 6, 7, 2, 9, 9, 9, 1, 5, 7, 1, 1, 1, 1, 7, 6, 8, 4, 6, 9, 7, 5, 7, 2, 8, 8, 4, 8, 2, 7, 9, 7, 7, 6, 9, 4, 1, 6, 2, 3, 5, 5, 5, 2, 9, 6, 10, 4, 9, 7, 1, 5, 10, 3, 4, 9, 10, 4, 2, 5, 6, 1, 4, 6, 3, 8, 4, 5, 5, 9, 9, 6, 7, 4, 9, 1, 10, 6, 4, 10, 9, 7, 10, 3, 3, 2, 8, 10, 6, 3, 3, 5, 7, 8, 8, 1, 10, 5, 3, 2, 9, 9, 10, 2, 8, 2, 8, 1, 7, 1, 10, 6, 2, 2, 1, 5, 5, 8, 8, 2, 9, 10, 6, 8, 4, 6, 9, 8, 6, 8, 4, 3, 6, 10, 6, 4, 6, 1, 8, 7, 6, 3, 2, 4, 9, 1, 8, 1, 6, 6, 4, 10, 10, 5, 5, 7, 6, 8, 1, 10, 9, 6, 5, 3, 5, 1, 3, 9, 3, 5, 2, 2, 1, 8, 9, 3, 7, 4, 2, 8, 4, 4, 7, 7, 7, 2, 4, 5, 7, 3, 2, 2, 5, 7, 3, 5, 7, 6, 10, 6, 7, 9, 9, 5, 4, 3, 4, 10, 10, 4, 4, 10, 4, 2, 5, 3, 10, 1, 1, 2, 9, 4, 1, 3, 6, 10, 5, 5, 1, 1, 10, 1, 9, 2, 2, 2, 7, 9, 8, 1, 2, 9, 1, 9, 7, 3, 2, 3, 3, 6, 4, 6, 9, 9, 9, 5, 9, 1, 3, 6, 6, 1, 10, 3, 4, 1, 2, 5, 10, 3, 3, 4, 4, 2, 5, 4, 3, 9, 3, 8, 1, 4, 6, 1, 8, 7, 3, 6, 5, 7, 10, 10, 3, 5, 7, 7, 6, 4, 10, 1, 5, 10, 2, 7, 4, 8, 10, 10, 7, 4, 5, 10, 6, 3, 10, 7, 5, 7, 4, 3, 1, 7, 6, 7, 5, 10, 2, 1, 5, 5, 4, 4, 7, 6, 7, 8, 1, 5, 5, 8, 6, 1, 6, 8, 3, 9, 4, 4, 4, 7, 8, 10, 8, 9, 5, 1, 3, 10, 8, 3, 7, 6, 4, 1, 7, 1, 1, 6, 8, 10, 8, 2, 3, 5, 2, 4, 7, 3, 10, 3, 10, 7, 5, 8, 2, 2, 9, 8, 10, 4, 7, 10, 5, 10, 10, 6, 10, 4, 9, 3, 10, 2, 9, 10, 6, 3, 1, 1, 10, 2, 4, 3, 9, 1, 4, 10, 6, 5, 2, 8, 10, 9, 1, 5, 6, 5, 9, 10, 7, 9, 10, 2, 7, 2, 9, 5, 8, 8, 5, 10, 3, 1, 2, 10, 2, 5, 3, 4, 8, 3, 9, 5, 9, 3, 6, 4, 1, 2, 3, 2, 4, 9, 6, 1, 6, 3, 2, 3, 1, 8, 10, 5, 7, 1, 1, 10, 2, 3, 4, 1, 3, 7, 10, 3, 6, 7, 9, 8, 2, 2, 6, 8, 1, 3, 8, 4, 4, 4, 8, 2, 8, 8, 9, 8, 5, 8, 1, 5, 5, 8, 1, 6, 9, 6, 4, 5, 6, 7, 6, 4, 8, 9, 6, 4, 1, 4, 6, 5, 1, 6, 9, 4, 2, 6, 1, 5, 3, 7, 6, 4, 2, 7, 3, 8, 8, 5, 2, 4, 3, 7, 2, 7, 3, 9, 7, 4, 3, 9, 7, 5, 7, 4, 1, 9, 2, 7, 1, 2, 6, 8, 4, 8, 7, 8, 6, 1, 6, 6, 8, 7, 3, 7, 2, 8, 2, 7, 8, 6, 5, 8, 5, 5, 10, 8, 2, 1, 7, 5, 8, 5, 9, 7, 5, 8, 4, 6, 5, 4, 2, 7, 5, 2, 3, 4, 10, 4, 6, 3, 9, 8, 6, 8, 2, 8, 7, 2, 10, 3, 5, 1, 1, 6, 3, 5, 9, 6, 6, 1, 9, 4, 7, 4, 4, 1, 4, 2, 1, 3, 10, 5, 9, 1, 9, 7, 1, 8, 6, 8, 10, 8, 3, 2, 5, 6, 3, 5, 8, 8, 1, 8, 3, 9, 7, 9, 5, 5, 8, 4, 2, 6, 1, 7, 2, 1, 10, 10, 6, 10, 10, 1, 10, 7, 3, 3, 3, 10, 4, 7, 3, 6, 2, 10, 1, 9, 2, 7, 6, 10, 9, 9, 6, 4, 3, 4, 2, 1, 2, 1, 8, 6, 7, 10, 6, 9, 6, 8, 2, 5, 8, 8, 10, 8, 9, 9, 6, 7, 7, 3, 1, 4, 1, 3, 2, 6, 10, 9, 7, 3, 10, 2, 7, 10, 6, 2, 8, 7, 8, 8, 8, 8, 3, 2, 4, 2, 6, 8, 9, 9, 6, 4, 8, 2, 10, 7, 9, 7, 1, 3, 3, 1, 6, 10, 1, 9, 4, 8, 5, 9, 5, 3, 5, 6, 8, 4, 5, 4, 5, 1, 10, 6, 5, 1, 5, 8, 1, 7, 1, 7, 9, 1, 8, 8, 7, 2, 2, 4, 10, 5, 3, 5, 4, 2, 5, 2, 3, 10, 1, 7, 5, 7, 10, 9, 8, 3, 1, 8, 4, 1, 8, 3, 8, 1, 6, 5, 2, 3, 7, 1, 8, 3, 5, 3, 7, 2, 1, 9, 8, 7, 9, 5, 9, 3, 10, 7, 2, 1, 10, 7, 9, 7, 7, 1, 7, 8, 1, 2, 2, 3, 1, 1, 1, 2, 6, 7, 4, 8, 1, 8, 7, 6, 1, 7, 7, 2, 9, 10, 2, 7, 8, 7, 3, 7, 7, 8, 8, 5, 9, 6, 6, 4, 8, 9, 5, 6, 9, 1, 7, 8, 4, 6, 7, 9, 1, 3, 4, 5, 4, 9, 10, 9, 3, 1, 8, 9, 10, 8, 1, 10, 1, 1, 10, 6, 3, 8, 9, 4, 8, 5, 5, 8, 7, 5, 9, 10, 9, 6, 8, 9, 1, 2, 8, 10, 10, 4, 5, 1, 8, 6, 8, 2, 9, 5, 6, 7, 6, 6, 6, 5, 6, 6, 6, 2, 5, 4, 10, 10, 9, 2, 3, 9, 5, 1, 2, 10, 8, 1, 4, 4, 3, 9, 6, 5, 5, 4, 9, 6, 6, 9, 6, 9, 10, 5, 10, 4, 2, 6, 6, 6, 8, 5, 7, 1, 5, 6, 3, 5, 5, 4, 3, 7, 5, 3, 10, 6, 3, 7, 2, 2, 8, 7, 7, 3, 8, 9, 2, 10, 7, 8, 10, 10, 9, 1, 9, 8, 5, 2, 8, 5, 9, 2, 1, 9, 4, 6, 3, 6, 7, 7, 3, 4, 2, 2, 6, 3, 3, 8, 4, 2, 1, 8, 4, 5, 6, 1, 10, 3, 3, 3, 6, 7, 2, 3, 6, 4, 4, 10, 1, 6, 4, 10, 9, 3, 6, 10, 3, 9, 10, 5, 5, 9, 6, 8, 3, 2, 9, 4, 3, 6, 2, 1, 1, 10, 4, 7, 10, 2, 6, 7, 9, 7, 1, 1, 8, 4, 1, 2, 4, 10, 2, 1, 6, 4, 3, 5, 7, 8, 1, 6, 9, 8, 6, 3, 2, 7, 8, 9, 10, 8, 3, 8, 6, 5, 8, 6, 2, 10, 10, 7, 4, 5, 2, 7, 5, 4, 2, 2, 7, 2, 10, 5, 2, 9, 10, 9, 6, 10, 3, 6, 1, 8, 9, 8, 6, 2, 1, 2, 4, 1, 4, 2, 8, 7, 2, 9, 3, 5, 1, 6, 6, 5, 2, 9, 1, 9, 6, 4, 3, 6, 6, 1, 6, 9, 8, 7, 8, 2, 9, 10, 10, 5, 9, 2, 7, 9, 4, 3, 4, 10, 10, 2, 7, 1, 10, 5, 9, 1, 9, 10, 8, 4, 6, 1, 5, 2, 8, 5, 3, 9, 10, 9, 8, 7, 10, 4, 8, 10, 4, 1, 8, 10, 1, 6, 1, 10, 7, 7, 6, 5, 9, 3, 8, 6, 9, 3, 8, 7, 10, 7, 3, 2, 6, 10, 6, 3, 5, 3, 9, 10, 8, 4, 3, 5, 3, 10, 4, 1, 3, 8, 2, 5, 9, 5, 9, 7, 8, 7, 6, 3, 5, 8, 9, 3, 1, 7, 10, 6, 10, 9, 9, 10, 5, 3, 6, 10, 8, 10, 5, 4, 1, 3, 7, 10, 1, 3, 4, 9, 9, 2, 7, 9, 2, 5, 1, 7, 7, 10, 10, 9, 6, 3, 1, 2, 5, 7, 8, 3, 1, 8, 9, 10, 7, 7, 6, 3, 7, 10, 1, 3, 7, 8, 1, 2, 8, 9, 6, 10, 10, 3, 6, 2, 10, 10, 6, 5, 9, 5, 9, 6, 1, 1, 4, 9, 9, 9, 8, 1, 6, 10, 10, 4, 10, 9, 8, 6, 2, 3, 6, 4, 9, 5, 1, 9, 5, 5, 3, 5, 1, 3, 3, 2, 6, 6, 3, 6, 7, 7, 8, 8, 8, 10, 4, 6, 4, 2, 3, 8, 1, 9, 9, 10, 9, 1, 5, 9, 10, 9, 10, 5, 10, 8, 2, 4, 10, 8, 4, 1, 5, 9, 3, 2, 5, 7, 10, 10, 8, 10, 1, 3, 9, 8, 8, 10, 1, 4, 7, 1, 5, 8, 5, 4, 1, 8, 6, 9, 4, 10, 4, 7, 8, 6, 9, 8, 1, 9, 7, 10, 7, 10, 3, 5, 5, 4, 8, 8, 2, 6, 8, 9, 8, 4, 10, 4, 9, 5, 3, 6, 3, 1, 5, 4, 6, 7, 8, 1, 6, 1, 1, 10, 1, 9, 2, 5, 7, 7, 6, 10, 2, 3, 1, 8, 4, 9, 5, 9, 10, 1, 1, 7, 10, 3, 2, 3, 9, 1, 6, 7, 4, 3, 10, 2, 7, 5, 5, 5, 7, 4, 10, 7, 6, 1, 4, 6, 7, 10, 4, 2, 1, 2, 1, 3, 2, 2, 5, 5, 1, 7, 4, 2, 9, 4, 9, 8, 1, 10, 6, 1, 3, 6, 10, 8, 4, 2, 2, 9, 4, 8, 7, 8, 6, 7, 5, 7, 8, 8, 9, 7, 2, 5, 3, 8, 9, 8, 2, 5, 3, 8, 5, 9, 8, 10, 9, 9, 7, 4, 3, 8, 9, 10, 9, 2, 6, 6, 10, 10, 5, 2, 4, 1, 5, 3, 8, 8, 4, 9, 6, 7, 3, 7, 1, 3, 1, 7, 9, 8, 10, 7, 1, 7, 5, 8, 4, 6, 7, 2, 2, 9, 9, 7, 4, 5, 8, 2, 9, 8, 3, 6, 6, 8, 3, 1, 10, 2, 7, 3, 1, 2, 6, 9, 6, 6, 6, 3, 9, 5, 1, 2, 6, 6, 7, 7, 6, 2, 7, 9, 2, 9, 9, 9, 8, 1, 10, 6, 6, 1, 2, 5, 1, 8, 9, 5, 4, 1, 3, 5, 3, 8, 5, 3, 6, 5, 9, 6, 6, 1, 3, 2, 8, 2, 4, 8, 5, 5, 7, 5, 3, 6, 6, 7, 1, 4, 1, 8, 4, 2, 10, 5, 10, 7, 2, 6, 10, 3, 6, 10, 6, 4, 7, 7, 9, 9, 4, 4, 6, 4, 5, 7, 1, 1, 8, 1, 10, 6, 9, 10, 4, 10, 3, 7, 4, 3, 2, 9, 10, 5, 6, 6, 6, 1, 5, 7, 10, 5, 9, 8, 9, 7, 2, 3, 7, 7, 9, 3, 4, 1, 9, 1, 8, 4, 8, 10, 4, 9, 9, 2, 10, 8, 2, 6, 10, 9, 2, 5, 1, 6, 1, 1, 4, 7, 1, 3, 2, 9, 4, 1, 7, 1, 3, 5, 1, 10, 5, 9, 7, 2, 8, 8, 9, 9, 1, 8, 4, 4, 2, 10, 10, 2, 2, 8, 9, 2, 6, 2, 7, 6, 9, 3, 8, 8, 2, 5, 1, 3, 6, 3, 8, 1, 5, 7, 9, 9, 1, 7, 7, 5, 2, 6, 3, 1, 7, 3, 10, 2, 10, 3, 7, 9, 8, 5, 7, 6, 6, 1, 2, 7, 6, 9, 2, 6, 5, 3, 3, 1, 4, 8, 1, 4, 5, 10, 3, 5, 8, 4, 7, 10, 10, 2, 6, 5, 10, 2, 7, 1, 1, 6, 5, 7, 9, 4, 7, 2, 3, 9, 2, 2, 2, 4, 4, 7, 10, 3, 3, 4, 2, 9, 7, 6, 6, 6, 10, 8, 7, 8, 5, 8, 8, 8, 3, 8, 6, 6, 9, 6, 9, 7, 2, 7, 6, 4, 8, 10, 2, 2, 10, 7, 10, 7, 10, 9, 6, 7, 5, 10, 9, 8, 1, 6, 3, 1, 8, 3, 3, 1, 2, 9, 6, 7, 6, 7, 6, 1, 6, 10, 8, 4, 4, 8, 3, 1, 1, 8, 8, 2, 2, 10, 8, 3, 1, 8, 4, 3, 9, 3, 5, 7, 4, 5, 2, 2, 6, 3, 6, 9, 6, 8, 7, 5, 9, 7, 5, 7, 2, 3, 7, 3, 9, 6, 8, 2, 5, 2, 4, 8, 7, 9, 9, 8, 3, 3, 5, 7, 8, 8, 2, 4, 2, 5, 1, 9, 1, 6, 1, 1, 10, 1, 3, 1, 3, 1, 9, 7, 2, 7, 9, 7, 1, 7, 4, 9, 1, 5, 2, 7, 3, 1, 6, 1, 10, 7, 9, 6, 10, 8, 2, 2, 4, 8, 9, 8, 3, 6, 3, 2, 8, 4, 2, 1, 10, 1, 2, 1, 1, 4, 2, 4, 8, 4, 6, 7, 6, 1, 6, 2, 2, 1, 7, 7, 10, 10, 5, 4, 1, 10, 10, 8, 5, 3, 8, 6, 8, 8, 4, 3, 5, 6, 5, 6, 3, 10, 4, 6, 5, 8, 7, 10, 9, 10, 6, 5, 1, 8, 5, 3, 2, 1, 2, 10, 9, 1, 1, 6, 6, 9, 8, 10, 10, 4, 10, 1, 6, 10, 2, 6, 6, 1, 10, 1, 1, 4, 8, 7, 6, 9, 7, 8, 8, 4, 4, 2, 3, 9, 7, 1, 10, 1, 7, 7, 10, 6, 8, 7, 7, 6, 7, 2, 2, 8, 7, 1, 6, 9, 8, 10, 3, 5, 8, 9, 5, 3, 3, 6, 4, 9, 3, 7, 7, 2, 1, 1, 10, 2, 1, 10, 4, 4, 7, 2, 2, 5, 3, 1, 9, 6, 8, 8, 6, 4, 8, 3, 10, 8, 6, 2, 8, 4, 9, 7, 10, 4, 8, 1, 2, 2, 1, 4, 7, 8, 1, 2, 5, 6, 3, 8, 4, 1, 2, 4, 6, 2, 7, 10, 9, 10, 8, 3, 3, 1, 7, 8, 3, 10, 10, 8, 2, 2, 8, 7, 4, 6, 10, 2, 10, 9, 7, 1, 9, 2, 3, 8, 9, 5, 4, 6, 1, 3, 10, 6, 9, 3, 10, 6, 8, 4, 9, 9, 10, 2, 7, 2, 10, 3, 6, 8, 10, 7, 10, 6, 4, 2, 10, 5, 4, 10, 1, 3, 2, 10, 1, 10, 8, 9, 6, 9, 7, 2, 3, 3, 7, 3, 8, 2, 10, 6, 5, 8, 5, 10, 4, 7, 7, 4, 10, 6, 4, 8, 9, 6, 4, 2, 1, 9, 3, 8, 6, 2, 9, 7, 4, 3, 1, 5, 2, 5, 3, 10, 7, 3, 1, 5, 3, 9, 4, 2, 10, 7, 8, 6, 1, 7, 5, 9, 4, 1, 7, 8, 10, 2, 9, 8, 5, 4, 2, 6, 3, 3, 6, 6, 7, 3, 6, 3, 2, 7, 2, 9, 7, 3, 9, 8, 7, 9, 2, 9, 7, 3, 5, 6, 4, 2, 4, 10, 1, 10, 4, 7, 7, 6, 9, 4, 8, 10, 4, 4, 10, 2, 2, 5, 9, 8, 1, 3, 2, 9, 2, 4, 7, 10, 3, 3, 1, 1, 8, 3, 3, 5, 8, 10, 2, 5, 1, 2, 9, 9, 3, 2, 10, 9, 9, 3, 2, 7, 5, 3, 9, 5, 7, 4, 7, 10, 3, 6, 8, 10, 8, 9, 8, 10, 5, 4, 10, 4, 6, 10, 5, 10, 1, 4, 9, 4, 1, 4, 4, 10, 8, 2, 2, 9, 2, 5, 9, 2, 3, 1, 1, 5, 5, 2, 10, 4, 6, 6, 6, 10, 7, 6, 8, 3, 10, 1, 10, 1, 10, 10, 3, 5, 3, 4, 7, 2, 4, 9, 3, 7, 4, 1, 4, 9, 5, 10, 10, 6, 6, 9, 9, 3, 6, 8, 5, 5, 9, 1, 8, 6, 1, 4, 3, 5, 5, 8, 3, 10, 8, 8, 3, 7, 7, 8, 8, 8, 7, 6, 6, 8, 5, 5, 5, 8, 8, 1, 3, 7, 8, 6, 9, 2, 9, 8, 6, 8, 1, 4, 5, 1, 3, 4, 10, 9, 2, 4, 6, 10, 6, 6, 5, 1, 4, 8, 7, 7, 6, 10, 6, 2, 8, 4, 2, 3, 2, 4, 10, 8, 3, 8, 7, 10, 10, 7, 7, 5, 1, 3, 7, 8, 9, 9, 5, 9, 3, 7, 8, 6, 4, 10, 8, 3, 2, 1, 5, 7, 7, 2, 9, 9, 6, 6, 5, 8, 1, 9, 3, 7, 7, 4, 6, 8, 10, 8, 4, 7, 1, 8, 7, 1, 4, 1, 7, 7, 3, 7, 2, 5, 6, 4, 2, 7, 1, 1, 3, 2, 8, 9, 3, 1, 4, 3, 6, 5, 2, 3, 5, 4, 3, 9, 7, 3, 6, 8, 1, 4, 4, 10, 7, 8, 2, 4, 7, 4, 1, 2, 9, 3, 9, 2, 1, 2, 1, 5, 9, 7, 1, 1, 10, 6, 3, 5, 7, 7, 2, 6, 9, 5, 5, 8, 3, 4, 7, 6, 5, 8, 9, 1, 7, 6, 8, 9, 9, 7, 10, 7, 1, 9, 8, 10, 8, 10, 6, 1, 3, 4, 4, 10, 9, 4, 8, 7, 2, 5, 3, 2, 1, 1, 1, 5, 3, 7, 6, 7, 7, 4, 5, 3, 3, 7, 1, 5, 7, 4, 10, 2, 2, 1, 5, 2, 4, 9, 9, 10, 1, 10, 1, 2, 6, 9, 6, 5, 8, 7, 8, 7, 8, 7, 5, 2, 2, 8, 7, 8, 2, 1, 5, 2, 6, 7, 2, 6, 6, 6, 3, 2, 9, 10, 8, 6, 9, 6, 5, 6, 4, 1, 8, 1, 6, 4, 10, 9, 1, 2, 4, 1, 8, 8, 10, 5, 10, 4, 6, 8, 4, 2, 9, 8, 6, 6, 4, 10, 6, 9, 2, 8, 2, 5, 7, 1, 3, 7, 1, 5, 10, 10, 3, 7, 6, 1, 7, 1, 8, 8, 7, 3, 9, 2, 1, 9, 5, 2, 10, 6, 8, 10, 6, 3, 8, 5, 5, 3, 5, 4, 10, 2, 7, 4, 6, 8, 6, 3, 10, 5, 5, 10, 8, 3, 2, 8, 2, 7, 8, 1, 4, 5, 5, 1, 9, 9, 1, 3, 2, 6, 2, 2, 7, 4, 1, 3, 1, 6, 7, 10, 4, 8, 6, 1, 1, 5, 9, 4, 7, 9, 4, 10, 3, 7, 5, 2, 6, 4, 10, 8, 2, 2, 8, 8, 4, 10, 9, 8, 2, 9, 3, 5, 3, 6, 3, 8, 3, 2, 10, 8, 4, 5, 3, 8, 8, 9, 4, 6, 9, 2, 8, 4, 4, 4, 2, 6, 7, 9, 8, 8, 2, 6, 1, 10, 8, 9, 8, 5, 2, 8, 3, 8, 1, 1, 6, 6, 10, 3, 9, 10, 3, 3, 6, 2, 8, 6, 8, 4, 8, 1, 7, 4, 1, 5, 5, 4, 5, 4, 3, 6, 4, 1, 2, 8, 10, 6, 9, 1, 9, 4, 7, 3, 6, 6, 1, 2, 8, 8, 6, 7, 1, 6, 8, 6, 4, 8, 10, 6, 9, 10, 3, 10, 10, 8, 9, 6, 1, 3, 3, 3, 10, 9, 4, 10, 3, 6, 4, 7, 6, 6, 4, 1, 3, 2, 1, 4, 4, 8, 1, 5, 6, 10, 5, 2, 8, 1, 5, 1, 8, 5, 4, 5, 9, 2, 2, 5, 6, 9, 7, 2, 5, 5, 4, 4, 6, 4, 7, 1, 7, 9, 8, 3, 2, 4, 10, 7, 9, 4, 10, 9, 6, 9, 7, 10, 10, 10, 8, 10, 2, 4, 3, 4, 5, 1, 7, 8, 8, 5, 8, 5, 1, 2, 7, 4, 1, 3, 7, 9, 3, 4, 5, 8, 2, 2, 1, 4, 9, 4, 6, 3, 7, 4, 5, 9, 8, 3, 9, 10, 2, 5, 2, 8, 1, 9, 10, 2, 2, 5, 2, 3, 9, 1, 2, 5, 9, 1, 2, 5, 5, 6, 10, 9, 1, 1, 6, 9, 9, 5, 6, 9, 5, 6, 8, 3, 10, 5, 2, 3, 10, 4, 3, 5, 5, 8, 6, 5, 2, 10, 6, 3, 5, 9, 2, 2, 6, 1, 2, 2, 10, 1, 1, 10, 6, 9, 6, 10, 1, 10, 10, 3, 5, 6, 8, 5, 2, 3, 4, 3, 9, 4, 7, 4, 2, 9, 1, 2, 5, 9, 9, 10, 3, 6, 5, 8, 6, 7, 2, 3, 3, 2, 4, 5, 9, 2, 4, 10, 1, 8, 4, 1, 4, 8, 7, 3, 6, 3, 5, 7, 9, 6, 7, 5, 4, 10, 5, 8, 4, 9, 1, 4, 10, 8, 8, 10, 6, 6, 10, 2, 4, 10, 8, 2, 6, 6, 1, 4, 1, 9, 9, 5, 1, 3, 8, 3, 6, 3, 8, 10, 8, 10, 6, 9, 1, 1, 3, 2, 9, 5, 9, 2, 7, 8, 6, 8, 6, 2, 3, 7, 5, 6, 4, 3, 9, 8, 3, 9, 4, 10, 3, 2, 6, 10, 8, 7, 1, 1, 2, 10, 4, 3, 9, 8, 7, 2, 8, 1, 8, 1, 8, 2, 9, 6, 7, 8, 8, 4, 6, 3, 4, 9, 9, 9, 5, 6, 10, 5, 5, 7, 4, 4, 8, 9, 10, 6, 3, 4, 3, 4, 5, 4, 1, 5, 9, 2, 4, 5, 10, 7, 2, 1, 1, 9, 5, 5, 10, 3, 4, 1, 1, 10, 6, 3, 9, 7, 3, 7, 9, 2, 1, 8, 2, 7, 3, 7, 7, 2, 3, 8, 4, 4, 2, 7, 10, 8, 4, 9, 5, 5, 4, 1, 7, 10, 7, 2, 10, 3, 6, 2, 4, 9, 7, 2, 5, 8, 9, 8, 6, 2, 7, 1, 8, 4, 9, 6, 7, 5, 4, 4, 1, 1, 5, 6, 7, 9, 9, 10, 1, 9, 10, 6, 4, 3, 8, 7, 9, 10, 3, 10, 2, 8, 9, 2, 6, 7, 4, 3, 7, 10, 9, 3, 6, 10, 7, 9, 2, 5, 8, 6, 7, 5, 2, 2, 2, 10, 6, 5, 4, 3, 9, 10, 2, 10, 6, 9, 8, 6, 5, 10, 9, 1, 1, 4, 2, 8, 3, 6, 1, 10, 7, 5, 2, 6, 10, 1, 5, 2, 9, 10, 10, 7, 9, 8, 1, 10, 2, 4, 3, 8, 10, 3, 10, 5, 9, 4, 5, 8, 9, 4, 1, 8, 10, 7, 7, 7, 7, 10, 5, 5, 10, 4, 8, 7, 8, 9, 6, 8, 9, 7, 6, 3, 2, 2, 10, 5, 6, 9, 2, 10, 7, 2, 3, 7, 9, 4, 8, 8, 1, 5, 10, 8, 8, 8, 5, 9, 8, 7, 4, 1, 9, 7, 9, 9, 6, 3, 4, 7, 8, 3, 6, 8, 10, 4, 7, 3, 2, 4, 5, 10, 4, 8, 4, 8, 9, 9, 8, 2, 8, 1, 2, 2, 4, 8, 4, 4, 7, 7, 4, 3, 3, 8, 9, 5, 4, 4, 10, 5, 3, 2, 6, 6, 8, 7, 4, 7, 5, 2, 2, 1, 1, 6, 2, 5, 9, 1, 4, 7, 5, 8, 1, 8, 9, 10, 7, 2, 7, 8, 7, 5, 6, 9, 2, 10, 6, 8, 6, 9, 8, 9, 8, 7, 3, 10, 6, 5, 8, 4, 3, 7, 1, 4, 8, 4, 4, 3, 8, 3, 7, 5, 5, 7, 4, 4, 1, 4, 6, 5, 7, 1, 9, 1, 6, 7, 3, 4, 10, 7, 4, 10, 4, 7, 7, 10, 10, 2, 1, 9, 6, 8, 7, 8, 2, 10, 4, 1, 4, 6, 8, 9, 9, 4, 3, 4, 5, 1, 8, 2, 4, 6, 2, 2, 7, 9, 6, 5, 5, 7, 2, 1, 2, 1, 1, 6, 6, 1, 9, 10, 9, 4, 3, 4, 10, 2, 2, 5, 10, 3, 10, 10, 7, 1, 9, 6, 2, 9, 2, 6, 6, 6, 7, 7, 8, 5, 4, 9, 5, 2, 8, 2, 9, 5, 7, 9, 2, 4, 6, 5, 3, 2, 2, 4, 7, 8, 7, 7, 9, 9, 7, 8, 6, 6, 5, 9, 8, 2, 3, 10, 2, 4, 7, 7, 1, 2, 9, 1, 2, 1, 6, 6, 1, 1, 7, 5, 3, 5, 7, 1, 5, 8, 10, 1, 9, 1, 8, 3, 3, 7, 8, 8, 2, 1, 4, 8, 2, 5, 10, 9, 1, 5, 2, 8, 10, 7, 4, 3, 8, 3, 8, 5, 6, 9, 4, 2, 4, 10, 6, 10, 10, 5, 10, 8, 10, 7, 8, 4, 6, 9, 6, 9, 10, 9, 8, 4, 8, 3, 6, 10, 5, 6, 8, 8, 9, 5, 2, 7, 2, 9, 10, 10, 8, 1, 8, 1, 10, 1, 7, 2, 8, 5, 2, 3, 4, 1, 8, 1, 5, 10, 2, 1, 3, 9, 8, 2, 9, 5, 6, 2, 2, 1, 7, 7, 6, 1, 3, 9, 2, 10, 10, 1, 10, 10, 4, 4, 7, 1, 1, 6, 10, 10, 6, 4, 1, 2, 4, 6, 3, 3, 10, 8, 6, 4, 5, 5, 7, 2, 3, 2, 7, 8, 4, 6, 1, 4, 4, 1, 9, 10, 5, 10, 10, 5, 10, 3, 4, 8, 6, 6, 4, 8, 6, 4, 6, 10, 6, 2, 9, 3, 5, 1, 10, 2, 1, 9, 2, 8, 6, 4, 5, 8, 8, 6, 2, 10, 10, 2, 2, 8, 6, 9, 1, 2, 3, 1, 6, 1, 3, 10, 4, 10, 10, 10, 5, 6, 10, 4, 8, 2, 8, 4, 3, 5, 8, 8, 3, 7, 5, 7, 2, 7, 2, 8, 3, 4, 1, 2, 4, 7, 3, 5, 8, 8, 10, 5, 1, 7, 10, 4, 6, 3, 9, 9, 4, 5, 8, 9, 4, 9, 2, 6, 6, 1, 3, 3, 5, 10, 4, 8, 6, 3, 9, 7, 10, 6, 2, 4, 3, 5, 2, 5, 5, 4, 6, 3, 4, 8, 2, 5, 2, 5, 4, 2, 9, 2, 10, 10, 6, 8, 9, 2, 6, 2, 8, 5, 6, 3, 5, 4, 7, 6, 9, 7, 6, 5, 8, 9, 5, 10, 8, 7, 9, 4, 4, 4, 5, 2, 4, 8, 2, 8, 5, 2, 3, 9, 9, 2, 6, 4, 10, 8, 3, 8, 1, 2, 6, 6, 7, 4, 6, 10, 2, 9, 9, 3, 10, 4, 6, 4, 4, 6, 2, 5, 1, 7, 6, 3, 2, 4, 3, 5, 3, 5, 6, 9, 7, 3, 10, 1, 8, 4, 4, 10, 3, 5, 5, 9, 9, 2, 6, 6, 8, 4, 6, 4, 8, 10, 9, 3, 3, 1, 4, 5, 3, 4, 2, 6, 4, 6, 3, 1, 7, 7, 4, 1, 5, 7, 5, 4, 4, 3, 8, 2, 4, 3, 5, 7, 1, 10, 10, 8, 9, 6, 5, 1, 7, 9, 5, 8, 1, 5, 8, 4, 9, 9, 5, 4, 7, 8, 2, 3, 5, 7, 1, 3, 7, 10, 1, 1, 1, 2, 6, 4, 1, 3, 6, 7, 9, 6, 5, 1, 6, 4, 5, 2, 5, 2, 7, 10, 7, 9, 4, 4, 9, 9, 6, 9, 8, 5, 1, 2, 4, 1, 6, 3, 6, 9, 9, 8, 8, 10, 10, 3, 8, 1, 4, 9, 6, 10, 8, 9, 8, 3, 8, 2, 1, 2, 6, 2, 4, 2, 7, 7, 9, 10, 8, 3, 7, 4, 6, 1, 5, 5, 7, 7, 3, 4, 5, 3, 5, 10, 3, 7, 10, 7, 10, 2, 1, 5, 10, 8, 10, 8, 7, 9, 2, 8, 5, 4, 4, 6, 10, 6, 8, 3, 7, 6, 2, 3, 4, 9, 7, 10, 4, 5, 2, 5, 1, 8, 7, 1, 7, 1, 10, 3, 2, 1, 6, 1, 2, 7, 3, 1, 8, 5, 10, 1, 6, 10, 4, 10, 5, 7, 2, 1, 6, 2, 2, 1, 9, 6, 2, 2, 9, 8, 7, 3, 5, 1, 6, 8, 6, 6, 8, 7, 1, 6, 2, 6, 6, 1, 3, 1, 8, 6, 10, 9, 8, 4, 5, 10, 1, 3, 6, 7, 5, 3, 1, 8, 2, 10, 1, 7, 7, 5, 7, 5, 5, 6, 2, 1, 9, 1, 10, 1, 7, 8, 5, 2, 1, 4, 2, 8, 9, 9, 1, 2, 1, 3, 5, 6, 10, 6, 5, 7, 6, 1, 7, 2, 3, 8, 10, 6, 1, 3, 7, 1, 4, 5, 6, 7, 4, 4, 3, 10, 6, 7, 3, 6, 10, 8, 9, 5, 7, 2, 2, 10, 6, 1, 5, 3, 9, 3, 3, 9, 3, 9, 4, 7, 1, 8, 9, 10, 5, 9, 2, 6, 5, 10, 7, 10, 8, 6, 4, 8, 7, 10, 2, 10, 2, 4, 3, 2, 9, 6, 3, 6, 6, 3, 6, 10, 4, 10, 3, 7, 3, 4, 5, 4, 8, 5, 2, 8, 9, 3, 6, 8, 8, 3, 5, 10, 5, 7, 6, 3, 10, 5, 3, 1, 1, 5, 8, 3, 2, 9, 1, 10, 9, 4, 3, 5, 2, 1, 1, 5, 5, 2, 7, 3, 6, 5, 9, 4, 5, 6, 9, 10, 8, 10, 5, 7, 6, 7, 5, 1, 4, 10, 5, 4, 3, 5, 3, 1, 3, 4, 5, 4, 10, 5, 2, 1, 8, 7, 2, 3, 2, 1, 10, 1, 4, 2, 7, 1, 6, 6, 6, 1, 5, 4, 3, 1, 9, 10, 8, 9, 2, 8, 10, 5, 2, 6, 9, 9, 7, 6, 9, 2, 5, 4, 7, 2, 9, 4, 9, 4, 10, 9, 4, 5, 6, 1, 8, 2, 9, 1, 4, 1, 8, 5, 8, 2, 1, 6, 2, 1, 9, 2, 1, 3, 2, 10, 7, 8, 6, 3, 6, 9, 1, 10, 10, 2, 2, 7, 2, 5, 2, 3, 2, 10, 1, 4, 1, 9, 4, 4, 3, 5, 9, 2, 7, 6, 9, 1, 8, 8, 7, 3, 9, 5, 4, 2, 10, 6, 5, 4, 1, 10, 7, 3, 7, 6, 8, 7, 5, 5, 1, 5, 8, 5, 9, 9, 2, 1, 8, 1, 2, 6, 1, 6, 9, 4, 5, 5, 3, 5, 10, 10, 2, 1, 4, 10, 10, 1, 4, 8, 6, 5, 1, 6, 9, 3, 9, 6, 10, 6, 3, 4, 9, 8, 7, 4, 7, 4, 7, 1, 4, 6, 4, 5, 10, 3, 2, 1, 2, 5, 9, 10, 8, 3, 5, 6, 8, 6, 2, 3, 10, 1, 1, 5, 3, 5, 9, 5, 3, 10, 8, 9, 1, 6, 7, 7, 2, 3, 7, 4, 8, 9, 1, 3, 2, 10, 7, 6, 10, 1, 10, 8, 3, 7, 5, 4, 3, 2, 10, 6, 10, 3, 10, 4, 1, 5, 7, 8, 6, 6, 7, 9, 9, 3, 8, 6, 4, 5, 6, 4, 4, 3, 3, 6, 2, 10, 7, 2, 9, 7, 3, 8, 8, 4, 5, 2, 5, 1, 10, 4, 3, 5, 8, 10, 10, 1, 6, 1, 10, 10, 10, 5, 9, 9, 4, 9, 8, 7, 3, 9, 1, 8, 6, 2, 2, 6, 6, 4, 7, 9, 1, 1, 7, 5, 6, 9, 8, 3, 1, 9, 10, 4, 6, 6, 1, 6, 3, 3, 3, 5, 3, 7, 4, 5, 6, 8, 2, 4, 5, 7, 2, 9, 8, 5, 6, 4, 7, 2, 5, 3, 1, 10, 6, 3, 8, 1, 7, 10, 9, 5, 7, 9, 9, 5, 10, 5, 6, 2, 4, 4, 6, 1, 5, 7, 6, 4, 7, 5, 7, 7, 5, 2, 3, 9, 3, 1, 2, 10, 9, 6, 7, 10, 4, 5, 8, 5, 7, 3, 3, 10, 10, 6, 8, 4, 5, 5, 10, 5, 6, 8, 6, 1, 5, 9, 7, 1, 8, 7, 5, 7, 10, 10, 10, 8, 7, 5, 9, 4, 8, 3, 10, 7, 2, 9, 8, 1, 4, 3, 7, 3, 7, 4, 9, 6, 4, 1, 5, 9, 2, 10, 3, 3, 7, 4, 6, 2, 2, 3, 10, 9, 3, 3, 5, 6, 3, 2, 4, 3, 3, 2, 5, 5, 10, 7, 2, 4, 2, 10, 1, 6, 1, 5, 10, 3, 1, 3, 1, 2, 10, 7, 4, 2, 6, 6, 1, 3, 6, 4, 5, 7, 5, 1, 10, 7, 6, 6, 1, 4, 5, 8, 9, 7, 4, 7, 9, 3, 8, 2, 6, 5, 10, 9, 5, 2, 7, 10, 5, 5, 5, 6, 8, 4, 4, 9, 7, 4, 2, 6, 1, 7, 10, 6, 5, 1, 5, 2, 8, 5, 1, 7, 4, 3, 3, 8, 6, 9, 6, 5, 2, 1, 8, 4, 5, 5, 7, 6, 2, 9, 8, 3, 9, 6, 1, 4, 9, 3, 6, 2, 8, 5, 4, 1, 3, 10, 10, 4, 4, 5, 4, 8, 5, 1, 10, 1, 6, 9, 5, 5, 10, 4, 4, 2, 2, 7, 7, 10, 5, 7, 8, 5, 4, 5, 5, 1, 8, 2, 8, 10, 5, 9, 8, 7, 7, 4, 5, 8, 8, 5, 5, 5, 1, 7, 5, 8, 10, 6, 6, 2, 4, 7, 8, 9, 10, 10, 7, 1, 7, 4, 5, 6, 1, 9, 3, 8, 9, 9, 10, 3, 6, 8, 9, 3, 5, 1, 10, 8, 3, 8, 2, 6, 3, 10, 1, 9, 3, 9, 1, 1, 1, 10, 7, 4, 7, 7, 9, 7, 2, 10, 9, 6, 6, 4, 10, 1, 3, 10, 8, 3, 2, 6, 7, 9, 4, 10, 7, 4, 1, 6, 9, 2, 2, 2, 8, 4, 3, 7, 7, 10, 9, 2, 4, 1, 1, 2, 8, 5, 9, 7, 5, 2, 7, 10, 2, 1, 10, 1, 2, 10, 6, 7, 5, 8, 6, 6, 6, 3, 10, 7, 5, 6, 1, 8, 10, 2, 2, 3, 5, 6, 2, 7, 10, 1, 5, 2, 4, 3, 6, 3, 9, 6, 5, 3, 3, 8, 6, 4, 4, 4, 5, 3, 5, 10, 2, 4, 2, 6, 2, 10, 10, 5, 3, 4, 10, 8, 10, 5, 6, 5, 9, 4, 8, 1, 2, 7, 8, 10, 6, 5, 5, 9, 7, 9, 8, 10, 9, 6, 5, 7, 2, 1, 9, 8, 4, 10, 5, 5, 4, 4, 1, 5, 1, 6, 5, 10, 1, 5, 3, 7, 9, 5, 5, 10, 5, 2, 6, 5, 10, 6, 7, 4, 3, 3, 4, 8, 5, 3, 2, 10, 10, 9, 7, 4, 5, 9, 9, 7, 5, 9, 6, 6, 7, 5, 3, 10, 4, 2, 5, 8, 7, 10, 7, 5, 10, 1, 6, 10, 2, 3, 5, 2, 8, 6, 5, 9, 10, 2, 3, 4, 10, 2, 3, 5, 5, 5, 10, 1, 5, 8, 2, 10, 6, 1, 10, 5, 9, 6, 9, 1, 1, 2, 9, 5, 1, 5, 4, 8, 2, 3, 4, 7, 6, 7, 2, 2, 3, 10, 7, 4, 10, 9, 2, 8, 3, 5, 2, 8, 2, 7, 6, 4, 4, 10, 1, 1, 8, 6, 5, 7, 2, 6, 6, 5, 2, 2, 6, 9, 9, 7, 3, 9, 8, 8, 7, 7, 9, 8, 2, 3, 2, 4, 3, 4, 4, 10, 2, 3, 7, 7, 1, 3, 10, 9, 9, 3, 3, 3, 4, 8, 2, 3, 3, 6, 4, 6, 4, 2, 5, 3, 10, 9, 4, 7, 4, 9, 9, 3, 3, 3, 1, 5, 3, 5, 6, 2, 5, 9, 10, 4, 6, 3, 6, 10, 4, 1, 1, 5, 5, 6, 5, 1, 9, 4, 9, 9, 8, 2, 4, 1, 8, 3, 3, 1, 2, 9, 9, 5, 6, 3, 6, 2, 3, 2, 3, 10, 4, 8, 7, 5, 5, 10, 9, 4, 5, 7, 8, 2, 7, 1, 6, 6, 1, 4, 1, 2, 4, 3, 8, 7, 6, 6, 10, 6, 5, 3, 5, 7, 4, 2, 7, 4, 6, 4, 10, 6, 10, 5, 1, 8, 6, 1, 6, 10, 10, 5, 5, 8, 4, 4, 9, 7, 10, 6, 2, 8, 10, 8, 2, 5, 8, 3, 3, 4, 3, 8, 1, 3, 4, 5, 7, 10, 6, 6, 7, 9, 9, 4, 1, 1, 5, 1, 10, 8, 10, 6, 6, 3, 8, 8, 9, 10, 1, 2, 10, 7, 1, 7, 6, 1, 3, 8, 9, 2, 1, 10, 5, 9, 8, 4, 1, 7, 8, 8, 6, 4, 2, 9, 5, 7, 1, 1, 1, 2, 5, 5, 5, 3, 1, 6, 1, 8, 6, 9, 6, 2, 5, 4, 2, 6, 1, 8, 1, 5, 8, 3, 5, 3, 4, 9, 6, 10, 10, 10, 2, 4, 7, 5, 4, 1, 7, 5, 5, 6, 10, 5, 2, 10, 4, 5, 4, 2, 2, 10, 10, 7, 10, 4, 8, 9, 2, 10, 3, 8, 1, 3, 4, 3, 2, 3, 10, 10, 3, 3, 9, 8, 8, 6, 7, 1, 5, 7, 2, 10, 3, 2, 3, 3, 5, 7, 5, 4, 9, 3, 2, 10, 1, 4, 6, 8, 3, 1, 7, 8, 6, 8, 10, 1, 1, 5, 10, 4, 6, 9, 2, 1, 5, 5, 1, 2, 7, 6, 5, 7, 7, 10, 4, 1, 10, 10, 4, 5, 4, 9, 6, 7, 9, 6, 9, 7, 10, 9, 7, 7, 6, 8, 2, 6, 10, 10, 7, 5, 6, 4, 9, 7, 6, 9, 9, 10, 10, 8, 9, 2, 8, 3, 2, 9, 2, 10, 4, 5, 3, 10, 10, 2, 10, 3, 5, 6, 3, 3, 7, 10, 1, 3, 7, 2, 3, 6, 3, 5, 3, 6, 4, 5, 5, 10, 7, 9, 2, 5, 1, 6, 8, 10, 9, 8, 9, 1, 8, 9, 4, 6, 10, 9, 8, 10, 7, 6, 9, 9, 3, 1, 8, 10, 4, 8, 7, 10, 3, 7, 10, 1, 9, 4, 4, 5, 5, 1, 8, 1, 5, 3, 8, 4, 8, 10, 2, 3, 7, 2, 4, 2, 1, 10, 4, 8, 4, 7, 3, 5, 6, 5, 4, 8, 7, 3, 3, 8, 5, 1, 8, 8, 8, 6, 6, 7, 4, 8, 4, 5, 1, 5, 3, 6, 8, 9, 8, 7, 5, 7, 7, 8, 5, 6, 8, 9, 2, 9, 5, 3, 3, 6, 4, 10, 10, 8, 1, 6, 2, 7, 2, 1, 8, 5, 2, 7, 3, 5, 8, 3, 9, 7, 7, 8, 6, 4, 6, 8, 5, 9, 9, 9, 4, 6, 5, 6, 2, 1, 9, 4, 5, 8, 7, 6, 5, 3, 4, 3, 5, 1, 8, 6, 9, 7, 5, 9, 5, 5, 1, 1, 10, 4, 1, 10, 9, 8, 3, 2, 3, 6, 6, 6, 4, 8, 1, 2, 3, 7, 1, 6, 8, 5, 7, 10, 6, 8, 10, 8, 8, 1, 8, 1, 9, 6, 5, 7, 10, 7, 3, 3, 1, 5, 8, 8, 5, 8, 1, 9, 6, 8, 5, 10, 7, 5, 5, 8, 6, 4, 9, 6, 2, 8, 2, 8, 9, 5, 7, 2, 2, 10, 3, 6, 1, 2, 9, 9, 9, 7, 2, 8, 4, 5, 2, 6, 3, 7, 10, 3, 3, 10, 6, 3, 9, 10, 6, 5, 9, 3, 4, 3, 8, 7, 7, 1, 5, 4, 9, 10, 3, 10, 7, 6, 1, 2, 8, 9, 2, 9, 3, 6, 2, 4, 7, 7, 7, 8, 8, 3, 3, 4, 2, 5, 4, 2, 3, 3, 5, 8, 4, 5, 5, 8, 5, 2, 4, 8, 10, 2, 8, 9, 3, 1, 3, 5, 3, 3, 2, 8, 4, 7, 7, 5, 3, 4, 6, 7, 5, 7, 5, 6, 2, 7, 8, 6, 7, 5, 7, 2, 7, 8, 2, 4, 5, 1, 6, 8, 10, 2, 1, 1, 2, 9, 7, 4, 3, 8, 1, 9, 5, 10, 9, 1, 1, 6, 7, 8, 3, 9, 2, 10, 2, 8, 8, 8, 10, 2, 10, 2, 1, 7, 4, 6, 4, 4, 7, 5, 5, 2, 6, 8, 8, 10, 3, 10, 1, 8, 9, 4, 7, 2, 5, 8, 9, 4, 1, 9, 1, 6, 7, 2, 8, 6, 4, 10, 6, 8, 7, 4, 4, 2, 10, 4, 7, 8, 5, 8, 9, 3, 10, 10, 5, 4, 10, 10, 7, 2, 10, 1, 3, 2, 4, 5, 3, 5, 6, 9, 1, 9, 7, 1, 8, 8, 1, 3, 7, 2, 9, 4, 10, 5, 5, 6, 1, 7, 4, 8, 6, 4, 8, 8, 3, 5, 4, 2, 5, 8, 8, 9, 5, 5, 6, 8, 10, 4, 3, 2, 7, 8, 1, 5, 4, 5, 3, 6, 5, 7, 5, 2, 4, 4, 5, 6, 9, 2, 9, 3, 3, 5, 6, 8, 4, 5, 4, 2, 3, 2, 5, 8, 5, 7, 8, 3, 3, 8, 9, 6, 5, 1, 2, 2, 10, 6, 6, 3, 2, 4, 9, 5, 6, 3, 2, 5, 4, 2, 1, 1, 8, 9, 5, 10, 10, 7, 4, 3, 1, 4, 8, 9, 6, 8, 6, 5, 1, 6, 8, 1, 2, 3, 5, 8, 6, 5, 1, 7, 4, 8, 6, 5, 2, 1, 2, 3, 6, 3, 4, 6, 6, 7, 3, 10, 1, 6, 3, 5, 7, 4, 5, 8, 5, 10, 2, 3, 3, 9, 7, 4, 3, 2, 2, 4, 4, 3, 4, 3, 2, 2, 4, 7, 3, 2, 6, 5, 6, 9, 1, 1, 1, 10, 2, 3, 9, 1, 6, 7, 7, 6, 9, 5, 6, 2, 6, 4, 9, 4, 5, 9, 7, 4, 2, 10, 6, 1, 5, 1, 6, 1, 8, 3, 2, 10, 9, 6, 2, 9, 5, 6, 3, 5, 8, 8, 2, 10, 6, 1, 7, 10, 10, 1, 5, 4, 1, 3, 3, 2, 8, 1, 5, 7, 4, 10, 1, 3, 8, 10, 2, 5, 10, 3, 2, 7, 1, 7, 10, 10, 5, 3, 4, 7, 5, 7, 8, 9, 2, 4, 1, 2, 8, 6, 8, 7, 3, 7, 3, 3, 3, 10, 8, 5, 4, 9, 9, 3, 3, 1, 7, 6, 9, 6, 10, 8, 4, 8, 3, 9, 4, 3, 5, 6, 10, 9, 10, 9, 10, 4, 6, 6, 8, 6, 8, 10, 3, 1, 5, 7, 8, 3, 3, 4, 3, 2, 3, 6, 5, 8, 9, 2, 7, 9, 4, 5, 5, 7, 2, 8, 1, 2, 8, 6, 8, 2, 1, 6, 2, 1, 5, 3, 9, 3, 7, 6, 7, 10, 3, 8, 9, 1, 9, 6, 3, 9, 4, 4, 2, 8, 7, 10, 7, 3, 9, 1, 9, 2, 2, 2, 3, 2, 3, 10, 4, 2, 5, 8, 2, 3, 5, 7, 3, 6, 3, 7, 4, 7, 7, 7, 3, 7, 4, 6, 3, 6, 1, 6, 4, 8, 6, 4, 1, 7, 3, 8, 3, 2, 6, 5, 1, 2, 5, 3, 5, 8, 7, 3, 6, 5, 5, 6, 10, 4, 3, 1, 7, 2, 2, 4, 5, 5, 9, 4, 6, 5, 2, 8, 2, 1, 6, 2, 7, 3, 1, 1, 6, 10, 6, 9, 1, 6, 6, 4, 2, 4, 5, 1, 7, 10, 4, 5, 4, 1, 7, 10, 10, 1, 9, 1, 4, 8, 1, 7, 3, 10, 10, 2, 8, 5, 8, 9, 1, 3, 5, 7, 8, 3, 3, 6, 3, 3, 5, 8, 3, 1, 8, 7, 5, 9, 7, 8, 3, 10, 7, 5, 4, 10, 8, 6, 6, 1, 8, 2, 2, 4, 1, 1, 6, 6, 3, 3, 3, 3, 9, 9, 6, 1, 2, 8, 10, 6, 1, 3, 6, 10, 1, 10, 5, 3, 4, 7, 6, 5, 10, 1, 6, 8, 2, 3, 9, 7, 10, 6, 3, 9, 7, 1, 10, 5, 10, 1, 6, 2, 9, 8, 8, 7, 1, 6, 3, 1, 1, 9, 6, 7, 1, 3, 8, 7, 2, 1, 8, 9, 4, 2, 9, 10, 9, 9, 9, 9, 5, 6, 5, 6, 4, 6, 8, 7, 2, 10, 10, 6, 2, 6, 3, 2, 1, 7, 9, 1, 6, 8, 7, 4, 3, 1, 10, 2, 7, 8, 7, 10, 4, 8, 7, 2, 3, 6, 8, 7, 10, 10, 2, 5, 2, 5, 9, 7, 8, 5, 7, 10, 7, 1, 9, 10, 8, 4, 2, 3, 9, 9, 9, 1, 6, 4, 3, 2, 4, 1, 2, 2, 6, 1, 10, 7, 5, 7, 2, 4, 7, 1, 10, 6, 9, 7, 10, 4, 4, 8, 8, 2, 6, 6, 6, 9, 4, 3, 6, 3, 1, 7, 7, 8, 7, 5, 2, 5, 10, 10, 6, 4, 9, 1, 2, 1, 5, 8, 7, 2, 1, 4, 5, 5, 1, 9, 8, 6, 3, 9, 5, 10, 1, 10, 7, 9, 6, 5, 5, 1, 8, 2, 4, 4, 3, 9, 5, 5, 4, 2, 10, 6, 6, 5, 6, 6, 6, 8, 1, 2, 4, 5, 5, 3, 7, 7, 3, 10, 3, 5, 8, 2, 2, 6, 4, 10, 7, 8, 5, 4, 5, 10, 2, 9, 5, 4, 1, 2, 10, 7, 9, 10, 9, 2, 10, 4, 8, 4, 7, 2, 7, 2, 5, 6, 2, 1, 5, 8, 8, 10, 2, 10, 5, 10, 2, 2, 8, 8, 8, 6, 2, 4, 3, 3, 3, 10, 4, 1, 4, 4, 4, 8, 7, 7, 6, 7, 10, 1, 7, 9, 3, 3, 4, 2, 4, 9, 10, 6, 3, 8, 8, 8, 10, 6, 2, 8, 4, 4, 3, 6, 10, 2, 7, 10, 10, 1, 5, 9, 10, 2, 3, 3, 1, 4, 3, 9, 9, 5, 6, 7, 4, 4, 6, 5, 9, 1, 2, 5, 7, 9, 10, 5, 4, 5, 6, 4, 9, 7, 7, 7, 9, 4, 2, 2, 5, 9, 3, 7, 1, 8, 6, 6, 9, 7, 2, 9, 9, 9, 7, 2, 8, 9, 10, 4, 7, 7, 9, 6, 10, 3, 1, 3, 2, 8, 7, 10, 9, 5, 2, 4, 6, 5, 6, 9, 7, 4, 8, 5, 2, 1, 6, 1, 3, 4, 4, 3, 5, 2, 6, 3, 1, 7, 6, 7, 10, 8, 9, 5, 9, 4, 5, 10, 10, 4, 8, 7, 5, 1, 3, 9, 9, 6, 9, 6, 7, 4, 3, 4, 1, 8, 2, 9, 9, 8, 10, 8, 3, 5, 1, 5, 6, 2, 8, 1, 9, 7, 6, 3, 4, 3, 9, 4, 10, 3, 4, 7, 6, 1, 5, 10, 1, 9, 5, 2, 4, 1, 5, 1, 5, 5, 6, 3, 6, 9, 1, 5, 9, 3, 8, 10, 5, 1, 9, 6, 2, 4, 9, 5, 5, 3, 7, 6, 7, 4, 6, 7, 3, 2, 10, 10, 2, 6, 6, 8, 10, 3, 3, 6, 4, 5, 7, 8, 2, 9, 6, 3, 3, 10, 8, 1, 5, 10, 1, 3, 8, 10, 5, 9, 3, 8, 1, 3, 3, 5, 6, 8, 3, 7, 9, 7, 6, 10, 7, 5, 9, 4, 10, 2, 4, 5, 4, 3, 3, 1, 6, 2, 5, 10, 9, 7, 3, 2, 9, 8, 4, 2, 2, 4, 6, 9, 6, 1, 1, 3, 3, 10, 1, 4, 2, 5, 5, 2, 6, 8, 3, 2, 3, 5, 1, 10, 8, 4, 5, 2, 6, 9, 2, 4, 4, 1, 9, 5, 9, 3, 9, 2, 8, 7, 8, 8, 1, 4, 5, 5, 8, 3, 2, 4, 1, 6, 9, 1, 9, 4, 4, 1, 9, 8, 9, 2, 4, 4, 4, 4, 10, 7, 7, 8, 8, 3, 8, 5, 10, 1, 3, 5, 4, 9, 7, 6, 8, 4, 2, 5, 5, 4, 8, 1, 7, 7, 4, 3, 1, 4, 7, 8, 4, 9, 2, 10, 6, 5, 2, 7, 6, 5, 5, 4, 4, 8, 5, 5, 10, 2, 10, 10, 10, 1, 4, 5, 10, 3, 6, 6, 5, 3, 2, 7, 10, 8, 9, 9, 9, 2, 6, 2, 3, 9, 3, 7, 6, 5, 8, 5, 7, 9, 7, 9, 2, 5, 3, 1, 5, 5, 2, 1, 1, 1, 4, 2, 3, 7, 4, 8, 7, 10, 4, 9, 4, 5, 7, 9, 2, 10, 7, 8, 1, 5, 2, 3, 5, 7, 9, 10, 2, 5, 2, 9, 4, 7, 5, 4, 3, 6, 10, 10, 5, 3, 8, 8, 6, 8, 6, 4, 6, 1, 3, 5, 9, 1, 6, 6, 9, 7, 8, 4, 9, 7, 10, 10, 4, 2, 9, 2, 9, 4, 8, 3, 2, 2, 5, 6, 1, 4, 5, 2, 2, 9, 6, 10, 6, 8, 10, 5, 4, 1, 6, 4, 5, 2, 4, 1, 8, 3, 2, 6, 5, 9, 6, 9, 4, 7, 9, 4, 3, 2, 1, 6, 7, 8, 1, 2, 8, 3, 8, 4, 4, 1, 10, 6, 7, 9, 10, 5, 4, 8, 6, 5, 6, 1, 8, 1, 6, 9, 7, 5, 3, 1, 3, 8, 2, 6, 2, 4, 5, 9, 9, 9, 10, 9, 1, 10, 5, 10, 5, 9, 1, 7, 3, 7, 9, 10, 5, 3, 7, 7, 2, 10, 3, 6, 6, 8, 3, 1, 2, 5, 3, 6, 9, 1, 3, 5, 1, 3, 6, 9, 8, 2, 4, 6, 6, 8, 8, 7, 4, 10, 1, 10, 7, 4, 3, 2, 1, 5, 4, 7, 9, 2, 6, 5, 3, 7, 6, 7, 4, 7, 1, 3, 3, 3, 3, 6, 6, 2, 5, 9, 9, 6, 10, 4, 6, 4, 4, 7, 8, 3, 3, 3, 5, 4, 1, 1, 3, 4, 4, 10, 7, 4, 4, 4, 9, 7, 5, 2, 3, 10, 2, 10, 1, 9, 2, 10, 9, 8, 4, 4, 2, 2, 5, 1, 6, 10, 9, 6, 6, 7, 10, 8, 3, 3, 2, 8, 4, 8, 1, 5, 4, 7, 7, 1, 9, 1, 9, 8, 9, 8, 3, 4, 6, 8, 10, 4, 10, 1, 2, 1, 1, 8, 3, 10, 1, 10, 6, 8, 10, 10, 3, 1, 8, 10, 8, 10, 7, 2, 7, 5, 10, 6, 5, 2, 2, 5, 9, 5, 1, 3, 1, 4, 5, 9, 1, 5, 8, 3, 2, 5, 4, 7, 4, 3, 6, 3, 1, 6, 10, 5, 7, 6, 7, 3, 3, 9, 6, 7, 4, 2, 9, 8, 10, 2, 1, 10, 2, 10, 6, 8, 2, 6, 8, 8, 3, 9, 6, 10, 9, 1, 2, 5, 9, 7, 9, 3, 7, 5, 2, 3, 6, 7, 7, 10, 4, 4, 9, 2, 10, 6, 5, 5, 7, 4, 2, 6, 7, 3, 8, 10, 1, 3, 8, 3, 7, 8, 9, 7, 10, 2, 7, 3, 4, 2, 3, 2, 6, 1, 4, 9, 5, 10, 7, 3, 2, 6, 5, 4, 9, 1, 7, 9, 2, 1, 10, 1, 1, 6, 7, 2, 2, 6, 10, 9, 4, 5, 2, 7, 4, 3, 1, 10, 6, 3, 7, 9, 7, 2, 3, 7, 2, 5, 4, 8, 4, 4, 5, 1, 9, 3, 4, 4, 9, 3, 8, 3, 4, 6, 5, 3, 9, 2, 5, 10, 1, 7, 1, 7, 4, 2, 7, 6, 2, 8, 5, 1, 2, 6, 9, 8, 3, 7, 8, 4, 2, 2, 7, 6, 6, 6, 6, 3, 9, 3, 3, 3, 2, 9, 6, 8, 7, 10, 4, 2, 9, 8, 5, 9, 7, 9, 7, 5, 4, 7, 8, 9, 7, 9, 5, 3, 5, 8, 8, 6, 1, 4, 2, 7, 6, 9, 10, 3, 9, 10, 10, 7, 3, 5, 3, 8, 4, 8, 6, 3, 8, 1, 9, 4, 7, 1, 8, 4, 2, 6, 5, 2, 4, 5, 1, 9, 6, 1, 2, 2, 9, 5, 2, 2, 9, 1, 10, 1, 1, 8, 2, 2, 1, 2, 2, 8, 10, 5, 9, 2, 10, 6, 8, 5, 6, 7, 2, 7, 10, 8, 4, 1, 3, 3, 4, 7, 3, 2, 10, 2, 10, 5, 5, 5, 5, 2, 8, 2, 7, 3, 1, 4, 1, 6, 2, 10, 9, 5, 3, 10, 3, 10, 4, 4, 9, 7, 1, 2, 5, 5, 3, 10, 1, 10, 5, 8, 1, 3, 4, 5, 8, 3, 6, 4, 1, 6, 7, 8, 7, 8, 4, 6, 4, 2, 1, 4, 8, 3, 7, 5, 1, 5, 3, 2, 5, 1, 9, 5, 9, 2, 10, 6, 1, 2, 5, 8, 3, 7, 7, 6, 5, 6, 3, 5, 3, 10, 8, 8, 9, 5, 7, 9, 10, 3, 3, 6, 7, 8, 10, 9, 1, 7, 7, 7, 8, 5, 1, 3, 10, 8, 8, 7, 7, 2, 3, 10, 6, 4, 8, 2, 4, 2, 1, 1, 1, 5, 7, 7, 2, 2, 5, 10, 7, 8, 9, 1, 8, 4, 1, 4, 10, 9, 9, 7, 2, 2, 3, 7, 2, 2, 5, 9, 1, 3, 1, 10, 9, 2, 7, 2, 5, 10, 10, 2, 1, 3, 7, 10, 5, 5, 1, 9, 4, 7, 4, 10, 1, 7, 8, 8, 8, 9, 8, 1, 2, 4, 2, 4, 6, 7, 7, 5, 8, 8, 4, 3, 7, 4, 5, 6, 7, 1, 4, 7, 10, 7, 4, 7, 7, 8, 8, 7, 1, 5, 3, 4, 9, 9, 10, 2, 4, 1, 10, 4, 4, 6, 9, 10, 3, 2, 10, 2, 8, 5, 8, 3, 6, 7, 2, 1, 10, 8, 5, 3, 1, 10, 5, 7, 7, 1, 9, 9, 6, 2, 6, 10, 3, 10, 7, 10, 7, 5, 5, 8, 7, 2, 5, 3, 9, 4, 10, 5, 10, 4, 1, 7, 6, 8, 8, 6, 4, 1, 8, 2, 4, 4, 8, 9, 7, 1, 5, 2, 10, 3, 8, 7, 4, 8, 5, 7, 6, 5, 4, 10, 2, 5, 6, 3, 1, 4, 6, 7, 1, 7, 9, 4, 1, 3, 5, 9, 3, 8, 9, 10, 5, 6, 1, 3, 9, 6, 2, 4, 10, 3, 9, 3, 4, 8, 2, 5, 4, 1, 5, 1, 2, 9, 6, 8, 8, 5, 9, 1, 8, 4, 7, 1, 2, 5, 1, 6, 6, 10, 3, 10, 7, 6, 5, 6, 4, 7, 1, 2, 3, 6, 1, 1, 3, 1, 8, 3, 9, 9, 3, 6, 9, 9, 5, 3, 6, 7, 3, 6, 3, 10, 4, 3, 10, 4, 5, 1, 4, 10, 6, 2, 7, 1, 1, 8, 6, 5, 1, 9, 7, 1, 3, 5, 10, 9, 3, 5, 5, 2, 9, 4, 6, 9, 7, 2, 10, 5, 5, 8, 10, 6, 10, 8, 7, 1, 10, 7, 4, 7, 6, 7, 8, 5, 8, 5, 2, 9, 3, 10, 5, 9, 4, 9, 7, 1, 9, 2, 3, 9, 4, 8, 4, 10, 2, 3, 6, 5, 9, 2, 3, 4, 6, 3, 2, 1, 8, 7, 1, 10, 7, 7, 9, 4, 3, 3, 9, 8, 3, 8, 6, 2, 8, 10, 1, 9, 10, 10, 7, 4, 9, 10, 6, 6, 8, 10, 7, 7, 10, 3, 2, 3, 7, 8, 9, 7, 4, 7, 2, 3, 4, 6, 2, 8, 4, 8, 2, 5, 2, 9, 1, 3, 9, 7, 2, 2, 10, 2, 9, 10, 5, 9, 1, 3, 9, 10, 2, 9, 7, 1, 8, 1, 7, 4, 8, 7, 6, 6, 8, 10, 9, 4, 1, 10, 4, 2, 3, 10, 3, 4, 6, 1, 3, 3, 4, 5, 3, 10, 8, 3, 9, 1, 7, 3, 10, 6, 6, 6, 7, 3, 6, 10, 5, 9, 2, 3, 1, 5, 6, 8, 9, 2, 7, 10, 4, 8, 3, 3, 6, 10, 2, 6, 8, 8, 2, 9, 2, 4, 6, 3, 7, 8, 4, 5, 5, 10, 4, 9, 1, 6, 1, 4, 7, 10, 1, 1, 1, 2, 2, 4, 7, 3, 4, 1, 2, 9, 10, 8, 8, 5, 8, 1, 6, 5, 9, 6, 2, 5, 8, 3, 4, 2, 8, 2, 9, 9, 2, 6, 8, 1, 6, 9, 4, 2, 3, 3, 6, 7, 9, 2, 2, 4, 1, 6, 6, 8, 2, 3, 10, 9, 5, 9, 3, 8, 10, 9, 2, 10, 4, 5, 3, 10, 4, 2, 1, 5, 9, 2, 9, 10, 2, 6, 10, 1, 8, 6, 9, 8, 4, 5, 4, 10, 8, 2, 1, 8, 10, 8, 10, 9, 1, 3, 1, 5, 8, 8, 4, 2, 5, 2, 2, 5, 8, 8, 3, 9, 1, 9, 4, 4, 8, 7, 1, 3, 10, 9, 7, 3, 10, 1, 4, 10, 7, 4, 10, 2, 9, 10, 7, 7, 10, 8, 6, 3, 5, 2, 1, 4, 10, 5, 4, 7, 8, 10, 2, 1, 4, 4, 7, 3, 4, 8, 7, 6, 4, 5, 3, 4, 1, 10, 7, 9, 7, 5, 4, 5, 1, 10, 4, 2, 4, 10, 8, 8, 10, 7, 4, 5, 1, 8, 6, 7, 6, 3, 8, 9, 5, 7, 9, 10, 8, 6, 6, 9, 7, 4, 6, 10, 6, 6, 6, 9, 5, 6, 4, 1, 9, 6, 6, 9, 2, 5, 6, 2, 2, 6, 9, 5, 6, 8, 1, 8, 5, 9, 8, 6, 7, 5, 6, 7, 5, 4, 5, 10, 6, 3, 4, 10, 6, 10, 4, 5, 9, 8, 6, 2, 7, 1, 10, 2, 2, 8, 3, 10, 8, 4, 6, 1, 9, 3, 1, 10, 2, 1, 2, 7, 6, 4, 3, 7, 7, 3, 8, 3, 10, 4, 10, 7, 9, 6, 7, 7, 9, 5, 10, 2, 8, 6, 7, 1, 9, 1, 3, 10, 2, 4, 8, 3, 7, 5, 1, 3, 9, 5, 1, 10, 4, 7, 2, 1, 9, 10, 7, 8, 1, 5, 4, 5, 3, 8, 7, 3, 6, 7, 4, 9, 10, 8, 6, 8, 6, 3, 9, 9, 6, 7, 7, 8, 8, 8, 4, 10, 3, 8, 9, 1, 8, 3, 2, 9, 6, 9, 8, 3, 7, 9, 5, 4, 10, 7, 9, 1, 3, 5, 10, 8, 10, 3, 2, 2, 4, 7, 8, 9, 1, 2, 10, 6, 6, 2, 4, 1, 10, 5, 7, 7, 8, 1, 10, 7, 6, 6, 4, 4, 10, 4, 4, 6, 9, 7, 8, 8, 3, 4, 4, 8, 7, 3, 8, 4, 7, 1, 10, 7, 5, 2, 2, 3, 9, 4, 9, 7, 3, 1, 1, 5, 8, 5, 5, 1, 5, 1, 9, 9, 9, 3, 4, 3, 7, 6, 9, 10, 9, 6, 7, 7, 8, 6, 7, 9, 7, 8, 6, 7, 6, 8, 3, 5, 1, 6, 4, 9, 7, 2, 8, 4, 4, 2, 4, 6, 6, 3, 1, 6, 5, 2, 4, 6, 5, 1, 10, 4, 1, 9, 6, 1, 6, 2, 9, 8, 10, 4, 1, 4, 1, 6, 10, 4, 7, 10, 10, 4, 2, 1, 5, 4, 10, 6, 4, 4, 9, 8, 6, 6, 7, 4, 4, 8, 6, 4, 2, 3, 4, 4, 1, 7, 5, 9, 1, 7, 6, 9, 9, 5, 4, 6, 8, 2, 5, 5, 8, 8, 9, 4, 8, 8, 10, 2, 5, 4, 7, 10, 10, 5, 2, 4, 8, 2, 7, 7, 6, 4, 7, 6, 10, 8, 4, 8, 10, 2, 9, 1, 10, 2, 10, 8, 6, 4, 9, 1, 10, 9, 3, 3, 6, 1, 5, 6, 7, 4, 6, 9, 10, 6, 8, 6, 3, 4, 5, 1, 1, 2, 10, 4, 5, 4, 8, 2, 9, 9, 5, 6, 6, 9, 1, 7, 2, 4, 1, 4, 10, 5, 9, 6, 7, 4, 6, 10, 4, 7, 10, 5, 8, 4, 2, 7, 6, 10, 2, 9, 4, 2, 9, 5, 10, 9, 7, 1, 3, 5, 4, 9, 3, 3, 6, 8, 3, 2, 3, 7, 6, 2, 9, 2, 9, 9, 4, 2, 4, 10, 3, 10, 5, 10, 5, 7, 4, 10, 4, 10, 1, 8, 6, 8, 3, 3, 5, 1, 1, 6, 4, 7, 2, 8, 5, 2, 1, 1, 5, 8, 4, 4, 4, 6, 2, 2, 6, 8, 7, 9, 8, 9, 3, 5, 6, 8, 8, 9, 8, 4, 1, 6, 6, 4, 5, 7, 7, 2, 6, 9, 2, 8, 10, 4, 2, 1, 1, 4, 8, 9, 3, 8, 10, 8, 3, 6, 6, 8, 7, 6, 7, 1, 2, 7, 2, 8, 8, 7, 9, 2, 8, 4, 10, 2, 1, 1, 10, 1, 4, 8, 4, 7, 3, 3, 4, 2, 10, 7, 4, 9, 6, 2, 7, 1, 6, 5, 3, 9, 8, 7, 7, 1, 4, 9, 5, 8, 2, 9, 6, 9, 7, 2, 10, 10, 4, 10, 4, 5, 5, 7, 10, 10, 2, 4, 2, 7, 8, 9, 10, 2, 10, 1, 2, 3, 4, 10, 10, 2, 3, 1, 4, 9, 2, 5, 10, 4, 10, 9, 9, 6, 9, 9, 9, 7, 2, 3, 9, 7, 1, 10, 1, 3, 1, 10, 9, 7, 1, 10, 9, 9, 5, 8, 6, 9, 1, 1, 7, 8, 5, 10, 5, 6, 3, 4, 9, 9, 7, 1, 4, 1, 9, 8, 5, 3, 4, 5, 2, 9, 10, 3, 3, 5, 2, 6, 10, 1, 6, 5, 4, 8, 3, 1, 2, 3, 4, 9, 2, 9, 10, 10, 1, 2, 2, 7, 1, 4, 5, 2, 6, 5, 10, 3, 2, 9, 1, 9, 2, 3, 3, 6, 3, 10, 3, 7, 5, 4, 8, 7, 9, 7, 10, 6, 3, 6, 2, 8, 1, 3, 8, 2, 5, 8, 6, 2, 7, 3, 1, 3, 6, 1, 4, 8, 6, 1, 9, 7, 8, 4, 8, 5, 8, 1, 8, 3, 6, 7, 3, 10, 4, 1, 3, 7, 4, 8, 4, 3, 10, 3, 1, 10, 2, 9, 2, 1, 8, 8, 6, 6, 9, 2, 7, 8, 10, 2, 3, 8, 9, 10, 8, 1, 6, 3, 10, 9, 2, 10, 4, 4, 10, 1, 9, 8, 6, 6, 3, 10, 10, 8, 8, 5, 10, 7, 6, 4, 10, 3, 8, 9, 4, 3, 6, 7, 1, 4, 1, 3, 5, 2, 8, 8, 4, 7, 2, 7, 3, 1, 9, 6, 3, 2, 5, 7, 3, 3, 7, 8, 9, 4, 3, 7, 5, 4, 6, 3, 8, 1, 3, 7, 2, 2, 3, 2, 1, 2, 3, 3, 6, 4, 6, 5, 3, 9, 6, 1, 7, 10, 6, 5, 5, 8, 5, 9, 5, 5, 6, 8, 7, 2, 6, 8, 5, 6, 5, 7, 4, 1, 2, 8, 3, 6, 4, 9, 2, 5, 9, 10, 6, 3, 8, 2, 8, 1, 2, 3, 3, 10, 2, 3, 1, 1, 2, 8, 5, 10, 5, 6, 8, 8, 10, 1, 3, 3, 4, 2, 7, 2, 2, 3, 8, 9, 3, 1, 8, 5, 8, 3, 1, 2, 6, 7, 9, 7, 9, 5, 1, 10, 10, 10, 7, 3, 7, 9, 3, 9, 9, 1, 8, 1, 2, 1, 3, 4, 4, 4, 9, 4, 7, 7, 2, 9, 5, 8, 10, 2, 2, 6, 3, 7, 5, 5, 5, 10, 2, 4, 1, 5, 7, 8, 7, 2, 4, 7, 4, 2, 5, 1, 9, 5, 9, 1, 3, 4, 3, 6, 4, 5, 8, 5, 2, 2, 5, 2, 10, 6, 10, 6, 4, 3, 9, 9, 5, 6, 3, 8, 1, 1, 3, 2, 7, 5, 2, 7, 7, 8, 7, 2, 10, 7, 1, 10, 5, 1, 2, 9, 7, 4, 4, 3, 9, 7, 3, 3, 1, 2, 1, 8, 2, 4, 4, 1, 7, 9, 3, 9, 2, 5, 5, 4, 1, 4, 1, 6, 4, 2, 2, 1, 8, 7, 4, 1, 1, 8, 10, 2, 5, 10, 10, 6, 4, 2, 5, 8, 7, 6, 8, 2, 2, 1, 9, 6, 2, 8, 8, 3, 8, 10, 10, 4, 9, 3, 1, 3, 6, 7, 6, 6, 7, 7, 1, 4, 5, 4, 4, 8, 9, 6, 6, 2, 2, 7, 1, 3, 8, 9, 3, 2, 2, 10, 4, 3, 4, 5, 10, 1, 4, 10, 4, 9, 8, 7, 2, 6, 4, 1, 9, 1, 3, 6, 3, 2, 8, 9, 3, 5, 10, 10, 9, 3, 9, 7, 1, 8, 8, 8, 5, 1, 7, 3, 4, 7, 4, 4, 4, 10, 3, 3, 7, 3, 4, 10, 7, 5, 5, 7, 1, 1, 6, 2, 9, 5, 8, 9, 1, 3, 3, 6, 10, 6, 4, 6, 9, 7, 6, 7, 8, 10, 6, 1, 7, 1, 2, 3, 2, 3, 6, 1, 9, 7, 9, 2, 4, 5, 5, 1, 8, 9, 3, 8, 10, 5, 10, 2, 9, 2, 1, 8, 8, 9, 5, 1, 4, 8, 2, 6, 5, 1, 3, 3, 7, 9, 2, 4, 6, 2, 10, 8, 5, 5, 8, 1, 2, 5, 1, 5, 2, 6, 4, 3, 2, 9, 8, 2, 6, 5, 2, 2, 3, 4, 7, 9, 8, 8, 10, 9, 2, 1, 6, 5, 6, 3, 7, 1, 6, 1, 5, 7, 4, 3, 6, 7, 10, 4, 7, 10, 6, 6, 8, 4, 8, 8, 10, 1, 1, 6, 2, 10, 4, 3, 4, 5, 1, 8, 1, 2, 2, 2, 7, 1, 3, 4, 4, 2, 1, 9, 5, 9, 10, 4, 7, 5, 10, 1, 1, 7, 1, 10, 8, 3, 9, 6, 1, 9, 5, 4, 1, 9, 10, 1, 3, 3, 8, 9, 2, 6, 4, 8, 10, 7, 8, 1, 10, 9, 1, 6, 5, 9, 4, 9, 3, 6, 9, 1, 8, 8, 7, 1, 5, 10, 2, 2, 3, 9, 5, 10, 6, 10, 1, 5, 8, 6, 3, 7, 2, 6, 2, 9, 6, 5, 4, 9, 10, 7, 1, 5, 2, 6, 2, 2, 9, 4, 8, 8, 1, 4, 7, 2, 4, 6, 2, 2, 3, 10, 8, 1, 6, 4, 4, 1, 2, 10, 7, 10, 4, 7, 5, 5, 7, 7, 4, 5, 8, 1, 4, 1, 5, 2, 2, 6, 6, 8, 9, 3, 2, 2, 7, 4, 2, 10, 3, 1, 4, 6, 3, 6, 6, 8, 6, 3, 6, 10, 6, 6, 6, 1, 5, 9, 1, 5, 5, 8, 5, 8, 6, 2, 2, 5, 10, 2, 2, 9, 4, 1, 7, 2, 6, 1, 3, 9, 10, 9, 8, 2, 5, 10, 10, 5, 6, 2, 3, 4, 4, 9, 10, 4, 4, 8, 7, 5, 1, 8, 8, 1, 2, 6, 4, 6, 6, 9, 4, 5, 6, 6, 7, 2, 2, 6, 10, 6, 5, 2, 5, 2, 1, 3, 1, 2, 1, 10, 5, 9, 9, 8, 10, 1, 2, 7, 3, 7, 9, 6, 10, 9, 7, 1, 2, 7, 10, 6, 8, 9, 8, 4, 9, 5, 1, 5, 5, 9, 9, 2, 1, 4, 2, 7, 9, 9, 10, 8, 3, 10, 9, 6, 9, 6, 1, 3, 3, 7, 9, 1, 2, 9, 3, 10, 4, 3, 6, 4, 1, 10, 6, 1, 2, 10, 10, 6, 3, 4, 8, 2, 9, 1, 3, 5, 3, 6, 2, 3, 3, 10, 9, 1, 10, 9, 4, 8, 3, 9, 7, 1, 4, 4, 1, 7, 9, 8, 8, 8, 2, 9, 2, 4, 4, 5, 8, 1, 4, 10, 8, 2, 6, 3, 9, 2, 7, 9, 6, 8, 9, 6, 6, 4, 4, 2, 5, 5, 3, 1, 7, 7, 5, 2, 2, 7, 8, 6, 5, 8, 6, 4, 5, 9, 3, 2, 1, 6, 7, 6, 10, 9, 1, 7, 7, 7, 10, 1, 9, 7, 9, 6, 6, 1, 3, 5, 7, 5, 8, 9, 3, 2, 7, 6, 2, 3, 3, 1, 2, 8, 7, 8, 2, 9, 7, 8, 1, 8, 7, 9, 8, 1, 9, 3, 8, 8, 9, 6, 3, 9, 6, 7, 5, 8, 2, 6, 6, 1, 8, 1, 4, 5, 2, 10, 5, 2, 7, 8, 8, 10, 6, 3, 1, 1, 8, 5, 1, 1, 4, 10, 4, 8, 3, 2, 3, 1, 6, 6, 3, 8, 2, 1, 2, 4, 9, 9, 7, 9, 4, 10, 6, 7, 1, 7, 1, 8, 10, 5, 9, 1, 9, 7, 5, 4, 6, 2, 6, 9, 2, 9, 6, 5, 6, 1, 3, 3, 7, 6, 7, 3, 5, 5, 3, 3, 8, 7, 6, 4, 7, 4, 6, 2, 5, 8, 5, 10, 5, 5, 5, 5, 9, 5, 1, 9, 5, 3, 1, 3, 6, 2, 8, 7, 3, 3, 9, 3, 10, 3, 9, 10, 2, 9, 9, 5, 5, 7, 6, 1, 9, 3, 3, 4, 5, 3, 7, 2, 10, 7, 8, 3, 3, 7, 10, 7, 6, 3, 5, 7, 8, 9, 8, 10, 9, 4, 7, 1, 4, 6, 2, 2, 6, 2, 1, 1, 6, 4, 2, 7, 1, 7, 1, 2, 4, 8, 2, 2, 2, 1, 8, 2, 2, 1, 6, 1, 8, 5, 4, 3, 9, 9, 4, 9, 5, 5, 8, 3, 2, 6, 10, 10, 10, 1, 2, 1, 8, 5, 5, 10, 1, 1, 2, 2, 3, 1, 4, 3, 6, 7, 8, 5, 1, 7, 4, 2, 3, 10, 10, 2, 10, 10, 3, 2, 7, 10, 5, 5, 9, 4, 10, 6, 2, 10, 1, 6, 9, 7, 8, 7, 10, 4, 4, 1, 7, 9, 2, 8, 6, 6, 7, 5, 8, 10, 9, 1, 2, 8, 7, 10, 2, 2, 7, 6, 10, 10, 4, 2, 3, 1, 8, 10, 4, 7, 5, 10, 9, 2, 9, 8, 9, 1, 8, 3, 2, 7, 6, 6, 7, 7, 8, 6, 1, 6, 8, 10, 4, 6, 1, 6, 5, 9, 3, 4, 6, 7, 4, 9, 9, 9, 2, 9, 9, 8, 8, 6, 1, 8, 3, 6, 9, 6, 9, 2, 4, 10, 8, 1, 7, 2, 4, 2, 2, 4, 9, 10, 1, 3, 1, 7, 2, 6, 10, 7, 10, 5, 1, 10, 3, 8, 2, 2, 7, 5, 5, 3, 3, 5, 9, 8, 6, 10, 4, 1, 3, 1, 7, 4, 10, 2, 9, 10, 7, 1, 7, 9, 4, 9, 6, 7, 7, 1, 9, 10, 9, 7, 10, 3, 4, 6, 1, 4, 10, 1, 10, 10, 7, 5, 2, 6, 6, 7, 1, 6, 5, 7, 3, 10, 10, 2, 7, 9, 4, 7, 5, 10, 9, 3, 7, 3, 8, 7, 9, 9, 9, 1, 6, 1, 10, 4, 2, 6, 2, 7, 5, 4, 9, 10, 4, 3, 10, 6, 5, 6, 2, 1, 10, 1, 2, 7, 6, 8, 8, 3, 1, 9, 2, 5, 5, 5, 7, 6, 8, 1, 5, 3, 10, 1, 10, 10, 6, 9, 1, 10, 6, 4, 9, 8, 6, 6, 9, 1, 4, 3, 5, 2, 2, 5, 6, 8, 6, 5, 5, 1, 1, 3, 7, 2, 10, 2, 2, 7, 1, 6, 9, 5, 5, 1, 9, 2, 2, 4, 8, 1, 1, 4, 5, 1, 5, 10, 8, 3, 1, 7, 6, 10, 8, 8, 2, 7, 5, 8, 9, 3, 6, 7, 5, 1, 4, 4, 5, 8, 4, 3, 5, 9, 6, 1, 1, 5, 10, 7, 4, 1, 1, 1, 2, 7, 2, 10, 3, 3, 6, 5, 9, 4, 9, 1, 1, 8, 6, 9, 2, 2, 5, 8, 6, 2, 7, 5, 7, 2, 9, 9, 4, 7, 4, 9, 8, 8, 8, 10, 9, 10, 7, 4, 2, 4, 7, 5, 1, 2, 5, 1, 5, 8, 2, 7, 6, 8, 10, 4, 7, 6, 7, 4, 8, 2, 6, 7, 8, 10, 3, 7, 3, 2, 6, 9, 7, 2, 5, 6, 6, 7, 10, 3, 3, 5, 6, 4, 1, 5, 3, 4, 7, 4, 10, 2, 4, 9, 6, 4, 8, 2, 9, 1, 8, 10, 10, 2, 9, 9, 4, 9, 7, 3, 4, 9, 6, 4, 3, 9, 3, 9, 8, 7, 2, 10, 7, 6, 7, 2, 1, 6, 2, 2, 3, 2, 2, 8, 8, 9, 10, 9, 1, 4, 1, 6, 1, 6, 2, 1, 5, 3, 10, 10, 7, 6, 1, 1, 3, 5, 6, 10, 8, 3, 7, 6, 9, 1, 2, 8, 5, 8, 3, 8, 5, 1, 7, 9, 5, 10, 5, 7, 1, 9, 8, 9, 7, 7, 7, 4, 8, 6, 2, 10, 6, 5, 6, 6, 7, 9, 1, 2, 6, 6, 6, 4, 2, 5, 3, 9, 5, 8, 6, 9, 4, 10, 9, 10, 10, 4, 3, 8, 3, 10, 2, 1, 5, 1, 4, 10, 4, 10, 5, 6, 7, 1, 10, 9, 6, 5, 3, 7, 4, 5, 1, 10, 3, 5, 3, 5, 1, 5, 10, 4, 8, 10, 7, 9, 4, 3, 2, 3, 2, 8, 10, 6, 5, 9, 4, 5, 10, 9, 10, 8, 10, 1, 9, 4, 5, 3, 4, 7, 2, 8, 4, 7, 5, 10, 6, 7, 6, 4, 8, 6, 3, 4, 1, 9, 7, 6, 8, 7, 1, 9, 6, 6, 3, 4, 2, 2, 6, 1, 5, 8, 4, 7, 8, 8, 6, 2, 6, 1, 3, 4, 9, 10, 8, 10, 8, 7, 5, 5, 6, 3, 10, 2, 5, 1, 7, 7, 7, 8, 2, 4, 3, 9, 4, 6, 7, 9, 10, 9, 3, 5, 4, 4, 5, 7, 8, 1, 2, 3, 3, 7, 4, 7, 4, 9, 6, 7, 4, 10, 8, 3, 5, 5, 8, 2, 9, 3, 9, 6, 6, 8, 2, 3, 7, 4, 8, 6, 5, 9, 4, 5, 2, 6, 2, 4, 10, 6, 2, 2, 6, 2, 3, 9, 8, 9, 5, 9, 1, 4, 2, 8, 1, 3, 7, 1, 1, 6, 10, 4, 9, 8, 2, 10, 3, 6, 5, 10, 9, 8, 6, 2, 9, 4, 1, 1, 8, 7, 10, 10, 5, 9, 2, 10, 1, 7, 10, 3, 1, 10, 4, 7, 3, 8, 8, 3, 5, 10, 7, 7, 6, 7, 3, 10, 10, 3, 6, 4, 6, 3, 10, 7, 10, 5, 5, 2, 3, 4, 6, 2, 5, 6, 10, 5, 7, 8, 7, 2, 7, 8, 5, 10, 8, 5, 6, 6, 10, 10, 10, 3, 7, 2, 2, 9, 3, 4, 3, 10, 3, 6, 8, 1, 5, 8, 6, 7, 3, 10, 3, 1, 3, 5, 2, 8, 6, 9, 3, 1, 7, 6, 6, 10, 7, 9, 8, 7, 4, 10, 2, 9, 3, 2, 4, 5, 8, 1, 1, 2, 4, 10, 3, 2, 1, 1, 5, 6, 8, 3, 6, 2, 4, 1, 5, 6, 10, 5, 1, 3, 5, 4, 1, 10, 6, 3, 8, 3, 3, 1, 5, 6, 10, 1, 1, 5, 7, 8, 3, 6, 6, 5, 8, 4, 9, 3, 8, 1, 5, 9, 9, 4, 1, 4, 10, 7, 7, 10, 8, 4, 1, 4, 5, 9, 4, 3, 4, 4, 2, 7, 8, 2, 6, 10, 10, 7, 10, 1, 7, 7, 1, 4, 1, 5, 3, 6, 7, 7, 9, 4, 2, 3, 3, 1, 6, 7, 7, 1, 4, 9, 8, 3, 10, 1, 4, 2, 3, 7, 6, 10, 2, 7, 1, 9, 3, 3, 10, 1, 7, 1, 8, 5, 4, 6, 1, 8, 3, 2, 4, 1, 9, 3, 1, 1, 1, 6, 1, 5, 10, 9, 10, 2, 4, 6, 3, 3, 10, 4, 4, 3, 8, 10, 9, 2, 9, 10, 1, 5, 4, 8, 1, 1, 4, 10, 8, 9, 9, 4, 9, 6, 8, 5, 7, 2, 3, 8, 2, 6, 7, 6, 2, 9, 3, 6, 2, 6, 8, 5, 8, 6, 8, 6, 3, 3, 4, 6, 10, 1, 8, 2, 3, 2, 1, 3, 7, 8, 9, 10, 4, 5, 6, 2, 1, 3, 8, 6, 1, 6, 6, 4, 2, 4, 9, 8, 9, 1, 8, 5, 9, 9, 6, 9, 6, 7, 2, 5, 4, 9, 10, 7, 6, 7, 3, 9, 10, 6, 9, 10, 4, 8, 8, 3, 5, 8, 4, 8, 9, 10, 10, 4, 10, 2, 6, 4, 5, 2, 4, 6, 2, 1, 6, 3, 8, 10, 6, 4, 9, 10, 7, 8, 3, 1, 3, 4, 2, 2, 1, 2, 2, 3, 8, 5, 1, 6, 8, 7, 2, 9, 4, 10, 6, 3, 6, 4, 4, 4, 9, 3, 1, 3, 8, 4, 9, 9, 9, 4, 2, 7, 8, 6, 10, 1, 1, 3, 6, 10, 4, 10, 3, 5, 8, 10, 4, 3, 10, 5, 2, 4, 5, 9, 6, 6, 9, 10, 7, 2, 6, 4, 5, 3, 5, 7, 3, 10, 4, 1, 1, 1, 6, 7, 5, 10, 7, 4, 9, 1, 4, 2, 4, 1, 6, 10, 6, 4, 4, 3, 4, 7, 7, 8, 6, 6, 6, 6, 1, 8, 9, 3, 5, 3, 4, 2, 2, 2, 4, 8, 1, 8, 5, 2, 3, 10, 8, 1, 2, 9, 6, 5, 3, 9, 2, 4, 9, 8, 5, 10, 2, 6, 8, 4, 9, 7, 9, 10, 7, 4, 8, 6, 3, 6, 8, 6, 9, 1, 8, 1, 9, 9, 7, 4, 2, 2, 10, 9, 4, 8, 3, 6, 4, 1, 3, 5, 4, 4, 6, 5, 10, 8, 7, 3, 4, 1, 7, 8, 7, 6, 5, 4, 6, 10, 3, 9, 8, 8, 7, 9, 8, 7, 10, 7, 1, 6, 10, 3, 1, 2, 9, 1, 1, 3, 7, 6, 8, 4, 2, 2, 10, 10, 5, 9, 2, 4, 7, 5, 2, 4, 2, 4, 8, 6, 5, 2, 4, 2, 7, 10, 8, 5, 9, 3, 10, 8, 9, 6, 4, 5, 2, 9, 3, 4, 3, 5, 9, 6, 4, 5, 4, 1, 2, 4, 2, 1, 8, 10, 1, 9, 4, 7, 10, 8, 5, 9, 2, 8, 8, 5, 3, 9, 3, 6, 4, 1, 8, 1, 3, 3, 5, 9, 4, 1, 3, 3, 7, 6, 4, 4, 3, 10, 1, 8, 2, 9, 9, 4, 5, 1, 6, 8, 9, 4, 6, 10, 5, 4, 4, 6, 6, 4, 5, 4, 10, 4, 5, 10, 9, 1, 6, 4, 7, 3, 8, 8, 4, 4, 1, 10, 10, 1, 3, 1, 5, 6, 7, 9, 7, 9, 5, 1, 9, 6, 4, 4, 1, 2, 5, 7, 6, 1, 10, 5, 4, 10, 4, 1, 9, 7, 5, 9, 9, 2, 2, 7, 9, 8, 4, 4, 3, 3, 7, 2, 1, 3, 5, 2, 6, 6, 8, 10, 7, 9, 10, 4, 9, 9, 2, 10, 9, 1, 7, 9, 6, 8, 10, 10, 8, 5, 2, 5, 3, 3, 10, 8, 2, 5, 1, 9, 7, 2, 10, 2, 1, 10, 1, 3, 10, 8, 7, 6, 2, 2, 6, 3, 4, 4, 1, 8, 8, 3, 8, 7, 6, 3, 9, 6, 7, 5, 6, 10, 8, 6, 4, 3, 9, 5, 9, 2, 4, 5, 8, 10, 1, 10, 5, 5, 2, 9, 8, 1, 6, 1, 3, 1, 5, 1, 4, 6, 9, 9, 2, 5, 7, 10, 3, 10, 3, 10, 8, 10, 2, 10, 8, 7, 9, 9, 7, 9, 7, 8, 4, 3, 7, 10, 6, 9, 6, 5, 6, 9, 6, 2, 3, 5, 4, 10, 10, 10, 6, 8, 2, 1, 2, 1, 5, 4, 3, 1, 2, 5, 6, 4, 4, 10, 10, 8, 2, 3, 10, 4, 5, 5, 10, 10, 2, 1, 1, 7, 9, 5, 6, 5, 10, 9, 5, 5, 3, 7, 3, 3, 8, 8, 3, 3, 1, 10, 9, 3, 6, 7, 4, 4, 9, 10, 2, 4, 2, 4, 4, 2, 4, 6, 1, 2, 2, 3, 2, 10, 3, 7, 1, 3, 4, 6, 6, 10, 1, 5, 6, 4, 3, 1, 1, 4, 5, 7, 2, 9, 2, 8, 2, 7, 1, 9, 7, 10, 8, 1, 1, 8, 2, 3, 10, 3, 2, 9, 7, 1, 7, 5, 10, 7, 10, 2, 9, 3, 5, 3, 2, 1, 9, 7, 8, 2, 3, 2, 3, 10, 10, 10, 4, 5, 8, 6, 8, 7, 4, 10, 6, 6, 6, 9, 10, 7, 6, 6, 10, 4, 7, 5, 1, 3, 3, 6, 1, 5, 7, 4, 10, 6, 1, 3, 8, 2, 4, 2, 3, 4, 8, 5, 2, 3, 5, 1, 8, 8, 3, 2, 6, 2, 10, 7, 4, 10, 1, 6, 6, 6, 7, 1, 1, 10, 8, 8, 8, 5, 3, 10, 3, 10, 5, 8, 3, 10, 7, 10, 4, 10, 9, 2, 7, 1, 7, 7, 9, 2, 3, 10, 10, 1, 10, 4, 10, 7, 6, 1, 1, 8, 9, 10, 1, 8, 4, 2, 6, 1, 9, 5, 4, 8, 6, 6, 7, 7, 6, 4, 3, 1, 1, 8, 3, 1, 2, 1, 1, 6, 4, 1, 3, 9, 4, 6, 4, 9, 2, 2, 2, 2, 5, 5, 6, 2, 9, 7, 3, 5, 4, 1, 8, 6, 7, 3, 6, 8, 3, 5, 3, 2, 10, 4, 1, 10, 1, 8, 8, 10, 4, 2, 7, 5, 7, 1, 1, 3, 9, 4, 8, 3, 1, 10, 7, 8, 6, 9, 2, 9, 9, 7, 7, 4, 3, 3, 5, 3, 3, 2, 10, 4, 5, 9, 10, 4, 5, 5, 5, 3, 2, 3, 6, 10, 3, 9, 4, 8, 9, 9, 2, 9, 1, 6, 7, 2, 4, 5, 3, 1, 4, 5, 9, 4, 6, 3, 3, 1, 10, 7, 4, 10, 2, 1, 1, 4, 2, 8, 4, 9, 4, 1, 5, 1, 9, 10, 4, 2, 1, 7, 5, 8, 9, 5, 6, 7, 7, 8, 9, 6, 6, 2, 1, 5, 4, 6, 3, 7, 7, 5, 5, 5, 3, 10, 2, 5, 7, 9, 1, 5, 10, 4, 4, 10, 6, 2, 8, 1, 9, 6, 4, 1, 10, 7, 10, 8, 4, 6, 7, 9, 4, 8, 6, 1, 3, 5, 7, 1, 3, 7, 3, 2, 2, 3, 4, 3, 5, 7, 5, 3, 2, 6, 2, 8, 3, 3, 1, 6, 8, 1, 2, 3, 7, 5, 5, 5, 9, 8, 10, 6, 6, 2, 2, 3, 3, 4, 6, 2, 7, 5, 1, 7, 2, 1, 10, 10, 8, 8, 4, 9, 10, 1, 3, 1, 8, 2, 8, 8, 3, 10, 3, 5, 6, 8, 10, 6, 7, 4, 2, 5, 8, 9, 10, 5, 8, 9, 1, 1, 1, 2, 2, 10, 9, 3, 7, 8, 10, 6, 7, 3, 2, 10, 6, 5, 4, 1, 7, 6, 3, 2, 5, 7, 8, 9, 6, 7, 1, 8, 2, 2, 1, 1, 6, 4, 1, 7, 4, 8, 2, 2, 1, 1, 9, 1, 3, 10, 2, 9, 7, 6, 7, 2, 6, 2, 8, 6, 1, 8, 9, 2, 4, 9, 8, 9, 8, 9, 6, 10, 4, 10, 5, 8, 3, 1, 7, 6, 5, 1, 6, 8, 9, 6, 5, 4, 7, 1, 10, 4, 7, 7, 8, 2, 2, 2, 5, 9, 4, 2, 4, 5, 10, 6, 8, 3, 1, 10, 2, 3, 3, 3, 9, 1, 2, 6, 2, 9, 8, 4, 6, 3, 10, 7, 2, 7, 2, 8, 7, 7, 4, 5, 5, 2, 8, 3, 9, 4, 9, 7, 5, 9, 6, 6, 6, 7, 9, 10, 7, 2, 10, 1, 6, 8, 1, 4, 2, 5, 7, 8, 3, 10, 7, 5, 3, 8, 9, 10, 1, 9, 2, 3, 3, 2, 8, 10, 4, 4, 3, 9, 2, 1, 9, 9, 10, 10, 10, 10, 9, 3, 5, 9, 10, 10, 1, 7, 9, 7, 9, 9, 3, 7, 10, 2, 5, 4, 5, 7, 1, 7, 2, 2, 4, 3, 2, 7, 5, 5, 1, 10, 1, 1, 8, 3, 9, 9, 6, 3, 7, 2, 8, 10, 8, 4, 8, 1, 1, 1, 4, 7, 5, 8, 2, 5, 10, 7, 8, 3, 9, 1, 1, 2, 8, 10, 4, 1, 1, 10, 7, 1, 10, 6, 6, 3, 4, 5, 9, 7, 3, 2, 2, 4, 2, 3, 10, 5, 7, 7, 3, 1, 7, 4, 3, 10, 5, 5, 1, 7, 10, 3, 1, 8, 4, 3, 5, 6, 5, 9, 3, 4, 2, 2, 7, 7, 7, 8, 7, 8, 5, 7, 7, 9, 8, 2, 9, 10, 7, 10, 6, 6, 7, 4, 4, 3, 2, 7, 8, 8, 1, 6, 9, 7, 7, 7, 9, 4, 1, 6, 5, 2, 10, 10, 6, 1, 10, 7, 1, 10, 9, 2, 2, 8, 2, 3, 9, 6, 6, 9, 2, 2, 5, 9, 8, 8, 9, 3, 4, 1, 7, 8, 9, 1, 7, 1, 1, 4, 1, 5, 4, 3, 9, 2, 4, 9, 8, 7, 3, 9, 1, 3, 3, 9, 7, 7, 8, 1, 2, 5, 6, 1, 7, 10, 6, 6, 2, 1, 6, 7, 3, 6, 2, 7, 10, 2, 7, 2, 4, 5, 7, 3, 8, 7, 3, 4, 2, 4, 5, 4, 3, 6, 4, 8, 3, 1, 4, 5, 1, 6, 8, 9, 1, 3, 7, 8, 6, 3, 3, 5, 8, 8, 6, 6, 8, 1, 10, 6, 6, 10, 2, 6, 8, 10, 3, 8, 3, 9, 5, 3, 3, 1, 8, 10, 2, 7, 9, 5, 3, 9, 2, 2, 3, 1, 3, 4, 7, 9, 6, 8, 3, 1, 2, 10, 3, 7, 2, 5, 9, 9, 2, 4, 6, 1, 8, 3, 8, 1, 4, 5, 9, 1, 4, 6, 10, 5, 8, 6, 2, 1, 9, 3, 7, 3, 8, 9, 9, 10, 3, 1, 6, 2, 4, 4, 7, 8, 8, 10, 7, 7, 7, 5, 4, 6, 9, 1, 3, 5, 9, 4, 1, 6, 2, 2, 6, 1, 6, 1, 6, 8, 4, 8, 7, 4, 8, 10, 8, 9, 3, 7, 10, 1, 6, 3, 7, 4, 1, 10, 9, 1, 7, 8, 5, 5, 1, 3, 2, 10, 6, 5, 9, 2, 2, 3, 1, 9, 10, 7, 1, 3, 8, 9, 4, 9, 3, 6, 2, 5, 3, 1, 1, 3, 10, 7, 7, 10, 5, 1, 4, 6, 10, 1, 9, 10, 2, 7, 4, 6, 7, 3, 5, 9, 3, 9, 6, 6, 2, 4, 8, 2, 3, 5, 6, 3, 7, 10, 4, 7, 2, 1, 8, 5, 10, 7, 7, 6, 9, 10, 6, 5, 2, 7, 2, 9, 3, 9, 10, 6, 6, 4, 7, 10, 7, 6, 3, 4, 10, 4, 2, 1, 9, 8, 8, 7, 3, 7, 4, 4, 2, 10, 4, 9, 7, 1, 1, 4, 9, 6, 8, 4, 4, 10, 6, 6, 3, 6, 10, 3, 3, 6, 10, 4, 3, 4, 9, 5, 3, 1, 2, 9, 1, 5, 6, 3, 1, 4, 9, 4, 4, 3, 7, 5, 9, 2, 4, 8, 8, 3, 1, 9, 10, 10, 5, 7, 4, 9, 10, 8, 6, 3, 9, 5, 3, 1, 10, 9, 9, 5, 2, 7, 7, 9, 7, 4, 8, 3, 9, 9, 6, 6, 7, 9, 4, 9, 4, 8, 10, 6, 8, 5, 3, 3, 3, 4, 7, 2, 2, 4, 5, 2, 4, 7, 7, 4, 1, 2, 7, 8, 9, 1, 2, 1, 8, 1, 10, 1, 7, 3, 10, 4, 10, 8, 8, 5, 7, 4, 8, 3, 5, 7, 6, 6, 10, 6, 7, 2, 7, 4, 6, 7, 3, 7, 5, 3, 7, 5, 6, 4, 3, 10, 10, 8, 3, 3, 10, 4, 7, 3, 1, 5, 3, 9, 7, 4, 4, 1, 7, 6, 4, 1, 6, 1, 6, 6, 8, 1, 2, 5, 7, 3, 2, 1, 8, 3, 3, 3, 5, 3, 8, 1, 1, 3, 5, 8, 7, 8, 5, 5, 6, 9, 5, 1, 8, 9, 5, 2, 3, 10, 10, 8, 5, 2, 1, 10, 8, 1, 7, 4, 8, 7, 8, 2, 4, 1, 2, 3, 10, 9, 4, 7, 2, 4, 3, 8, 5, 2, 6, 7, 7, 8, 10, 3, 1, 10, 5, 2, 9, 1, 2, 7, 4, 4, 3, 10, 3, 6, 6, 5, 6, 10, 8, 2, 6, 8, 2, 5, 8, 9, 2, 1, 10, 9, 3, 1, 8, 10, 7, 9, 4, 5, 2, 4, 3, 8, 2, 8, 6, 1, 3, 6, 9, 3, 1, 6, 8, 5, 9, 7, 1, 3, 2, 9, 8, 6, 2, 8, 2, 9, 7, 4, 9, 8, 1, 7, 9, 8, 3, 1, 4, 5, 3, 5, 8, 10, 5, 7, 3, 5, 5, 7, 6, 3, 10, 9, 3, 3, 8, 9, 2, 5, 4, 9, 9, 1, 3, 3, 4, 6, 3, 4, 1, 8, 4, 10, 5, 3, 9, 2, 7, 6, 8, 6, 2, 5, 3, 4, 10, 3, 3, 2, 6, 7, 10, 1, 1, 2, 3, 10, 8, 5, 8, 5, 3, 9, 10, 6, 8, 10, 4, 7, 7, 3, 7, 4, 1, 8, 5, 4, 4, 9, 3, 9, 7, 2, 7, 10, 10, 9, 7, 10, 5, 10, 5, 5, 10, 1, 7, 9, 6, 4, 4, 7, 2, 10, 9, 4, 8, 3, 10, 10, 2, 7, 6, 10, 8, 5, 7, 1, 5, 3, 10, 1, 3, 2, 9, 4, 5, 1, 8, 1, 6, 9, 7, 4, 9, 5, 2, 3, 5, 7, 10, 10, 3, 3, 3, 1, 5, 10, 9, 5, 1, 7, 8, 7, 1, 10, 6, 1, 5, 6, 4, 8, 7, 1, 8, 3, 3, 2, 5, 3, 2, 9, 8, 7, 6, 5, 8, 10, 7, 4, 9, 8, 3, 3, 7, 8, 1, 8, 6, 2, 10, 4, 5, 8, 2, 9, 7, 6, 6, 9, 8, 9, 5, 4, 5, 1, 4, 10, 3, 8, 5, 10, 10, 9, 9, 8, 9, 6, 8, 5, 6, 5, 2, 3, 2, 1, 4, 2, 5, 6, 7, 3, 8, 8, 3, 6, 2, 6, 10, 7, 2, 8, 7, 8, 3, 3, 5, 9, 3, 2, 7, 7, 5, 8, 5, 2, 9, 9, 8, 8, 8, 4, 4, 6, 6, 8, 7, 1, 9, 10, 9, 2, 4, 3, 7, 5, 6, 5, 2, 3, 3, 4, 9, 6, 8, 6, 10, 7, 4, 7, 6, 3, 4, 4, 9, 5, 9, 4, 4, 7, 6, 9, 8, 4, 10, 6, 5, 7, 3, 8, 1, 7, 10, 6, 1, 1, 5, 4, 2, 4, 8, 3, 6, 1, 4, 4, 2, 6, 9, 2, 5, 3, 8, 1, 9, 7, 6, 5, 8, 7, 1, 5, 10, 6, 7, 9, 5, 1, 7, 3, 10, 4, 3, 5, 2, 4, 4, 2, 6, 10, 5, 4, 9, 1, 7, 6, 5, 6, 8, 3, 9, 9, 5, 3, 5, 5, 3, 10, 10, 2, 1, 10, 10, 1, 3, 2, 8, 9, 8, 9, 10, 2, 4, 1, 3, 8, 8, 10, 3, 9, 8, 8, 8, 1, 4, 8, 1, 4, 10, 10, 7, 6, 2, 7, 3, 8, 1, 8, 1, 4, 8, 5, 1, 1, 9, 8, 2, 3, 6, 1, 3, 6, 10, 5, 7, 9, 4, 8, 7, 3, 5, 3, 1, 1, 1, 9, 10, 2, 5, 4, 7, 9, 5, 4, 2, 3, 1, 4, 4, 5, 3, 7, 7, 10, 6, 1, 8, 8, 9, 10, 8, 8, 7, 8, 2, 5, 10, 8, 8, 10, 5, 9, 4, 3, 3, 6, 5, 8, 1, 5, 1, 7, 2, 5, 9, 8, 5, 9, 6, 2, 6, 5, 6, 8, 9, 1, 1, 8, 4, 3, 9, 5, 3, 4, 8, 4, 9, 5, 1, 9, 7, 2, 9, 8, 2, 6, 7, 3, 1, 3, 2, 5, 8, 8, 10, 2, 5, 9, 9, 10, 8, 3, 7, 1, 8, 9, 4, 4, 2, 6, 6, 8, 5, 2, 1, 3, 4, 7, 8, 9, 3, 5, 10, 1, 9, 5, 3, 5, 4, 10, 2, 6, 10, 2, 2, 6, 9, 9, 1, 3, 8, 5, 6, 9, 1, 7, 7, 10, 5, 9, 6, 6, 8, 10, 9, 2, 4, 4, 10, 1, 10, 4, 5, 1, 5, 2, 1, 3, 2, 3, 3, 2, 6, 10, 9, 1, 6, 5, 4, 2, 2, 7, 10, 3, 6, 5, 2, 4, 2, 6, 6, 5, 8, 5, 1, 7, 9, 6, 10, 6, 10, 3, 9, 7, 8, 6, 3, 6, 5, 7, 9, 1, 4, 10, 6, 6, 2, 3, 4, 4, 3, 6, 4, 6, 10, 3, 10, 2, 5, 10, 6, 4, 1, 2, 6, 8, 3, 2, 6, 7, 9, 10, 7, 9, 5, 5, 6, 6, 7, 7, 1, 3, 8, 6, 5, 8, 2, 1, 1, 2, 8, 8, 9, 3, 2, 3, 10, 3, 1, 10, 4, 1, 9, 7, 5, 9, 2, 7, 6, 4, 2, 6, 6, 7, 7, 4, 9, 6, 4, 10, 9, 2, 4, 2, 9, 8, 9, 7, 6, 10, 7, 4, 10, 4, 8, 3, 3, 7, 10, 4, 10, 6, 4, 8, 3, 1, 7, 10, 9, 9, 2, 5, 8, 6, 7, 4, 7, 5, 1, 7, 8, 1, 7, 9, 7, 10, 1, 8, 1, 10, 2, 2, 3, 6, 10, 2, 3, 9, 10, 8, 10, 4, 7, 9, 8, 9, 3, 3, 4, 8, 1, 9, 7, 9, 4, 7, 1, 9, 4, 7, 2, 6, 10, 6, 6, 7, 1, 4, 2, 10, 3, 6, 1, 3, 5, 5, 7, 1, 9, 7, 5, 10, 6, 10, 5, 3, 6, 8, 6, 7, 4, 6, 8, 8, 3, 9, 2, 2, 1, 1, 1, 7, 1, 2, 2, 8, 5, 1, 10, 1, 8, 6, 4, 6, 7, 1, 9, 1, 2, 10, 4, 2, 1, 2, 2, 4, 6, 6, 3, 5, 6, 6, 6, 5, 4, 10, 2, 5, 7, 3, 4, 10, 7, 7, 8, 7, 6, 3, 2, 9, 8, 1, 9, 5, 3, 9, 7, 6, 10, 1, 2, 4, 2, 4, 3, 9, 2, 7, 7, 7, 8, 2, 6, 1, 2, 5, 2, 10, 1, 6, 1, 4, 10, 9, 8, 3, 2, 5, 9, 6, 2, 6, 9, 7, 3, 3, 5, 2, 6, 4, 2, 6, 8, 6, 3, 4, 8, 4, 5, 6, 1, 8, 4, 1, 10, 2, 3, 3, 6, 6, 7, 5, 9, 1, 3, 1, 9, 8, 8, 3, 1, 3, 8, 6, 9, 8, 4, 2, 6, 3, 6, 4, 8, 9, 1, 5, 4, 1, 5, 8, 4, 2, 3, 1, 10, 5, 5, 6, 5, 6, 5, 2, 9, 1, 9, 9, 10, 6, 1, 4, 10, 3, 4, 3, 10, 5, 3, 7, 2, 1, 2, 10, 2, 2, 6, 6, 3, 1, 7, 8, 9, 4, 4, 1, 4, 5, 9, 4, 4, 8, 8, 4, 9, 7, 7, 1, 2, 1, 6, 4, 9, 3, 1, 5, 8, 8, 8, 4, 9, 5, 1, 5, 4, 1, 4, 5, 4, 9, 5, 8, 2, 7, 1, 5, 9, 9, 4, 5, 6, 4, 10, 9, 7, 1, 8, 8, 8, 2, 4, 6, 3, 6, 10, 10, 4, 7, 7, 6, 7, 7, 8, 1, 4, 3, 7, 10, 6, 8, 5, 10, 9, 8, 1, 2, 4, 7, 1, 3, 3, 7, 3, 6, 10, 9, 8, 10, 2, 6, 7, 2, 8, 6, 6, 4, 7, 10, 7, 5, 3, 3, 2, 5, 5, 4, 5, 9, 7, 3, 3, 5, 2, 10, 8, 3, 3, 7, 1, 5, 6, 4, 6, 7, 9, 8, 6, 5, 6, 1, 4, 2, 10, 2, 8, 8, 5, 5, 10, 1, 7, 10, 8, 9, 5, 1, 4, 3, 2, 6, 4, 9, 5, 6, 3, 6, 8, 7, 1, 2, 8, 5, 10, 8, 2, 3, 6, 10, 3, 4, 8, 6, 2, 6, 4, 3, 8, 5, 5, 9, 5, 2, 10, 1, 9, 9, 3, 4, 4, 7, 1, 6, 1, 7, 6, 7, 10, 3, 10, 5, 7, 6, 6, 10, 8, 4, 3, 2, 5, 5, 2, 3, 4, 4, 5, 1, 3, 5, 9, 1, 2, 6, 9, 4, 1, 6, 2, 9, 7, 1, 9, 6, 8, 8, 4, 5, 7, 8, 3, 3, 9, 1, 5, 6, 4, 4, 10, 2, 6, 10, 2, 5, 7, 8, 6, 1, 8, 9, 4, 6, 10, 5, 10, 8, 10, 2, 1, 2, 6, 8, 6, 1, 5, 3, 3, 7, 4, 3, 9, 9, 10, 2, 2, 8, 6, 1, 10, 5, 1, 1, 8, 6, 5, 3, 4, 6, 2, 5, 3, 8, 8, 6, 2, 5, 2, 1, 2, 5, 7, 10, 2, 5, 4, 7, 5, 5, 9, 7, 4, 10, 2, 2, 6, 2, 8, 10, 6, 7, 8, 5, 2, 8, 5, 8, 10, 5, 4, 3, 3, 8, 4, 1, 8, 6, 2, 8, 2, 10, 3, 6, 6, 9, 3, 9, 1, 6, 1, 1, 10, 7, 7, 6, 10, 8, 2, 7, 1, 5, 3, 6, 5, 8, 9, 8, 10, 2, 2, 3, 10, 4, 1, 9, 3, 3, 9, 3, 4, 9, 3, 6, 7, 8, 6, 2, 2, 3, 5, 1, 10, 7, 1, 7, 10, 3, 1, 9, 1, 9, 5, 3, 5, 9, 5, 6, 6, 2, 1, 10, 8, 1, 9, 3, 5, 2, 5, 7, 6, 3, 4, 9, 7, 9, 4, 5, 9, 7, 1, 2, 2, 4, 1, 9, 1, 9, 10, 6, 8, 4, 10, 10, 9, 3, 2, 4, 8, 8, 8, 10, 8, 7, 8, 9, 3, 4, 1, 5, 8, 6, 6, 2, 10, 1, 5, 6, 6, 2, 7, 6, 1, 4, 2, 5, 1, 10, 7, 5, 3, 7, 7, 6, 8, 9, 7, 7, 2, 7, 8, 1, 7, 7, 3, 7, 10, 3, 9, 3, 1, 9, 5, 2, 6, 6, 9, 3, 7, 6, 1, 6, 8, 7, 10, 8, 10, 6, 6, 6, 9, 10, 5, 2, 9, 8, 6, 3, 7, 3, 6, 6, 3, 6, 5, 9, 4, 2, 8, 8, 1, 8, 7, 2, 1, 6, 8, 2, 4, 2, 4, 6, 10, 4, 1, 9, 3, 3, 9, 1, 2, 8, 10, 10, 5, 9, 1, 3, 9, 9, 9, 8, 5, 10, 6, 7, 4, 10, 10, 1, 5, 6, 4, 4, 2, 6, 6, 5, 7, 3, 4, 3, 1, 10, 9, 9, 1, 1, 9, 2, 5, 8, 6, 6, 9, 7, 8, 7, 9, 7, 3, 5, 9, 6, 9, 4, 8, 9, 5, 5, 6, 9, 2, 4, 10, 2, 5, 9, 2, 4, 10, 1, 10, 6, 9, 1, 7, 2, 7, 2, 8, 10, 5, 3, 8, 6, 9, 3, 6, 3, 4, 3, 10, 9, 8, 10, 8, 5, 9, 8, 9, 8, 10, 1, 6, 7, 7, 8, 3, 1, 10, 3, 3, 9, 4, 4, 3, 5, 9, 1, 1, 7, 2, 5, 3, 4, 9, 8, 9, 4, 7, 4, 2, 7, 4, 2, 3, 5, 1, 8, 1, 2, 5, 2, 7, 3, 6, 1, 10, 10, 10, 8, 5, 10, 7, 10, 7, 10, 9, 9, 3, 5, 8, 10, 8, 9, 1, 1, 5, 3, 6, 3, 8, 2, 8, 6, 6, 5, 1, 9, 8, 7, 3, 9, 5, 8, 4, 5, 6, 10, 6, 2, 8, 7, 9, 5, 5, 4, 8, 1, 8, 7, 2, 10, 8, 4, 7, 5, 10, 6, 10, 5, 5, 8, 1, 5, 8, 4, 8, 8, 7, 3, 10, 3, 8, 5, 4, 1, 1, 7, 1, 10, 3, 1, 6, 6, 5, 6, 1, 2, 6, 9, 1, 10, 6, 5, 9, 1, 6, 7, 10, 6, 10, 2, 5, 6, 5, 4, 1, 1, 4, 7, 7, 3, 3, 1, 7, 6, 3, 5, 4, 1, 1, 10, 1, 1, 6, 4, 8, 10, 7, 10, 5, 3, 5, 8, 10, 2, 6, 6, 1, 3, 7, 6, 4, 3, 7, 8, 4, 3, 6, 3, 3, 3, 5, 3, 6, 8, 10, 10, 7, 1, 3, 10, 6, 1, 6, 7, 5, 2, 7, 5, 5, 6, 9, 9, 10, 8, 10, 1, 10, 5, 4, 3, 7, 8, 2, 5, 5, 4, 10, 1, 7, 3, 2, 4, 10, 7, 8, 7, 8, 6, 6, 1, 10, 6, 10, 10, 2, 9, 2, 1, 7, 2, 1, 9, 3, 4, 3, 7, 7, 7, 1, 9, 7, 3, 5, 7, 1, 7, 9, 9, 4, 5, 6, 8, 3, 9, 4, 9, 8, 1, 1, 6, 9, 3, 9, 7, 8, 9, 1, 1, 8, 1, 6, 6, 4, 1, 2, 3, 9, 4, 4, 6, 10, 10, 9, 5, 10, 1, 10, 1, 1, 10, 6, 4, 6, 5, 9, 9, 8, 8, 8, 4, 10, 8, 7, 3, 10, 1, 4, 3, 8, 8, 3, 9, 9, 4, 5, 10, 7, 10, 7, 2, 3, 9, 2, 4, 2, 6, 4, 5, 9, 1, 2, 9, 6, 3, 10, 9, 1, 8, 7, 4, 8, 9, 7, 7, 7, 5, 10, 2, 9, 4, 7, 6, 7, 9, 4, 4, 10, 7, 1, 1, 10, 1, 9, 5, 1, 8, 3, 4, 5, 2, 5, 3, 2, 1, 3, 2, 6, 4, 4, 9, 7, 7, 9, 6, 9, 5, 5, 9, 6, 9, 8, 1, 10, 6, 9, 10, 4, 1, 4, 5, 8, 2, 10, 4, 8, 5, 4, 4, 3, 2, 5, 8, 1, 10, 7, 10, 3, 10, 4, 3, 6, 4, 6, 3, 5, 8, 4, 5, 5, 6, 2, 4, 10, 5, 10, 7, 5, 2, 5, 5, 4, 3, 1, 2, 5, 8, 5, 5, 4, 1, 9, 8, 6, 2, 10, 10, 2, 10, 1, 10, 3, 6, 3, 5, 5, 10, 6, 9, 7, 5, 7, 1, 5, 8, 3, 9, 5, 1, 3, 10, 3, 2, 5, 1, 8, 1, 6, 7, 5, 1, 3, 9, 6, 9, 4, 10, 1, 5, 9, 7, 10, 1, 3, 6, 7, 5, 1, 9, 2, 2, 10, 10, 3, 5, 8, 7, 4, 1, 3, 3, 3, 4, 5, 7, 6, 4, 8, 10, 10, 1, 4, 10, 4, 4, 3, 6, 1, 9, 4, 9, 6, 6, 9, 5, 6, 9, 9, 1, 9, 6, 5, 3, 8, 3, 8, 10, 9, 6, 5, 1, 6, 10, 5, 9, 4, 10, 10, 1, 8, 7, 9, 1, 1, 2, 8, 3, 5, 4, 4, 4, 5, 8, 10, 9, 5, 4, 1, 7, 2, 7, 1, 4, 4, 4, 8, 4, 8, 4, 7, 2, 3, 3, 3, 5, 3, 5, 5, 6, 8, 9, 6, 2, 3, 1, 3, 9, 9, 5, 10, 1, 1, 9, 3, 10, 9, 1, 2, 2, 10, 1, 2, 8, 1, 5, 5, 6, 5, 5, 3, 4, 2, 8, 3, 9, 4, 9, 1, 9, 7, 7, 1, 4, 7, 3, 2, 1, 6, 5, 1, 4, 3, 2, 3, 9, 7, 10, 5, 6, 8, 10, 10, 1, 3, 2, 10, 10, 6, 6, 10, 2, 8, 3, 8, 4, 3, 9, 1, 7, 8, 4, 10, 8, 4, 2, 10, 4, 6, 9, 4, 4, 2, 10, 8, 5, 2, 8, 1, 8, 5, 2, 5, 8, 2, 6, 10, 4, 8, 4, 6, 6, 5, 1, 2, 6, 1, 3, 8, 10, 6, 7, 2, 8, 2, 5, 7, 2, 8, 7, 9, 7, 5, 10, 4, 3, 1, 4, 6, 1, 3, 2, 10, 5, 5, 3, 8, 4, 3, 8, 4, 1, 7, 1, 2, 7, 3, 9, 3, 1, 2, 8, 10, 9, 9, 10, 3, 7, 2, 6, 7, 8, 8, 6, 5, 1, 5, 4, 9, 2, 6, 10, 10, 4, 2, 4, 4, 5, 6, 9, 10, 3, 10, 9, 7, 10, 10, 1, 6, 2, 10, 5, 9, 8, 10, 8, 4, 8, 2, 1, 3, 1, 2, 7, 3, 6, 9, 4, 2, 6, 8, 3, 1, 4, 9, 1, 9, 8, 1, 1, 7, 5, 3, 5, 3, 9, 2, 4, 7, 2, 8, 1, 1, 2, 1, 7, 6, 7, 6, 4, 8, 7, 6, 7, 2, 8, 3, 9, 6, 2, 5, 4, 3, 2, 2, 5, 2, 1, 8, 3, 1, 7, 5, 7, 1, 10, 5, 10, 3, 7, 6, 3, 4, 7, 9, 9, 7, 6, 3, 3, 1, 5, 6, 7, 7, 7, 8, 2, 4, 9, 8, 4, 8, 1, 9, 9, 4, 2, 6, 5, 7, 9, 9, 3, 5, 9, 9, 8, 2, 7, 9, 7, 2, 7, 10, 7, 2, 3, 5, 9, 8, 4, 3, 9, 1, 4, 10, 1, 8, 4, 5, 9, 1, 9, 6, 8, 5, 10, 10, 1, 7, 10, 5, 10, 5, 5, 8, 5, 4, 3, 1, 7, 6, 10, 4, 4, 5, 3, 10, 4, 1, 9, 8, 2, 5, 4, 7, 9, 8, 5, 3, 9, 6, 2, 2, 7, 6, 1, 3, 7, 1, 10, 8, 2, 3, 3, 4, 9, 3, 2, 5, 1, 3, 1, 5, 6, 3, 10, 9, 5, 1, 5, 4, 2, 4, 7, 3, 1, 10, 1, 10, 3, 2, 7, 5, 2, 3, 6, 10, 6, 9, 5, 7, 7, 9, 3, 8, 1, 3, 2, 7, 8, 5, 8, 10, 2, 5, 3, 4, 7, 10, 10, 6, 7, 1, 2, 10, 7, 7, 3, 7, 4, 4, 5, 6, 8, 5, 4, 9, 6, 8, 3, 2, 2, 7, 8, 9, 3, 5, 2, 7, 1, 7, 10, 3, 8, 3, 9, 6, 2, 3, 8, 1, 9, 9, 5, 3, 4, 10, 5, 8, 9, 1, 10, 7, 1, 2, 1, 3, 4, 4, 7, 9, 8, 2, 7, 2, 8, 2, 4, 10, 7, 8, 8, 6, 10, 7, 1, 3, 2, 7, 5, 9, 2, 6, 8, 6, 2, 7, 6, 2, 5, 1, 8, 3, 8, 7, 1, 2, 4, 1, 5, 3, 5, 1, 9, 6, 3, 3, 8, 8, 1, 5, 8, 8, 6, 6, 6, 6, 6, 1, 9, 7, 1, 1, 9, 7, 1, 1, 4, 2, 3, 1, 10, 2, 5, 4, 3, 8, 6, 9, 5, 4, 5, 9, 1, 6, 8, 5, 5, 5, 1, 9, 3, 5, 5, 4, 9, 8, 2, 4, 8, 2, 2, 6, 4, 5, 7, 8, 10, 5, 1, 10, 10, 6, 4, 3, 6, 9, 8, 1, 2, 5, 2, 10, 5, 3, 3, 3, 9, 3, 7, 2, 2, 7, 6, 3, 6, 3, 6, 6, 9, 6, 6, 7, 2, 2, 8, 4, 10, 10, 8, 6, 4, 10, 6, 1, 7, 4, 8, 1, 4, 7, 8, 1, 2, 2, 2, 7, 9, 3, 1, 6, 4, 5, 9, 7, 5, 3, 6, 1, 8, 2, 7, 4, 10, 7, 6, 8, 8, 2, 9, 8, 4, 2, 4, 7, 5, 2, 1, 8, 8, 2, 9, 9, 6, 3, 4, 3, 9, 5, 1, 7, 9, 6, 1, 4, 10, 3, 3, 3, 1, 9, 2, 8, 10, 4, 10, 5, 8, 6, 8, 4, 9, 5, 9, 3, 10, 7, 7, 10, 2, 2, 7, 2, 4, 2, 4, 10, 10, 5, 6, 8, 1, 8, 7, 9, 6, 1, 2, 3, 8, 6, 6, 9, 8, 2, 2, 1, 7, 10, 5, 6, 7, 10, 1, 8, 6, 6, 5, 10, 9, 5, 8, 7, 2, 1, 5, 3, 1, 9, 8, 10, 7, 10, 3, 7, 2, 7, 1, 1, 8, 2, 3, 3, 8, 7, 1, 6, 9, 8, 7, 7, 2, 2, 7, 7, 1, 5, 9, 2, 2, 8, 5, 8, 10, 5, 9, 6, 5, 2, 4, 10, 4, 3, 6, 10, 2, 7, 5, 1, 3, 3, 3, 1, 9, 9, 3, 5, 6, 10, 5, 10, 8, 2, 7, 7, 5, 2, 2, 8, 6, 9, 6, 7, 8, 10, 10, 4, 2, 4, 6, 3, 5, 7, 6, 10, 3, 3, 6, 1, 2, 2, 3, 9, 2, 8, 4, 1, 5, 8, 9, 7, 7, 5, 10, 7, 5, 3, 9, 9, 3, 7, 6, 2, 8, 3, 5, 1, 7, 5, 2, 6, 6, 10, 2, 9, 7, 2, 8, 4, 1, 10, 1, 10, 1, 9, 8, 1, 1, 8, 4, 6, 1, 9, 8, 10, 9, 1, 5, 6, 2, 6, 4, 6, 9, 2, 3, 5, 9, 3, 4, 4, 5, 7, 7, 1, 7, 7, 7, 8, 9, 1, 6, 6, 9, 4, 1, 10, 10, 9, 10, 3, 8, 8, 7, 6, 2, 8, 6, 1, 2, 5, 1, 4, 8, 5, 5, 8, 8, 3, 2, 5, 6, 5, 8, 10, 10, 7, 9, 3, 1, 5, 10, 1, 5, 4, 3, 5, 7, 1, 2, 10, 4, 3, 6, 3, 7, 1, 8, 2, 9, 7, 9, 4, 3, 3, 3, 3, 6, 3, 5, 6, 7, 7, 6, 3, 6, 7, 5, 5, 10, 3, 7, 10, 8, 6, 2, 10, 5, 9, 4, 7, 3, 10, 3, 5, 5, 1, 8, 5, 2, 8, 3, 6, 3, 3, 8, 5, 2, 2, 3, 2, 7, 6, 6, 7, 4, 8, 8, 1, 9, 3, 9, 3, 7, 4, 5, 6, 9, 9, 8, 9, 10, 2, 6, 9, 2, 1, 3, 3, 1, 2, 6, 7, 2, 10, 10, 4, 6, 6, 5, 6, 10, 3, 6, 6, 10, 3, 7, 9, 8, 1, 10, 1, 1, 2, 5, 8, 1, 3, 8, 8, 5, 4, 10, 1, 5, 9, 9, 6, 9, 9, 4, 7, 4, 5, 5, 9, 2, 5, 4, 7, 7, 3, 3, 9, 5, 6, 7, 9, 1, 5, 8, 8, 5, 3, 7, 7, 7, 2, 1, 10, 9, 3, 8, 6, 1, 7, 6, 6, 9, 9, 3, 7, 10, 8, 5, 4, 5, 3, 3, 7, 6, 10, 5, 7, 3, 9, 9, 3, 1, 1, 10, 8, 5, 5, 6, 6, 8, 8, 8, 7, 4, 6, 3, 1, 8, 7, 10, 9, 10, 9, 5, 2, 6, 7, 1, 7, 2, 5, 9, 2, 7, 8, 5, 3, 1, 8, 2, 2, 1, 3, 4, 10, 8, 4, 9, 7, 1, 3, 1, 6, 3, 2, 7, 2, 6, 4, 9, 1, 3, 10, 6, 2, 10, 6, 8, 9, 6, 2, 6, 6, 9, 4, 5, 7, 6, 1, 6, 10, 7, 8, 8, 6, 6, 3, 2, 10, 3, 2, 2, 8, 7, 6, 4, 8, 10, 1, 6, 9, 8, 6, 3, 6, 9, 8, 3, 3, 8, 8, 6, 6, 9, 8, 2, 9, 4, 9, 6, 1, 3, 3, 8, 10, 10, 3, 5, 10, 5, 7, 2, 8, 1, 6, 8, 2, 7, 2, 9, 5, 10, 5, 2, 4, 4, 7, 10, 9, 8, 4, 4, 9, 3, 6, 7, 6, 5, 3, 1, 6, 3, 7, 6, 2, 5, 10, 5, 3, 9, 5, 8, 4, 3, 8, 6, 6, 9, 9, 4, 10, 2, 9, 10, 4, 1, 6, 7, 9, 5, 4, 4, 9, 6, 8, 7, 10, 6, 9, 3, 3, 9, 2, 5, 7, 2, 10, 2, 5, 3, 9, 9, 8, 8, 6, 7, 8, 8, 6, 5, 10, 10, 2, 9, 10, 10, 1, 10, 4, 1, 8, 4, 10, 2, 6, 8, 4, 4, 10, 7, 10, 10, 6, 4, 6, 8, 9, 5, 4, 10, 7, 6, 3, 4, 3, 6, 6, 1, 7, 6, 7, 5, 7, 10, 1, 8, 5, 6, 1, 2, 7, 2, 9, 4, 7, 4, 3, 5, 2, 2, 1, 8, 6, 3, 5, 10, 9, 4, 10, 5, 5, 2, 9, 10, 1, 8, 2, 3, 1, 8, 8, 6, 6, 6, 3, 7, 3, 3, 3, 5, 1, 9, 8, 4, 2, 4, 10, 10, 9, 9, 6, 9, 9, 5, 1, 6, 3, 10, 1, 1, 9, 8, 4, 5, 2, 2, 9, 3, 8, 5, 7, 7, 4, 9, 1, 5, 7, 5, 8, 3, 9, 1, 5, 8, 10, 10, 7, 6, 10, 1, 7, 7, 8, 3, 8, 10, 10, 4, 1, 4, 8, 7, 9, 5, 10, 2, 1, 7, 6, 8, 10, 7, 1, 10, 1, 9, 9, 8, 6, 9, 5, 1, 8, 9, 1, 7, 6, 6, 9, 2, 3, 3, 1, 4, 10, 3, 1, 7, 7, 5, 3, 2, 10, 2, 7, 10, 5, 4, 7, 3, 2, 6, 9, 9, 8, 5, 8, 4, 9, 4, 10, 3, 9, 1, 6, 9, 7, 4, 8, 5, 10, 9, 1, 3, 9, 9, 10, 5, 6, 2, 5, 3, 6, 1, 4, 4, 4, 5, 7, 1, 4, 3, 8, 2, 2, 5, 3, 2, 9, 10, 3, 7, 9, 4, 1, 6, 9, 9, 3, 7, 3, 6, 3, 10, 10, 7, 8, 1, 2, 1, 3, 10, 5, 5, 6, 3, 7, 1, 5, 6, 1, 2, 10, 10, 10, 10, 1, 4, 10, 9, 8, 5, 3, 10, 1, 6, 7, 4, 5, 8, 6, 6, 3, 3, 5, 7, 9, 5, 9, 8, 9, 8, 7, 3, 7, 7, 4, 5, 4, 1, 2, 2, 4, 10, 1, 5, 1, 5, 3, 3, 5, 10, 9, 9, 8, 2, 6, 9, 10, 10, 8, 4, 5, 1, 1, 5, 9, 5, 10, 10, 2, 7, 1, 2, 3, 6, 7, 2, 8, 8, 7, 9, 3, 5, 3, 4, 6, 3, 5, 10, 2, 5, 8, 3, 10, 8, 6, 7, 4, 1, 10, 3, 5, 3, 1, 7, 4, 7, 6, 7, 4, 4, 3, 8, 4, 10, 7, 3, 4, 6, 6, 5, 4, 5, 6, 9, 9, 5, 1, 9, 9, 9, 8, 4, 6, 1, 10, 10, 7, 5, 4, 6, 1, 1, 5, 10, 10, 6, 1, 1, 3, 7, 8, 2, 9, 6, 3, 10, 2, 4, 3, 5, 9, 9, 9, 9, 9, 8, 8, 10, 10, 7, 2, 6, 3, 4, 7, 5, 9, 10, 10, 2, 4, 9, 5, 7, 1, 6, 3, 10, 1, 10, 7, 4, 8, 7, 6, 6, 8, 4, 9, 3, 9, 6, 5, 3, 3, 4, 5, 7, 8, 3, 6, 7, 2, 2, 10, 4, 9, 6, 3, 9, 3, 9, 2, 9, 1, 1, 8, 5, 7, 2, 9, 3, 6, 5, 5, 1, 7, 5, 6, 8, 3, 1, 9, 3, 8, 9, 9, 8, 8, 4, 1, 9, 1, 6, 10, 8, 5, 10, 6, 7, 3, 5, 9, 2, 5, 8, 4, 6, 9, 1, 6, 8, 8, 1, 10, 4, 10, 9, 1, 3, 6, 9, 9, 7, 9, 7, 2, 1, 10, 1, 3, 10, 3, 2, 8, 6, 8, 8, 5, 8, 2, 1, 5, 4, 2, 8, 3, 10, 7, 3, 6, 4, 3, 9, 10, 3, 2, 4, 6, 1, 9, 7, 9, 9, 9, 3, 8, 7, 1, 3, 10, 5, 1, 3, 8, 2, 10, 8, 7, 2, 8, 9, 9, 4, 1, 9, 10, 7, 3, 7, 3, 9, 3, 7, 1, 7, 1, 10, 5, 7, 8, 10, 3, 5, 7, 1, 10, 10, 9, 6, 6, 7, 6, 7, 2, 9, 5, 1, 9, 7, 7, 8, 3, 6, 2, 9, 6, 9, 3, 5, 9, 8, 1, 1, 1, 6, 10, 3, 9, 8, 3, 2, 7, 5, 6, 1, 8, 4, 9, 1, 1, 6, 1, 5, 10, 7, 2, 8, 8, 1, 10, 3, 6, 5, 2, 1, 6, 10, 1, 2, 3, 5, 8, 2, 5, 9, 10, 3, 5, 1, 9, 10, 3, 7, 6, 8, 1, 5, 2, 7, 9, 10, 3, 1, 10, 9, 8, 7, 4, 8, 3, 8, 1, 7, 1, 7, 2, 4, 5, 7, 3, 10, 6, 4, 2, 2, 4, 5, 4, 7, 5, 2, 7, 4, 2, 1, 4, 1, 6, 3, 6, 6, 10, 2, 8, 2, 3, 5, 1, 5, 7, 7, 4, 10, 5, 1, 3, 1, 8, 7, 10, 4, 10, 4, 10, 9, 7, 4, 6, 5, 3, 8, 4, 3, 6, 10, 8, 3, 5, 3, 7, 4, 7, 8, 3, 7, 8, 9, 6, 9, 10, 3, 1, 10, 7, 2, 4, 6, 8, 10, 7, 4, 4, 7, 6, 2, 3, 2, 6, 2, 2, 4, 1, 4, 6, 2, 5, 2, 4, 2, 2, 5, 9, 1, 9, 1, 4, 6, 8, 8, 9, 3, 9, 3, 6, 10, 10, 3, 7, 1, 8, 10, 7, 9, 8, 7, 9, 6, 9, 1, 5, 8, 2, 10, 9, 10, 5, 1, 5, 7, 2, 3, 3, 3, 7, 3, 9, 2, 5, 1, 6, 10, 10, 10, 5, 4, 3, 2, 9, 2, 8, 3, 5, 8, 9, 1, 10, 8, 3, 10, 7, 10, 6, 8, 10, 2, 6, 7, 4, 8, 10, 9, 1, 5, 5, 9, 4, 3, 4, 4, 2, 8, 7, 5, 4, 9, 7, 9, 2, 10, 2, 6, 2, 8, 7, 6, 3, 2, 5, 9, 7, 1, 3, 7, 1, 1, 9, 6, 9, 3, 6, 4, 7, 8, 3, 4, 4, 10, 2, 4, 5, 10, 10, 4, 7, 3, 2, 3, 10, 10, 1, 5, 3, 2, 5, 1, 6, 6, 5, 6, 1, 9, 9, 5, 8, 9, 4, 2, 9, 10, 9, 4, 8, 8, 4, 10, 9, 10, 2, 7, 10, 9, 1, 2, 10, 9, 7, 7, 8, 2, 2, 1, 4, 1, 5, 5, 7, 4, 1, 8, 6, 6, 7, 6, 4, 5, 9, 10, 6, 9, 2, 5, 1, 2, 2, 1, 9, 2, 6, 7, 2, 1, 1, 9, 8, 4, 6, 8, 10, 5, 6, 1, 1, 2, 7, 10, 4, 10, 8, 5, 5, 2, 10, 2, 7, 4, 7, 8, 7, 6, 7, 8, 6, 4, 3, 10, 2, 2, 6, 9, 4, 9, 9, 9, 10, 2, 3, 8, 3, 3, 8, 1, 10, 3, 2, 1, 6, 2, 4, 8, 5, 9, 5, 3, 6, 1, 10, 6, 4, 6, 3, 7, 2, 5, 5, 9, 4, 1, 10, 9, 4, 4, 4, 9, 1, 10, 4, 1, 5, 9, 4, 5, 9, 6, 8, 1, 2, 2, 8, 5, 10, 2, 1, 1, 1, 1, 7, 4, 6, 2, 7, 8, 10, 3, 2, 3, 9, 10, 6, 8, 8, 4, 1, 9, 9, 5, 6, 7, 7, 5, 3, 3, 6, 4, 3, 9, 2, 6, 2, 7, 7, 6, 9, 6, 6, 9, 1, 6, 5, 6, 8, 4, 2, 2, 5, 6, 10, 6, 8, 10, 1, 3, 8, 1, 6, 4, 9, 7, 7, 2, 9, 6, 3, 7, 1, 4, 8, 9, 5, 10, 2, 9, 8, 9, 10, 8, 8, 8, 3, 4, 8, 9, 6, 3, 1, 10, 10, 1, 2, 3, 6, 5, 8, 10, 9, 2, 8, 6, 4, 5, 7, 5, 5, 4, 4, 10, 7, 1, 9, 10, 4, 8, 3, 10, 10, 3, 5, 8, 3, 4, 6, 10, 6, 1, 4, 1, 6, 2, 7, 8, 1, 9, 1, 10, 3, 1, 6, 9, 7, 3, 3, 7, 1, 7, 1, 8, 8, 8, 3, 5, 2, 6, 2, 5, 8, 3, 3, 7, 10, 6, 4, 5, 1, 5, 2, 2, 2, 9, 4, 4, 5, 8, 7, 1, 1, 4, 1, 7, 3, 7, 2, 1, 2, 2, 6, 7, 1, 7, 9, 8, 3, 10, 10, 2, 9, 3, 2, 5, 1, 1, 10, 4, 3, 6, 7, 4, 1, 3, 5, 7, 7, 10, 4, 5, 5, 2, 8, 2, 4, 9, 8, 1, 10, 7, 2, 6, 10, 2, 9, 8, 1, 8, 9, 3, 5, 7, 4, 2, 4, 8, 8, 7, 8, 3, 1, 9, 1, 9, 5, 4, 5, 9, 5, 7, 7, 9, 6, 10, 3, 9, 3, 2, 5, 1, 7, 2, 7, 10, 2, 10, 4, 9, 1, 5, 3, 7, 2, 9, 8, 5, 3, 2, 4, 2, 2, 10, 3, 2, 6, 7, 2, 2, 9, 1, 9, 7, 7, 5, 2, 3, 1, 5, 4, 5, 5, 9, 4, 6, 3, 3, 6, 8, 5, 9, 2, 9, 7, 1, 9, 10, 7, 3, 3, 5, 10, 9, 4, 1, 10, 7, 6, 3, 6, 2, 1, 3, 9, 10, 5, 8, 8, 4, 1, 10, 10, 5, 7, 5, 8, 3, 6, 5, 4, 6, 7, 2, 8, 8, 10, 4, 9, 4, 6, 1, 6, 9, 4, 7, 10, 10, 9, 6, 5, 9, 8, 9, 6, 9, 7, 9, 3, 4, 4, 5, 1, 10, 7, 6, 2, 9, 7, 10, 8, 3, 8, 2, 8, 2, 1, 10, 4, 10, 3, 7, 8, 1, 7, 6, 2, 4, 2, 8, 2, 5, 6, 10, 2, 7, 8, 7, 1, 5, 6, 7, 2, 7, 10, 4, 3, 2, 6, 6, 8, 8, 1, 7, 2, 9, 4, 8, 10, 10, 6, 7, 1, 10, 9, 1, 1, 6, 7, 9, 6, 8, 6, 9, 8, 7, 4, 9, 4, 8, 10, 3, 10, 8, 7, 1, 7, 4, 4, 6, 1, 8, 1, 5, 1, 9, 4, 6, 9, 5, 7, 10, 6, 6, 5, 1, 8, 10, 7, 2, 9, 10, 1, 4, 5, 4, 7, 6, 2, 7, 4, 7, 8, 6, 7, 1, 5, 9, 4, 5, 8, 3, 5, 5, 10, 5, 4, 4, 9, 7, 6, 9, 2, 4, 4, 4, 10, 3, 7, 4, 7, 9, 10, 7, 3, 9, 2, 5, 6, 6, 2, 4, 8, 8, 2, 9, 7, 4, 7, 5, 1, 4, 4, 4, 1, 9, 4, 8, 5, 2, 5, 5, 8, 10, 1, 8, 3, 10, 4, 6, 4, 8, 1, 1, 6, 9, 1, 9, 1, 8, 1, 9, 2, 3, 2, 4, 9, 3, 4, 2, 4, 10, 5, 1, 10, 9, 9, 9, 5, 8, 4, 2, 2, 10, 8, 1, 3, 8, 5, 3, 1, 9, 3, 4, 1, 1, 10, 4, 5, 6, 5, 3, 4, 8, 7, 2, 6, 2, 8, 5, 7, 2, 6, 5, 3, 6, 6, 9, 3, 10, 9, 4, 9, 9, 5, 4, 5, 2, 4, 3, 2, 1, 6, 7, 3, 7, 10, 2, 1, 5, 1, 3, 4, 7, 1, 8, 4, 4, 1, 10, 4, 5, 3, 5, 2, 1, 1, 8, 4, 8, 1, 8, 4, 3, 5, 9, 10, 1, 6, 8, 3, 5, 2, 5, 9, 7, 10, 6, 9, 3, 9, 7, 8, 6, 6, 2, 3, 4, 5, 6, 5, 5, 3, 5, 8, 8, 5, 9, 6, 1, 1, 9, 3, 8, 9, 9, 8, 1, 7, 4, 8, 1, 3, 8, 10, 9, 4, 6, 9, 1, 6, 8, 5, 6, 1, 2, 7, 3, 8, 1, 7, 4, 9, 2, 7, 5, 5, 7, 3, 5, 7, 5, 8, 8, 1, 2, 4, 3, 3, 5, 1, 5, 9, 10, 6, 6, 2, 10, 7, 3, 7, 9, 1, 10, 3, 1, 4, 10, 1, 6, 9, 1, 6, 5, 5, 10, 1, 4, 6, 6, 3, 8, 5, 1, 5, 7, 4, 1, 3, 8, 5, 8, 5, 3, 8, 10, 3, 3, 2, 2, 2, 7, 7, 10, 7, 5, 2, 7, 10, 7, 5, 3, 10, 10, 9, 1, 10, 3, 3, 10, 3, 4, 8, 10, 6, 3, 6, 4, 10, 5, 3, 3, 9, 5, 7, 10, 5, 3, 6, 3, 5, 3, 9, 6, 9, 3, 8, 10, 5, 6, 1, 4, 10, 5, 5, 5, 1, 4, 2, 9, 8, 9, 3, 9, 5, 5, 1, 7, 7, 1, 10, 6, 2, 3, 10, 6, 5, 3, 9, 5, 10, 7, 6, 7, 7, 5, 8, 3, 4, 4, 4, 1, 4, 7, 8, 1, 9, 10, 6, 8, 8, 5, 4, 10, 8, 9, 5, 10, 1, 4, 7, 10, 6, 10, 10, 5, 2, 3, 7, 7, 7, 3, 7, 2, 10, 1, 10, 5, 3, 10, 5, 7, 4, 7, 6, 7, 2, 10, 8, 3, 9, 3, 6, 10, 2, 6, 6, 5, 4, 3, 8, 4, 3, 8, 1, 4, 9, 10, 8, 5, 9, 2, 4, 9, 4, 4, 1, 3, 6, 1, 8, 6, 9, 8, 5, 10, 5, 10, 2, 2, 6, 3, 9, 5, 7, 2, 4, 7, 10, 5, 9, 1, 1, 10, 6, 4, 10, 1, 4, 5, 7, 6, 4, 10, 8, 4, 1, 4, 7, 4, 6, 4, 9, 10, 1, 10, 10, 1, 10, 7, 5, 10, 3, 3, 2, 4, 7, 7, 5, 4, 7, 2, 4, 10, 7, 2, 6, 8, 7, 10, 1, 3, 8, 10, 1, 4, 2, 7, 6, 9, 1, 3, 4, 2, 7, 3, 4, 6, 7, 7, 1, 1, 6, 7, 5, 3, 4, 1, 1, 1, 8, 9, 4, 1, 9, 3, 6, 3, 8, 8, 6, 9, 5, 3, 10, 10, 8, 7, 7, 5, 7, 9, 9, 3, 2, 2, 4, 7, 5, 3, 2, 1, 4, 4, 7, 6, 7, 6, 5, 10, 7, 10, 6, 2, 3, 10, 1, 9, 1, 9, 10, 4, 2, 8, 7, 10, 10, 9, 2, 10, 5, 8, 3, 10, 3, 6, 4, 9, 1, 3, 2, 8, 8, 5, 6, 2, 9, 3, 5, 1, 1, 8, 2, 10, 6, 1, 9, 4, 8, 2, 3, 6, 6, 6, 5, 8, 8, 1, 10, 1, 1, 1, 4, 5, 10, 5, 8, 2, 6, 9, 4, 9, 8, 6, 7, 6, 8, 4, 1, 2, 6, 4, 7, 3, 6, 2, 2, 1, 10, 2, 5, 5, 3, 2, 10, 10, 5, 10, 7, 7, 7, 8, 8, 7, 4, 1, 1, 5, 9, 10, 8, 2, 7, 3, 6, 2, 5, 10, 9, 7, 9, 9, 10, 9, 7, 9, 3, 3, 4, 10, 7, 1, 6, 2, 8, 1, 2, 1, 5, 5, 5, 9, 8, 9, 4, 4, 8, 3, 4, 5, 5, 1, 6, 3, 8, 5, 4, 7, 4, 7, 1, 2, 4, 2, 3, 8, 7, 2, 10, 10, 4, 7, 9, 4, 6, 2, 3, 5, 6, 5, 9, 1, 8, 7, 10, 3, 1, 10, 2, 1, 2, 5, 5, 7, 4, 2, 4, 3, 10, 3, 4, 3, 1, 7, 9, 9, 2, 4, 8, 7, 8, 3, 10, 9, 5, 3, 9, 5, 10, 5, 8, 7, 2, 5, 6, 1, 9, 9, 5, 7, 5, 5, 4, 8, 6, 8, 4, 9, 6, 8, 5, 4, 7, 3, 7, 1, 10, 6, 6, 6, 6, 9, 4, 3, 5, 7, 10, 2, 1, 6, 7, 10, 4, 8, 1, 6, 8, 10, 8, 8, 6, 4, 10, 5, 3, 2, 3, 1, 4, 2, 3, 10, 7, 9, 2, 1, 10, 1, 5, 1, 8, 5, 8, 10, 8, 3, 10, 4, 9, 1, 1, 10, 2, 4, 2, 1, 2, 5, 9, 6, 7, 8, 10, 9, 7, 1, 4, 10, 7, 4, 2, 2, 4, 5, 3, 5, 8, 1, 3, 1, 8, 10, 9, 1, 10, 9, 6, 10, 5, 9, 6, 7, 4, 7, 7, 2, 9, 7, 1, 10, 10, 3, 9, 7, 3, 10, 7, 10, 2, 4, 6, 9, 10, 3, 4, 10, 8, 10, 3, 7, 3, 8, 9, 3, 1, 10, 10, 2, 8, 3, 4, 8, 2, 10, 2, 5, 1, 3, 4, 8, 10, 9, 8, 7, 9, 1, 1, 4, 9, 2, 6, 4, 9, 3, 5, 4, 2, 5, 6, 10, 2, 9, 2, 10, 7, 5, 2, 8, 6, 8, 10, 9, 1, 1, 10, 5, 1, 4, 5, 8, 9, 10, 5, 7, 5, 10, 4, 3, 4, 7, 7, 9, 3, 7, 6, 4, 2, 2, 7, 7, 2, 1, 2, 9, 3, 7, 7, 3, 9, 7, 4, 4, 2, 8, 6, 3, 2, 7, 9, 10, 10, 5, 7, 4, 10, 4, 8, 1, 4, 5, 6, 10, 6, 9, 3, 7, 2, 2, 1, 1, 10, 4, 4, 10, 6, 3, 2, 9, 6, 9, 9, 9, 7, 7, 4, 3, 10, 3, 1, 2, 10, 4, 1, 6, 6, 6, 10, 1, 3, 1, 8, 1, 5, 9, 10, 1, 2, 2, 1, 8, 8, 6, 7, 3, 10, 2, 6, 1, 1, 2, 4, 6, 6, 6, 7, 9, 8, 3, 3, 5, 1, 7, 4, 7, 9, 3, 9, 3, 4, 5, 9, 4, 6, 6, 6, 10, 8, 7, 10, 4, 9, 4, 1, 4, 2, 7, 7, 9, 4, 2, 10, 8, 3, 8, 9, 6, 10, 1, 7, 3, 8, 2, 6, 7, 1, 9, 6, 2, 8, 4, 1, 9, 1, 8, 3, 10, 7, 5, 8, 9, 6, 2, 4, 5, 2, 3, 3, 9, 5, 9, 8, 1, 4, 8, 6, 5, 9, 5, 7, 2, 3, 10, 1, 5, 8, 3, 10, 3, 5, 6, 10, 5, 10, 6, 6, 3, 1, 4, 2, 7, 7, 4, 5, 2, 10, 1, 5, 3, 1, 10, 1, 8, 9, 8, 5, 10, 9, 6, 2, 6, 9, 7, 1, 8, 6, 3, 4, 8, 1, 4, 10, 4, 10, 3, 7, 6, 4, 5, 5, 6, 7, 5, 6, 4, 5, 1, 2, 5, 8, 5, 8, 1, 5, 9, 10, 1, 4, 6, 7, 10, 9, 3, 5, 1, 5, 4, 2, 2, 6, 9, 4, 2, 4, 4, 6, 9, 4, 3, 5, 1, 1, 8, 2, 10, 5, 6, 4, 6, 7, 5, 3, 3, 1, 2, 9, 10, 8, 4, 3, 1, 7, 6, 7, 6, 1, 7, 2, 10, 8, 6, 2, 2, 5, 1, 2, 2, 9, 5, 2, 3, 5, 3, 3, 9, 6, 4, 10, 2, 10, 1, 8, 6, 5, 10, 10, 4, 1, 3, 10, 2, 7, 10, 8, 6, 1, 7, 2, 9, 6, 2, 8, 6, 1, 2, 4, 9, 1, 8, 5, 3, 8, 4, 6, 9, 8, 9, 5, 3, 2, 3, 6, 7, 10, 10, 3, 6, 3, 9, 1, 9, 4, 1, 7, 8, 9, 4, 8, 5, 4, 3, 7, 2, 8, 7, 5, 4, 6, 2, 9, 7, 8, 1, 5, 1, 8, 2, 8, 3, 2, 8, 6, 3, 5, 2, 1, 10, 3, 8, 7, 7, 2, 5, 5, 9, 5, 7, 4, 10, 8, 7, 4, 2, 2, 7, 3, 2, 9, 2, 9, 6, 5, 1, 1, 3, 1, 5, 5, 8, 1, 5, 8, 6, 5, 5, 6, 3, 4, 9, 7, 3, 6, 10, 5, 5, 10, 10, 1, 5, 7, 5, 10, 8, 3, 1, 7, 2, 1, 6, 2, 9, 9, 5, 2, 1, 4, 6, 7, 6, 4, 4, 10, 5, 8, 8, 9, 2, 10, 6, 3, 3, 8, 1, 7, 9, 10, 1, 9, 10, 5, 6, 9, 10, 3, 3, 5, 2, 6, 8, 3, 2, 5, 9, 7, 6, 2, 1, 9, 10, 3, 3, 4, 8, 3, 6, 10, 3, 3, 7, 8, 4, 2, 2, 1, 1, 7, 3, 2, 1, 9, 4, 9, 2, 7, 2, 9, 9, 4, 7, 9, 6, 2, 8, 7, 5, 10, 5, 6, 2, 1, 6, 6, 5, 10, 7, 10, 7, 4, 1, 6, 1, 5, 4, 3, 8, 3, 9, 4, 1, 7, 8, 7, 3, 8, 8, 1, 4, 4, 5, 7, 2, 8, 5, 7, 4, 9, 4, 9, 1, 3, 6, 5, 10, 4, 2, 4, 4, 5, 10, 4, 10, 9, 2, 3, 1, 2, 9, 2, 1, 10, 6, 9, 8, 1, 4, 2, 5, 6, 3, 6, 1, 1, 3, 5, 6, 8, 2, 3, 2, 2, 3, 8, 7, 5, 7, 1, 8, 7, 6, 5, 4, 10, 8, 5, 1, 6, 7, 3, 4, 2, 1, 9, 9, 5, 4, 1, 8, 3, 7, 1, 3, 5, 5, 2, 1, 9, 2, 5, 5, 9, 5, 8, 9, 2, 2, 5, 7, 8, 2, 6, 6, 1, 3, 4, 10, 3, 9, 7, 10, 10, 5, 9, 2, 4, 9, 2, 7, 6, 9, 6, 10, 2, 10, 10, 1, 1, 7, 5, 7, 6, 4, 3, 8, 1, 5, 8, 1, 9, 10, 6, 3, 1, 7, 2, 3, 10, 9, 5, 1, 5, 5, 6, 2, 6, 2, 5, 9, 7, 4, 4, 8, 8, 5, 7, 6, 3, 2, 4, 4, 7, 1, 9, 2, 2, 5, 2, 1, 7, 1, 10, 2, 4, 2, 2, 7, 9, 5, 10, 9, 3, 2, 3, 6, 6, 1, 2, 2, 6, 8, 6, 6, 4, 10, 1, 1, 7, 5, 1, 3, 10, 4, 6, 9, 4, 2, 10, 9, 3, 2, 2, 6, 10, 10, 7, 6, 5, 10, 7, 1, 9, 6, 1, 1, 3, 6, 8, 6, 9, 3, 1, 2, 9, 7, 4, 9, 8, 3, 9, 8, 1, 9, 5, 2, 7, 6, 3, 3, 1, 9, 2, 5, 7, 9, 1, 4, 5, 3, 6, 7, 5, 2, 4, 9, 10, 9, 6, 2, 4, 9, 5, 9, 4, 3, 4, 8, 9, 9, 4, 10, 8, 2, 2, 1, 9, 3, 1, 6, 8, 9, 9, 5, 9, 3, 3, 10, 5, 8, 7, 1, 5, 2, 9, 4, 6, 6, 4, 6, 9, 10, 9, 3, 4, 10, 4, 9, 9, 8, 10, 6, 7, 10, 4, 7, 1, 4, 2, 6, 5, 8, 4, 10, 4, 7, 7, 10, 10, 9, 10, 8, 2, 2, 7, 10, 4, 9, 9, 6, 8, 4, 8, 7, 7, 2, 1, 8, 2, 8, 5, 2, 9, 7, 2, 1, 9, 2, 6, 2, 3, 5, 4, 9, 10, 3, 9, 3, 4, 3, 6, 5, 3, 9, 5, 1, 8, 10, 3, 3, 5, 6, 1, 5, 5, 7, 10, 3, 10, 1, 9, 9, 9, 9, 5, 8, 6, 6, 5, 9, 3, 8, 4, 9, 4, 3, 8, 8, 1, 3, 10, 5, 10, 1, 2, 6, 4, 5, 1, 7, 10, 1, 9, 4, 8, 3, 5, 8, 6, 9, 8, 2, 3, 6, 1, 3, 7, 9, 8, 7, 3, 4, 7, 4, 10, 5, 1, 8, 6, 6, 1, 10, 4, 3, 8, 4, 6, 2, 2, 5, 7, 8, 1, 8, 5, 3, 7, 9, 4, 9, 5, 3, 3, 10, 2, 9, 5, 1, 4, 8, 4, 7, 4, 10, 5, 4, 7, 4, 9, 9, 1, 5, 6, 9, 10, 3, 6, 6, 10, 4, 6, 1, 6, 1, 10, 3, 2, 7, 6, 9, 7, 1, 6, 1, 2, 8, 2, 2, 2, 2, 4, 3, 5, 4, 2, 2, 1, 7, 5, 9, 6, 10, 2, 3, 4, 5, 9, 4, 9, 10, 7, 10, 10, 1, 2, 7, 1, 3, 1, 2, 3, 3, 5, 7, 3, 2, 9, 9, 10, 6, 4, 1, 4, 2, 7, 8, 2, 1, 9, 1, 7, 9, 7, 5, 9, 3, 6, 7, 4, 5, 7, 8, 7, 1, 2, 2, 5, 5, 1, 2, 6, 8, 3, 1, 1, 7, 2, 7, 3, 7, 9, 3, 4, 6, 4, 7, 6, 4, 6, 6, 7, 1, 5, 7, 3, 1, 8, 5, 2, 6, 7, 4, 6, 9, 1, 2, 6, 1, 6, 9, 2, 7, 2, 5, 6, 3, 4, 6, 10, 5, 1, 9, 7, 6, 8, 1, 9, 3, 4, 10, 2, 7, 5, 4, 3, 1, 7, 3, 6, 4, 5, 5, 10, 2, 1, 6, 2, 6, 4, 7, 9, 6, 1, 7, 8, 5, 7, 10, 10, 1, 1, 4, 10, 9, 6, 10, 6, 6, 7, 2, 3, 7, 4, 7, 5, 5, 2, 4, 1, 9, 10, 3, 1, 2, 7, 6, 2, 1, 10, 4, 2, 4, 5, 5, 3, 3, 3, 2, 1, 6, 9, 7, 10, 4, 2, 9, 10, 1, 2, 7, 3, 5, 1, 9, 4, 7, 2, 5, 6, 2, 2, 6, 2, 3, 5, 4, 2, 4, 5, 5, 2, 3, 2, 6, 3, 2, 8, 5, 5, 5, 5, 7, 9, 6, 3, 8, 2, 5, 5, 6, 1, 8, 9, 1, 2, 7, 8, 8, 5, 1, 2, 8, 2, 9, 2, 9, 1, 5, 5, 9, 1, 5, 6, 3, 3, 3, 9, 5, 10, 2, 1, 4, 9, 6, 8, 5, 3, 8, 3, 4, 9, 8, 2, 9, 2, 1, 1, 2, 6, 2, 6, 9, 8, 4, 4, 9, 1, 8, 8, 7, 7, 3, 2, 8, 2, 4, 7, 6, 10, 8, 7, 7, 7, 2, 4, 4, 3, 7, 1, 7, 3, 9, 9, 1, 2, 10, 4, 7, 4, 5, 5, 1, 5, 2, 5, 2, 7, 5, 1, 1, 7, 9, 3, 5, 6, 10, 9, 6, 8, 5, 3, 7, 2, 3, 3, 2, 4, 1, 3, 7, 3, 1, 6, 2, 7, 10, 6, 2, 9, 5, 1, 4, 10, 5, 8, 10, 1, 5, 3, 8, 8, 2, 9, 9, 7, 5, 3, 4, 7, 3, 7, 9, 7, 1, 1, 1, 3, 8, 3, 2, 4, 7, 5, 7, 2, 6, 1, 2, 6, 8, 5, 3, 10, 7, 5, 6, 8, 1, 5, 7, 7, 5, 8, 8, 6, 3, 4, 5, 2, 8, 6, 8, 10, 4, 9, 10, 7, 1, 1, 3, 5, 8, 8, 3, 9, 5, 3, 5, 9, 1, 2, 2, 6, 1, 2, 6, 6, 3, 1, 2, 9, 5, 3, 1, 5, 5, 10, 6, 7, 5, 1, 2, 2, 2, 6, 3, 4, 6, 7, 7, 3, 6, 10, 5, 6, 7, 3, 3, 8, 8, 6, 9, 4, 10, 1, 8, 3, 9, 7, 5, 10, 8, 7, 6, 2, 4, 1, 8, 3, 10, 4, 1, 9, 6, 2, 5, 3, 4, 5, 5, 4, 5, 10, 6, 9, 3, 10, 4, 1, 5, 1, 6, 9, 4, 3, 8, 3, 5, 10, 4, 7, 5, 3, 10, 6, 3, 5, 8, 10, 8, 9, 10, 5, 10, 8, 6, 5, 10, 8, 7, 5, 7, 5, 6, 8, 7, 1, 10, 10, 6, 6, 3, 1, 6, 7, 5, 8, 6, 6, 3, 1, 8, 10, 6, 2, 7, 1, 9, 5, 3, 8, 3, 9, 4, 8, 5, 9, 8, 10, 5, 6, 3, 4, 6, 7, 8, 9, 8, 5, 8, 9, 8, 4, 5, 3, 4, 4, 2, 9, 9, 9, 7, 6, 4, 8, 6, 2, 5, 3, 8, 7, 9, 8, 9, 9, 4, 10, 8, 5, 3, 1, 1, 9, 5, 10, 4, 7, 2, 8, 4, 6, 7, 4, 2, 1, 6, 1, 5, 2, 8, 4, 1, 6, 5, 5, 5, 2, 7, 4, 2, 8, 5, 4, 8, 7, 6, 1, 3, 2, 6, 2, 10, 1, 10, 10, 5, 6, 5, 4, 2, 5, 9, 6, 9, 10, 3, 5, 7, 4, 1, 8, 1, 8, 8, 6, 7, 5, 1, 1, 2, 3, 2, 10, 4, 3, 10, 1, 3, 4, 9, 8, 9, 8, 9, 1, 4, 2, 10, 2, 3, 10, 8, 7, 8, 2, 5, 9, 9, 4, 7, 8, 2, 6, 2, 3, 6, 4, 10, 9, 4, 8, 2, 10, 1, 3, 8, 5, 2, 3, 9, 8, 1, 3, 3, 9, 1, 4, 1, 10, 2, 2, 4, 1, 6, 5, 3, 4, 1, 1, 3, 8, 5, 7, 7, 6, 10, 3, 2, 9, 3, 5, 2, 7, 5, 5, 7, 2, 4, 1, 7, 8, 9, 5, 3, 7, 8, 5, 5, 4, 6, 10, 5, 1, 7, 6, 3, 4, 3, 4, 10, 8, 5, 3, 6, 7, 9, 5, 8, 6, 7, 4, 1, 3, 3, 6, 1, 3, 10, 6, 9, 3, 1, 1, 6, 6, 5, 8, 8, 10, 3, 7, 1, 7, 7, 2, 2, 10, 2, 7, 5, 3, 3, 9, 2, 7, 2, 1, 5, 8, 6, 7, 4, 10, 6, 10, 7, 8, 7, 9, 3, 7, 8, 10, 2, 4, 2, 1, 7, 9, 9, 10, 2, 1, 4, 2, 6, 3, 5, 6, 2, 10, 5, 7, 9, 7, 10, 7, 8, 10, 1, 4, 3, 8, 6, 7, 5, 1, 9, 7, 9, 4, 7, 10, 5, 5, 5, 4, 10, 2, 8, 4, 6, 8, 1, 4, 8, 1, 4, 10, 7, 2, 3, 1, 4, 2, 5, 10, 8, 4, 6, 7, 10, 9, 9, 10, 6, 8, 9, 3, 1, 2, 6, 4, 6, 9, 8, 8, 3, 3, 7, 9, 4, 6, 2, 2, 3, 4, 10, 9, 7, 5, 2, 5, 1, 7, 8, 10, 8, 8, 9, 4, 3, 2, 10, 5, 1, 6, 7, 4, 5, 10, 6, 1, 1, 8, 4, 4, 1, 6, 4, 5, 4, 6, 1, 6, 7, 2, 6, 10, 10, 10, 1, 7, 1, 7, 2, 10, 5, 6, 10, 9, 2, 2, 10, 8, 8, 1, 5, 5, 3, 10, 6, 5, 1, 4, 2, 6, 8, 8, 8, 8, 5, 3, 1, 7, 3, 2, 1, 3, 9, 1, 3, 4, 6, 10, 4, 4, 9, 8, 8, 3, 10, 9, 1, 3, 2, 6, 2, 8, 6, 1, 3, 3, 10, 2, 6, 1, 9, 2, 7, 6, 8, 10, 10, 10, 9, 8, 3, 10, 5, 2, 6, 6, 9, 8, 7, 9, 9, 1, 5, 4, 5, 2, 9, 3, 9, 3, 7, 4, 4, 4, 10, 8, 4, 3, 5, 10, 9, 4, 2, 10, 5, 9, 2, 8, 10, 8, 4, 9, 5, 1, 5, 2, 9, 7, 7, 3, 5, 9, 2, 7, 1, 9, 1, 2, 5, 3, 2, 6, 7, 10, 1, 1, 10, 5, 10, 9, 2, 2, 7, 2, 8, 5, 5, 7, 9, 7, 7, 4, 7, 5, 6, 10, 10, 1, 1, 7, 3, 5, 3, 10, 3, 7, 4, 3, 6, 7, 5, 6, 10, 5, 5, 3, 6, 4, 10, 1, 4, 3, 2, 2, 5, 6, 10, 2, 8, 9, 3, 8, 3, 8, 3, 3, 7, 8, 8, 8, 5, 3, 3, 5, 1, 4, 7, 3, 4, 9, 7, 2, 3, 8, 3, 4, 4, 6, 8, 1, 3, 1, 7, 9, 10, 3, 6, 7, 4, 10, 5, 1, 10, 1, 5, 3, 9, 10, 2, 2, 2, 5, 5, 3, 2, 4, 4, 3, 3, 8, 4, 7, 10, 2, 10, 8, 1, 6, 1, 6, 10, 8, 5, 6, 1, 4, 6, 10, 1, 1, 9, 5, 3, 10, 10, 2, 3, 5, 8, 6, 2, 9, 6, 7, 3, 7, 6, 8, 5, 3, 8, 10, 6, 2, 4, 7, 7, 8, 9, 10, 6, 1, 6, 3, 3, 7, 8, 5, 3, 7, 9, 4, 3, 5, 9, 9, 7, 8, 10, 10, 5, 1, 6, 7, 8, 8, 3, 10, 3, 6, 6, 1, 10, 10, 10, 1, 9, 9, 7, 4, 3, 2, 2, 1, 7, 1, 2, 7, 10, 8, 9, 9, 5, 10, 2, 5, 9, 3, 4, 7, 9, 3, 9, 1, 6, 8, 1, 8, 7, 1, 5, 2, 8, 2, 4, 8, 6, 6, 4, 8, 5, 8, 2, 1, 1, 6, 6, 6, 9, 1, 1, 8, 1, 4, 2, 2, 10, 4, 10, 1, 4, 2, 6, 10, 9, 6, 1, 8, 5, 4, 10, 3, 2, 2, 1, 10, 7, 10, 10, 2, 10, 6, 2, 8, 9, 8, 9, 7, 2, 4, 3, 9, 3, 7, 6, 7, 8, 9, 4, 10, 2, 7, 1, 5, 7, 1, 3, 2, 7, 4, 2, 6, 8, 3, 6, 10, 4, 1, 6, 7, 4, 6, 1, 1, 7, 1, 9, 2, 8, 10, 8, 1, 2, 1, 6, 9, 9, 8, 10, 7, 10, 8, 2, 5, 8, 10, 6, 1, 10, 2, 4, 5, 7, 2, 9, 9, 5, 7, 8, 9, 6, 5, 5, 7, 6, 5, 10, 7, 9, 8, 7, 9, 5, 8, 4, 9, 2, 7, 2, 10, 4, 9, 10, 7, 7, 8, 3, 2, 2, 6, 4, 6, 10, 4, 10, 10, 5, 4, 8, 6, 5, 3, 2, 9, 2, 7, 10, 8, 7, 10, 10, 10, 1, 6, 2, 6, 8, 5, 7, 4, 5, 4, 6, 2, 10, 2, 6, 3, 5, 8, 4, 1, 3, 8, 6, 6, 6, 1, 5, 1, 10, 8, 9, 1, 4, 10, 8, 2, 2, 5, 6, 9, 7, 2, 4, 1, 6, 9, 1, 5, 5, 2, 8, 7, 7, 3, 8, 1, 2, 7, 8, 5, 8, 8, 4, 1, 4, 5, 2, 2, 1, 1, 10, 2, 9, 4, 5, 2, 6, 4, 4, 7, 3, 1, 4, 5, 3, 2, 7, 1, 1, 2, 4, 2, 3, 9, 2, 6, 5, 6, 9, 1, 4, 1, 1, 10, 9, 8, 6, 3, 6, 10, 2, 6, 7, 9, 8, 8, 1, 2, 3, 3, 5, 2, 4, 3, 3, 6, 5, 2, 7, 8, 1, 7, 10, 8, 2, 2, 6, 10, 9, 3, 8, 1, 2, 8, 3, 5, 8, 6, 2, 10, 4, 2, 8, 5, 1, 3, 8, 2, 9, 9, 9, 2, 7, 9, 3, 6, 8, 1, 9, 9, 9, 10, 2, 2, 7, 10, 2, 7, 1, 2, 5, 9, 10, 10, 5, 1, 10, 6, 9, 7, 3, 10, 5, 2, 8, 6, 3, 9, 7, 1, 7, 6, 1, 7, 5, 5, 9, 5, 10, 10, 1, 6, 10, 6, 3, 8, 10, 5, 5, 1, 2, 1, 10, 7, 8, 4, 9, 7, 2, 6, 4, 3, 10, 8, 7, 8, 4, 7, 1, 6, 10, 8, 7, 2, 5, 6, 2, 5, 2, 6, 1, 5, 3, 1, 7, 7, 5, 9, 9, 8, 5, 9, 3, 2, 1, 10, 7, 3, 5, 7, 2, 9, 2, 4, 6, 1, 8, 8, 3, 4, 7, 1, 5, 2, 5, 8, 3, 6, 3, 3, 6, 10, 3, 6, 2, 1, 4, 7, 4, 5, 5, 4, 6, 6, 3, 4, 5, 3, 10, 10, 6, 9, 2, 6, 8, 10, 6, 9, 2, 2, 1, 4, 3, 9, 5, 9, 10, 4, 10, 10, 6, 5, 10, 7, 4, 2, 6, 8, 4, 9, 1, 8, 4, 8, 9, 5, 2, 7, 4, 1, 1, 10, 9, 4, 8, 2, 9, 10, 3, 1, 2, 7, 5, 6, 9, 6, 1, 4, 5, 2, 9, 3, 4, 1, 10, 8, 6, 6, 6, 10, 2, 2, 3, 8, 3, 2, 1, 1, 8, 3, 5, 8, 10, 5, 7, 9, 8, 7, 9, 2, 5, 10, 8, 9, 8, 2, 4, 4, 5, 4, 1, 8, 6, 4, 10, 6, 1, 8, 4, 10, 2, 7, 8, 5, 2, 9, 4, 4, 4, 1, 6, 8, 10, 5, 1, 1, 8, 4, 10, 2, 9, 2, 10, 10, 5, 1, 4, 5, 9, 6, 6, 4, 3, 1, 9, 7, 2, 9, 7, 1, 6, 8, 6, 10, 5, 1, 6, 5, 6, 8, 8, 10, 6, 10, 4, 4, 9, 9, 7, 7, 2, 3, 1, 7, 6, 1, 10, 2, 4, 4, 4, 2, 4, 3, 2, 1, 2, 2, 1, 2, 7, 7, 8, 8, 9, 10, 7, 7, 9, 3, 2, 6, 3, 3, 1, 3, 2, 4, 9, 8, 6, 9, 6, 5, 1, 2, 7, 5, 10, 4, 1, 6, 4, 2, 4, 2, 10, 5, 1, 10, 9, 5, 1, 1, 2, 1, 4, 2, 8, 9, 2, 1, 6, 10, 2, 1, 4, 3, 8, 6, 10, 3, 8, 2, 5, 1, 7, 1, 10, 10, 3, 7, 7, 2, 9, 2, 1, 1, 1, 6, 5, 8, 1, 6, 9, 1, 2, 5, 8, 10, 6, 3, 5, 9, 7, 5, 8, 2, 10, 5, 2, 8, 4, 7, 7, 6, 7, 4, 6, 9, 1, 10, 7, 10, 5, 2, 7, 9, 6, 3, 8, 9, 1, 3, 10, 6, 2, 4, 7, 7, 3, 2, 5, 6, 3, 3, 6, 2, 5, 9, 8, 3, 7, 7, 8, 9, 10, 3, 2, 6, 1, 5, 3, 8, 10, 10, 5, 2, 8, 2, 9, 5, 8, 5, 8, 9, 7, 5, 4, 2, 7, 8, 1, 1, 9, 2, 7, 3, 7, 6, 1, 4, 2, 2, 8, 8, 9, 10, 3, 5, 4, 1, 10, 10, 6, 7, 2, 3, 9, 9, 9, 5, 1, 10, 5, 10, 3, 6, 5, 1, 10, 1, 9, 7, 2, 6, 5, 6, 7, 5, 7, 3, 8, 9, 3, 7, 5, 10, 3, 3, 7, 7, 4, 1, 3, 3, 10, 7, 4, 6, 6, 8, 10, 1, 8, 3, 6, 1, 4, 3, 4, 4, 6, 5, 8, 5, 2, 10, 8, 1, 5, 10, 1, 4, 7, 7, 6, 3, 6, 9, 2, 1, 8, 4, 8, 2, 10, 8, 8, 3, 8, 6, 9, 8, 8, 10, 10, 2, 5, 8, 5, 5, 9, 5, 4, 9, 10, 1, 1, 4, 3, 8, 8, 5, 8, 1, 3, 1, 8, 3, 3, 8, 7, 3, 9, 2, 2, 6, 8, 10, 1, 4, 1, 10, 7, 7, 5, 10, 5, 4, 1, 8, 9, 2, 10, 1, 3, 3, 3, 2, 6, 8, 1, 1, 9, 3, 9, 8, 10, 3, 9, 6, 2, 9, 1, 7, 2, 2, 8, 2, 2, 1, 10, 5, 1, 8, 7, 9, 10, 2, 4, 5, 3, 9, 5, 4, 4, 2, 5, 10, 1, 10, 5, 2, 2, 2, 4, 4, 8, 10, 10, 2, 9, 8, 8, 2, 4, 5, 3, 3, 3, 8, 7, 10, 9, 9, 9, 2, 2, 10, 7, 8, 9, 1, 10, 6, 4, 4, 10, 5, 5, 2, 1, 2, 4, 8, 2, 6, 5, 3, 3, 2, 4, 3, 7, 9, 4, 8, 4, 8, 10, 4, 3, 6, 4, 10, 4, 1, 4, 7, 7, 3, 10, 6, 2, 3, 2, 2, 8, 5, 9, 5, 10, 2, 6, 3, 8, 9, 7, 2, 3, 7, 4, 7, 8, 2, 1, 7, 8, 7, 8, 4, 3, 6, 7, 2, 8, 9, 3, 2, 7, 4, 7, 6, 4, 1, 5, 10, 9, 9, 2, 4, 10, 10, 3, 8, 10, 2, 10, 10, 3, 1, 1, 3, 5, 3, 5, 5, 5, 2, 6, 1, 5, 1, 3, 1, 8, 5, 1, 4, 6, 8, 4, 1, 9, 3, 4, 7, 8, 7, 6, 3, 4, 2, 2, 3, 1, 1, 8, 10, 2, 9, 3, 1, 7, 1, 4, 3, 4, 4, 9, 2, 7, 9, 6, 1, 9, 8, 5, 2, 6, 7, 10, 10, 4, 2, 7, 3, 4, 3, 3, 1, 1, 8, 3, 10, 5, 1, 8, 8, 4, 4, 4, 8, 9, 2, 6, 2, 7, 1, 1, 9, 9, 3, 1, 1, 3, 9, 3, 8, 10, 7, 7, 7, 3, 8, 8, 3, 3, 1, 1, 1, 9, 8, 4, 2, 6, 5, 3, 1, 5, 1, 4, 9, 7, 5, 8, 5, 6, 6, 4, 8, 6, 9, 1, 10, 9, 5, 3, 5, 10, 3, 3, 7, 1, 6, 10, 5, 3, 7, 5, 10, 10, 3, 4, 3, 9, 5, 6, 9, 5, 4, 8, 10, 10, 2, 9, 3, 1, 2, 9, 4, 9, 7, 8, 6, 10, 6, 6, 4, 5, 2, 6, 3, 3, 1, 7, 8, 5, 10, 1, 4, 10, 10, 5, 8, 5, 8, 10, 2, 1, 1, 9, 4, 8, 4, 1, 8, 8, 3, 7, 8, 10, 5, 6, 2, 3, 1, 8, 7, 9, 1, 7, 8, 7, 4, 3, 4, 5, 7, 3, 9, 1, 1, 1, 1, 8, 6, 7, 5, 2, 7, 3, 9, 7, 6, 5, 9, 1, 6, 5, 9, 3, 5, 9, 6, 6, 9, 8, 6, 5, 4, 1, 7, 8, 6, 2, 2, 3, 1, 8, 9, 10, 10, 3, 1, 6, 5, 4, 3, 2, 5, 10, 5, 2, 1, 1, 4, 8, 2, 3, 5, 2, 2, 2, 8, 1, 5, 7, 2, 10, 1, 2, 2, 2, 7, 6, 2, 3, 8, 5, 3, 9, 4, 2, 1, 6, 5, 2, 6, 5, 3, 6, 8, 1, 4, 6, 7, 8, 4, 10, 5, 1, 1, 4, 3, 4, 4, 4, 3, 2, 1, 10, 9, 3, 5, 9, 2, 3, 6, 3, 10, 4, 6, 9, 7, 1, 6, 6, 8, 7, 8, 1, 9, 7, 5, 3, 4, 7, 3, 8, 7, 7, 2, 10, 3, 6, 6, 1, 5, 10, 5, 2, 1, 4, 7, 2, 2, 8, 10, 7, 5, 3, 9, 1, 10, 2, 9, 5, 4, 4, 3, 5, 2, 9, 2, 2, 4, 2, 1, 4, 6, 1, 9, 10, 10, 4, 5, 1, 5, 9, 2, 3, 7, 1, 8, 5, 9, 3, 7, 10, 6, 5, 2, 3, 3, 8, 8, 2, 1, 8, 5, 2, 10, 7, 7, 1, 2, 10, 8, 6, 9, 7, 1, 9, 10, 7, 10, 1, 3, 5, 9, 10, 7, 9, 2, 8, 6, 4, 10, 4, 4, 3, 4, 2, 10, 2, 4, 4, 7, 8, 8, 7, 2, 9, 4, 10, 2, 4, 5, 10, 7, 6, 1, 5, 3, 4, 8, 9, 2, 8, 9, 8, 6, 8, 6, 10, 5, 9, 1, 9, 6, 7, 1, 3, 10, 10, 8, 1, 7, 1, 8, 3, 9, 9, 6, 10, 2, 8, 9, 8, 10, 10, 2, 10, 10, 9, 4, 2, 5, 3, 9, 4, 2, 7, 5, 6, 5, 5, 7, 5, 6, 3, 9, 5, 5, 4, 3, 4, 9, 4, 10, 2, 4, 10, 4, 4, 1, 1, 5, 8, 8, 5, 5, 6, 8, 5, 9, 1, 1, 7, 1, 7, 7, 5, 9, 1, 5, 9, 1, 10, 9, 7, 6, 6, 8, 8, 1, 9, 10, 5, 10, 10, 6, 7, 1, 1, 4, 8, 4, 8, 8, 9, 8, 9, 9, 3, 9, 1, 10, 9, 6, 8, 1, 5, 2, 8, 1, 4, 5, 8, 4, 10, 4, 10, 3, 3, 1, 8, 7, 8, 8, 4, 10, 3, 4, 5, 6, 2, 9, 9, 7, 2, 10, 5, 6, 6, 4, 10, 2, 5, 1, 7, 9, 1, 4, 3, 2, 8, 2, 3, 7, 3, 9, 10, 6, 8, 9, 4, 3, 8, 9, 1, 8, 2, 4, 10, 5, 10, 8, 9, 9, 5, 6, 8, 9, 5, 5, 5, 5, 7, 10, 3, 3, 3, 2, 5, 8, 3, 9, 6, 1, 8, 6, 7, 1, 1, 8, 10, 9, 7, 9, 2, 1, 6, 1, 9, 10, 3, 5, 4, 5, 1, 4, 2, 5, 9, 9, 7, 3, 3, 10, 8, 3, 1, 8, 2, 9, 5, 1, 6, 5, 2, 1, 4, 10, 5, 2, 5, 5, 2, 6, 7, 7, 1, 5, 9, 7, 8, 6, 5, 1, 4, 8, 6, 6, 6, 5, 7, 7, 9, 4, 3, 9, 4, 7, 7, 8, 2, 1, 5, 8, 8, 5, 2, 1, 1, 3, 9, 1, 4, 6, 5, 3, 1, 6, 8, 3, 7, 5, 10, 7, 1, 8, 10, 8, 3, 4, 8, 9, 5, 7, 7, 5, 2, 8, 3, 3, 4, 8, 1, 7, 4, 3, 7, 5, 1, 5, 8, 5, 8, 2, 4, 4, 8, 9, 3, 3, 2, 7, 4, 9, 5, 7, 5, 2, 7, 5, 9, 3, 9, 5, 2, 6, 7, 8, 10, 5, 3, 5, 4, 9, 1, 3, 2, 9, 7, 3, 6, 8, 9, 1, 8, 7, 3, 3, 6, 2, 4, 1, 5, 2, 3, 6, 8, 8, 7, 1, 3, 6, 5, 5, 10, 9, 10, 2, 3, 3, 1, 3, 1, 2, 1, 3, 5, 8, 4, 3, 2, 8, 8, 7, 1, 8, 10, 1, 3, 10, 4, 9, 7, 1, 1, 5, 9, 2, 7, 2, 5, 1, 5, 4, 9, 8, 8, 7, 9, 7, 4, 7, 6, 1, 5, 5, 6, 10, 6, 9, 4, 9, 2, 8, 1, 4, 9, 1, 1, 6, 9, 10, 7, 10, 1, 8, 4, 4, 5, 6, 10, 8, 8, 6, 3, 9, 4, 9, 7, 1, 9, 6, 3, 10, 2, 2, 8, 9, 7, 5, 4, 10, 5, 6, 1, 1, 5, 8, 8, 9, 10, 5, 6, 1, 9, 6, 9, 1, 7, 10, 8, 5, 4, 7, 9, 6, 8, 6, 8, 10, 1, 2, 6, 8, 2, 6, 1, 2, 1, 9, 1, 6, 8, 9, 1, 9, 2, 10, 5, 10, 2, 4, 4, 8, 5, 1, 10, 1, 10, 3, 4, 10, 9, 7, 5, 4, 4, 6, 1, 9, 2, 8, 6, 5, 9, 1, 6, 9, 8, 8, 3, 1, 10, 7, 8, 5, 10, 6, 9, 9, 1, 8, 1, 7, 7, 2, 5, 1, 3, 4, 3, 1, 4, 5, 4, 10, 10, 4, 7, 1, 9, 10, 10, 7, 1, 5, 8, 2, 9, 2, 5, 8, 1, 8, 4, 7, 8, 5, 2, 10, 5, 10, 7, 1, 3, 7, 3, 2, 9, 5, 4, 7, 3, 1, 5, 4, 6, 9, 6, 9, 3, 9, 6, 2, 5, 9, 4, 1, 9, 6, 4, 2, 3, 1, 5, 5, 1, 6, 9, 1, 3, 7, 10, 9, 9, 8, 9, 5, 2, 10, 2, 10, 8, 9, 1, 2, 2, 9, 2, 6, 6, 8, 10, 9, 8, 10, 3, 1, 9, 10, 1, 7, 8, 4, 1, 1, 9, 6, 8, 8, 2, 8, 4, 4, 3, 4, 4, 4, 7, 1, 4, 8, 9, 9, 1, 1, 9, 9, 8, 10, 6, 7, 2, 6, 10, 10, 6, 10, 5, 4, 5, 2, 5, 7, 2, 10, 4, 5, 3, 4, 4, 3, 4, 2, 7, 3, 4, 6, 3, 6, 10, 10, 10, 10, 6, 3, 7, 3, 10, 6, 7, 4, 8, 4, 2, 9, 6, 10, 2, 5, 5, 10, 9, 7, 3, 9, 8, 6, 9, 6, 2, 1, 1, 9, 7, 5, 4, 6, 8, 7, 10, 2, 4, 5, 4, 3, 9, 10, 3, 10, 6, 3, 6, 9, 4, 4, 6, 8, 4, 5, 2, 8, 9, 8, 10, 8, 7, 2, 6, 9, 10, 5, 9, 10, 3, 6, 10, 6, 8, 9, 6, 5, 2, 8, 6, 2, 2, 5, 5, 7, 5, 3, 9, 5, 4, 2, 4, 6, 2, 5, 1, 3, 2, 3, 8, 3, 5, 1, 9, 7, 7, 3, 10, 8, 7, 10, 7, 8, 6, 9, 4, 7, 9, 3, 2, 4, 6, 2, 6, 10, 2, 9, 5, 3, 1, 4, 6, 3, 4, 5, 7, 9, 5, 5, 10, 2, 6, 2, 10, 8, 3, 6, 2, 1, 3, 9, 3, 10, 9, 1, 2, 8, 8, 4, 10, 4, 7, 1, 9, 3, 6, 1, 9, 1, 3, 2, 1, 10, 7, 7, 9, 4, 2, 3, 3, 3, 3, 1, 1, 1, 7, 9, 1, 5, 7, 1, 2, 5, 8, 2, 5, 3, 5, 7, 7, 1, 6, 5, 1, 1, 6, 9, 5, 8, 3, 7, 9, 9, 5, 3, 10, 7, 10, 5, 3, 9, 2, 1, 10, 7, 4, 6, 6, 3, 4, 7, 6, 9, 2, 7, 7, 5, 4, 8, 7, 7, 1, 1, 8, 7, 10, 1, 1, 3, 6, 3, 1, 1, 4, 6, 10, 7, 9, 3, 7, 8, 3, 3, 5, 6, 4, 6, 7, 6, 5, 4, 1, 10, 5, 1, 1, 6, 2, 2, 6, 2, 4, 4, 9, 1, 5, 1, 8, 8, 10, 3, 5, 2, 9, 8, 10, 3, 10, 6, 9, 10, 6, 3, 4, 5, 3, 5, 10, 10, 1, 8, 6, 4, 5, 2, 5, 1, 10, 9, 7, 10, 5, 10, 8, 7, 3, 5, 5, 5, 1, 5, 7, 9, 6, 9, 8, 9, 2, 3, 2, 3, 6, 10, 5, 4, 4, 3, 4, 5, 2, 9, 5, 4, 2, 6, 2, 7, 7, 1, 1, 8, 8, 8, 7, 4, 3, 3, 9, 1, 8, 6, 1, 1, 7, 1, 7, 9, 2, 4, 5, 8, 7, 2, 6, 1, 6, 5, 8, 5, 7, 9, 7, 10, 4, 8, 6, 9, 6, 9, 9, 3, 8, 8, 8, 10, 6, 10, 10, 8, 9, 6, 2, 5, 3, 10, 8, 7, 5, 10, 7, 2, 4, 4, 8, 9, 6, 2, 2, 4, 9, 8, 7, 6, 10, 1, 2, 8, 4, 6, 4, 10, 10, 2, 10, 1, 3, 10, 1, 10, 9, 6, 6, 8, 1, 4, 3, 10, 7, 5, 3, 6, 10, 3, 4, 8, 10, 7, 9, 5, 4, 7, 6, 7, 3, 10, 8, 9, 2, 7, 6, 9, 1, 8, 5, 5, 1, 10, 5, 2, 3, 6, 3, 8, 4, 10, 3, 4, 2, 2, 9, 2, 9, 10, 9, 9, 9, 2, 8, 9, 1, 6, 5, 9, 10, 8, 7, 6, 8, 10, 10, 2, 4, 9, 10, 10, 3, 8, 1, 6, 9, 7, 4, 8, 1, 3, 1, 10, 8, 3, 3, 2, 6, 1, 2, 8, 6, 7, 9, 5, 2, 7, 4, 10, 4, 3, 6, 8, 8, 7, 3, 9, 7, 7, 5, 7, 9, 6, 3, 7, 10, 1, 3, 1, 2, 2, 6, 2, 8, 8, 8, 2, 8, 8, 6, 9, 1, 6, 10, 3, 5, 5, 3, 3, 10, 2, 3, 7, 8, 9, 8, 9, 10, 5, 5, 8, 4, 4, 7, 7, 7, 6, 10, 6, 5, 7, 5, 3, 5, 10, 2, 7, 9, 9, 6, 4, 6, 7, 4, 7, 3, 5, 9, 9, 7, 4, 5, 2, 8, 8, 1, 2, 4, 6, 10, 9, 9, 5, 7, 4, 6, 4, 5, 1, 3, 1, 5, 8, 3, 10, 8, 4, 2, 9, 4, 3, 6, 6, 7, 2, 3, 7, 7, 5, 10, 1, 7, 6, 8, 4, 6, 9, 2, 10, 6, 9, 5, 6, 7, 7, 3, 4, 9, 4, 1, 9, 7, 1, 1, 1, 5, 9, 3, 5, 10, 7, 6, 6, 8, 3, 9, 8, 9, 4, 2, 1, 8, 5, 6, 2, 5, 3, 8, 4, 2, 8, 4, 6, 4, 10, 1, 5, 8, 1, 10, 4, 9, 1, 5, 3, 1, 7, 1, 3, 4, 8, 10, 2, 2, 1, 10, 8, 6, 3, 5, 8, 4, 3, 5, 8, 8, 6, 1, 2, 9, 8, 7, 4, 6, 3, 2, 2, 3, 5, 5, 6, 2, 10, 4, 1, 3, 2, 3, 10, 10, 5, 5, 8, 4, 9, 8, 4, 8, 3, 1, 2, 1, 7, 5, 6, 8, 3, 5, 2, 4, 5, 9, 3, 7, 2, 4, 7, 4, 10, 9, 4, 9, 1, 3, 8, 10, 4, 3, 5, 6, 1, 6, 8, 3, 4, 2, 1, 9, 4, 1, 4, 3, 3, 1, 6, 5, 10, 3, 6, 9, 8, 8, 8, 6, 5, 4, 6, 4, 7, 6, 10, 1, 8, 4, 2, 1, 6, 2, 8, 2, 6, 3, 2, 3, 3, 2, 7, 10, 3, 7, 6, 4, 1, 10, 8, 7, 8, 6, 1, 1, 7, 3, 2, 10, 7, 9, 7, 10, 10, 8, 7, 5, 5, 4, 7, 2, 8, 5, 6, 6, 5, 6, 7, 1, 4, 2, 1, 9, 8, 3, 1, 5, 8, 9, 8, 3, 6, 4, 6, 5, 4, 8, 10, 8, 3, 4, 8, 7, 8, 10, 3, 7, 7, 4, 3, 6, 10, 7, 10, 2, 3, 2, 10, 2, 2, 7, 1, 2, 5, 3, 9, 10, 8, 5, 7, 4, 4, 8, 6, 2, 5, 9, 3, 6, 2, 7, 8, 7, 9, 7, 2, 7, 1, 1, 6, 5, 10, 10, 1, 1, 2, 2, 6, 8, 7, 1, 5, 1, 9, 7, 4, 5, 2, 7, 9, 5, 9, 3, 4, 4, 4, 4, 9, 8, 9, 5, 4, 4, 7, 4, 10, 4, 5, 2, 4, 10, 5, 7, 9, 6, 4, 6, 2, 1, 4, 4, 4, 5, 10, 1, 10, 2, 9, 5, 3, 3, 6, 7, 10, 7, 1, 8, 6, 5, 2, 5, 7, 1, 2, 5, 7, 1, 1, 8, 1, 3, 6, 6, 1, 10, 10, 6, 6, 4, 3, 1, 9, 3, 7, 5, 10, 1, 4, 6, 1, 7, 8, 3, 7, 2, 8, 7, 8, 6, 10, 6, 8, 1, 5, 2, 7, 9, 2, 4, 8, 5, 10, 3, 10, 6, 5, 5, 2, 6, 6, 2, 1, 6, 5, 5, 3, 6, 9, 4, 1, 10, 5, 6, 7, 4, 10, 1, 6, 10, 2, 3, 8, 7, 10, 10, 10, 7, 4, 5, 5, 9, 1, 8, 1, 1, 3, 1, 1, 5, 1, 5, 8, 8, 10, 6, 10, 5, 2, 1, 5, 9, 7, 9, 8, 7, 6, 10, 2, 1, 2, 4, 8, 3, 1, 1, 6, 8, 1, 6, 9, 3, 10, 10, 1, 9, 8, 6, 1, 8, 5, 9, 1, 1, 4, 4, 3, 4, 6, 3, 9, 7, 9, 3, 2, 6, 5, 3, 8, 7, 2, 9, 4, 2, 1, 10, 10, 7, 9, 1, 6, 6, 7, 2, 8, 9, 4, 8, 4, 4, 1, 8, 1, 4, 9, 4, 6, 3, 4, 7, 10, 4, 7, 2, 8, 5, 5, 3, 10, 4, 5, 4, 1, 9, 10, 3, 1, 3, 9, 7, 2, 1, 3, 3, 3, 9, 7, 4, 4, 6, 10, 7, 1, 5, 8, 4, 3, 9, 6, 8, 1, 2, 4, 1, 3, 7, 1, 1, 8, 4, 5, 2, 5, 8, 2, 10, 7, 3, 10, 7, 4, 6, 8, 5, 8, 8, 3, 3, 3, 5, 7, 5, 9, 10, 7, 3, 6, 6, 1, 8, 9, 9, 7, 10, 2, 6, 5, 10, 7, 5, 10, 9, 9, 5, 9, 9, 10, 3, 1, 1, 5, 10, 10, 2, 2, 10, 7, 10, 5, 6, 5, 2, 7, 3, 5, 6, 5, 8, 3, 7, 3, 9, 5, 4, 9, 2, 7, 9, 6, 7, 4, 8, 2, 2, 9, 10, 6, 6, 10, 9, 7, 2, 3, 1, 10, 4, 2, 4, 8, 2, 8, 10, 7, 9, 3, 9, 8, 1, 4, 7, 9, 6, 6, 6, 1, 1, 6, 7, 10, 2, 6, 6, 5, 9, 10, 1, 2, 6, 10, 10, 4, 5, 5, 8, 9, 6, 1, 7, 3, 5, 2, 4, 6, 7, 4, 5, 7, 1, 9, 5, 8, 6, 6, 4, 2, 9, 5, 7, 9, 2, 9, 6, 7, 4, 3, 5, 9, 3, 8, 4, 1, 8, 2, 5, 2, 9, 6, 5, 3, 9, 1, 9, 2, 2, 9, 8, 6, 4, 10, 10, 8, 3, 3, 2, 9, 5, 8, 3, 1, 1, 2, 3, 6, 9, 8, 6, 4, 1, 4, 7, 9, 9, 3, 4, 7, 2, 1, 7, 2, 7, 10, 9, 1, 6, 6, 4, 3, 7, 6, 3, 5, 8, 6, 2, 4, 8, 2, 3, 8, 5, 2, 7, 7, 2, 4, 3, 7, 8, 1, 6, 2, 9, 4, 4, 4, 5, 5, 7, 3, 1, 2, 3, 7, 2, 9, 6, 8, 4, 5, 10, 5, 10, 8, 2, 1, 1, 2, 10, 5, 8, 3, 7, 2, 8, 5, 10, 5, 7, 1, 4, 7, 6, 3, 7, 5, 2, 7, 7, 5, 10, 1, 10, 3, 9, 8, 6, 10, 6, 8, 5, 4, 8, 9, 4, 10, 5, 9, 7, 4, 9, 6, 2, 1, 6, 8, 8, 3, 4, 6, 6, 4, 10, 9, 1, 6, 8, 5, 10, 1, 7, 5, 8, 6, 10, 10, 1, 10, 7, 6, 3, 10, 10, 9, 7, 4, 5, 4, 7, 1, 4, 8, 7, 8, 3, 9, 7, 3, 6, 4, 2, 6, 3, 3, 2, 3, 2, 3, 5, 7, 3, 1, 6, 7, 8, 4, 9, 10, 7, 6, 2, 1, 10, 2, 10, 4, 8, 1, 5, 2, 6, 7, 10, 9, 2, 10, 9, 2, 3, 2, 8, 6, 9, 5, 10, 3, 8, 9, 1, 1, 10, 7, 6, 9, 3, 8, 1, 8, 3, 9, 1, 4, 4, 6, 1, 8, 4, 9, 4, 4, 2, 3, 3, 2, 1, 3, 6, 4, 2, 5, 3, 8, 3, 5, 6, 5, 1, 4, 5, 1, 7, 5, 2, 6, 4, 2, 3, 10, 8, 9, 9, 9, 7, 1, 2, 8, 3, 5, 1, 6, 5, 9, 6, 6, 2, 8, 6, 7, 5, 1, 6, 1, 4, 10, 7, 1, 9, 10, 1, 2, 6, 6, 4, 8, 7, 10, 6, 8, 7, 8, 9, 8, 7, 8, 2, 2, 2, 1, 8, 8, 1, 3, 6, 7, 1, 9, 8, 1, 8, 4, 10, 2, 6, 1, 6, 9, 1, 3, 3, 3, 2, 7, 1, 8, 2, 10, 9, 4, 10, 1, 1, 4, 6, 2, 3, 5, 1, 9, 5, 4, 8, 3, 8, 5, 7, 5, 1, 5, 1, 2, 2, 9, 2, 3, 3, 2, 2, 8, 6, 1, 2, 7, 1, 3, 3, 4, 7, 4, 10, 9, 3, 9, 2, 6, 1, 8, 8, 10, 5, 10, 5, 6, 7, 1, 1, 1, 8, 8, 3, 7, 5, 7, 10, 10, 2, 10, 9, 1, 1, 5, 1, 3, 2, 6, 7, 2, 8, 7, 7, 2, 4, 5, 6, 9, 7, 4, 4, 7, 8, 7, 6, 2, 8, 1, 10, 3, 3, 5, 2, 7, 4, 9, 3, 6, 5, 8, 6, 1, 2, 10, 8, 3, 2, 2, 2, 3, 3, 2, 3, 6, 1, 5, 2, 7, 5, 6, 4, 9, 2, 5, 1, 2, 6, 2, 6, 1, 9, 5, 3, 5, 6, 2, 3, 8, 10, 3, 8, 8, 1, 3, 4, 9, 3, 4, 6, 8, 9, 9, 5, 9, 2, 5, 8, 8, 10, 10, 1, 8, 7, 3, 8, 5, 1, 7, 3, 5, 9, 9, 4, 3, 3, 2, 5, 9, 3, 8, 7, 1, 5, 4, 7, 4, 9, 10, 5, 4, 6, 10, 6, 6, 8, 10, 6, 9, 2, 5, 7, 7, 5, 10, 4, 7, 4, 7, 10, 1, 6, 5, 9, 3, 5, 8, 6, 9, 9, 1, 8, 3, 4, 10, 6, 9, 4, 9, 6, 2, 10, 10, 7, 9, 1, 7, 7, 2, 2, 9, 3, 9, 2, 2, 3, 7, 5, 9, 6, 10, 9, 7, 5, 5, 3, 9, 8, 6, 8, 9, 7, 7, 2, 5, 7, 9, 5, 9, 9, 2, 6, 1, 1, 10, 5, 2, 1, 8, 1, 3, 8, 2, 9, 4, 9, 9, 10, 2, 5, 4, 1, 7, 3, 4, 10, 2, 8, 8, 5, 5, 1, 8, 1, 8, 9, 7, 6, 7, 9, 6, 1, 2, 2, 7, 8, 6, 8, 2, 7, 6, 8, 7, 1, 6, 10, 3, 4, 2, 3, 10, 2, 8, 9, 8, 6, 1, 5, 9, 2, 7, 5, 10, 2, 1, 10, 4, 10, 1, 10, 9, 6, 2, 8, 1, 3, 10, 2, 10, 2, 8, 2, 5, 4, 3, 4, 6, 7, 4, 10, 7, 6, 5, 9, 10, 9, 7, 3, 8, 3, 10, 4, 10, 3, 2, 4, 1, 4, 10, 9, 5, 10, 1, 3, 3, 3, 5, 3, 9, 8, 7, 7, 8, 4, 2, 3, 2, 5, 9, 2, 2, 9, 1, 10, 1, 5, 5, 8, 5, 5, 8, 7, 6, 1, 1, 6, 2, 6, 6, 8, 7, 3, 7, 7, 1, 9, 2, 9, 6, 8, 1, 3, 1, 3, 10, 5, 4, 4, 3, 10, 10, 2, 4, 3, 1, 9, 10, 3, 10, 7, 2, 7, 1, 2, 5, 7, 10, 8, 3, 1, 9, 10, 1, 4, 10, 2, 7, 6, 5, 4, 6, 1, 9, 8, 9, 3, 2, 7, 8, 4, 1, 3, 10, 3, 2, 8, 9, 4, 4, 6, 10, 2, 3, 3, 10, 6, 4, 1, 4, 5, 4, 2, 8, 8, 10, 6, 10, 10, 2, 9, 1, 4, 6, 6, 6, 4, 8, 9, 7, 4, 3, 9, 4, 10, 7, 10, 8, 3, 8, 4, 4, 10, 6, 5, 2, 8, 7, 8, 9, 10, 2, 10, 6, 2, 6, 5, 5, 2, 1, 3, 6, 9, 5, 7, 3, 5, 9, 4, 7, 4, 6, 10, 2, 6, 5, 3, 8, 8, 8, 10, 2, 9, 3, 3, 5, 9, 3, 7, 2, 5, 3, 1, 5, 1, 10, 7, 1, 2, 8, 5, 2, 2, 8, 10, 6, 7, 8, 8, 4, 7, 6, 3, 8, 5, 7, 8, 8, 7, 1, 8, 7, 4, 6, 9, 2, 1, 6, 6, 2, 8, 3, 1, 3, 5, 8, 2, 7, 8, 1, 6, 7, 5, 8, 7, 5, 5, 7, 6, 9, 6, 6, 2, 6, 9, 6, 3, 5, 4, 1, 6, 4, 8, 6, 9, 8, 10, 9, 7, 6, 10, 9, 3, 9, 3, 9, 8, 7, 1, 6, 2, 8, 5, 5, 9, 10, 9, 9, 7, 6, 6, 8, 5, 9, 7, 2, 4, 8, 4, 8, 5, 4, 7, 2, 2, 2, 8, 10, 3, 9, 6, 9, 2, 8, 3, 3, 4, 9, 5, 10, 5, 10, 9, 8, 5, 10, 5, 4, 6, 6, 5, 4, 10, 10, 7, 5, 5, 8, 9, 10, 6, 1, 10, 6, 6, 1, 7, 3, 1, 2, 2, 5, 8, 9, 4, 5, 3, 3, 2, 10, 7, 9, 3, 1, 10, 8, 8, 10, 3, 9, 2, 8, 1, 3, 2, 1, 4, 9, 4, 9, 10, 10, 3, 3, 1, 9, 9, 2, 7, 8, 9, 2, 5, 3, 4, 1, 1, 5, 1, 6, 1, 4, 6, 5, 9, 2, 7, 9, 6, 10, 5, 6, 2, 9, 8, 8, 4, 6, 6, 1, 10, 1, 7, 3, 9, 9, 6, 6, 10, 7, 8, 1, 9, 6, 3, 1, 8, 9, 1, 10, 9, 2, 1, 3, 7, 6, 2, 8, 4, 8, 9, 5, 8, 10, 1, 10, 3, 6, 4, 9, 10, 2, 3, 1, 5, 6, 10, 4, 3, 3, 6, 8, 9, 2, 10, 6, 10, 1, 3, 7, 2, 2, 6, 10, 4, 10, 7, 6, 3, 5, 7, 5, 9, 3, 1, 9, 2, 10, 10, 6, 6, 8, 10, 6, 8, 7, 7, 1, 7, 6, 8, 8, 2, 5, 9, 7, 10, 4, 2, 5, 9, 6, 2, 9, 1, 9, 7, 4, 5, 9, 6, 10, 1, 2, 10, 8, 5, 8, 1, 1, 5, 9, 5, 1, 7, 8, 1, 5, 1, 2, 1, 7, 2, 2, 9, 1, 9, 1, 3, 7, 2, 1, 1, 2, 3, 5, 4, 4, 1, 7, 10, 3, 2, 1, 6, 2, 9, 6, 3, 2, 6, 6, 4, 10, 9, 10, 1, 6, 1, 3, 9, 6, 6, 10, 9, 5, 5, 9, 6, 8, 10, 1, 1, 10, 4, 6, 6, 7, 6, 3, 9, 7, 5, 4, 4, 10, 5, 2, 7, 9, 3, 7, 1, 1, 1, 7, 9, 6, 1, 9, 7, 10, 1, 2, 8, 5, 7, 3, 5, 7, 4, 5, 9, 2, 3, 3, 8, 8, 1, 2, 8, 5, 8, 1, 7, 8, 9, 6, 6, 8, 7, 3, 8, 6, 4, 10, 9, 3, 4, 8, 2, 9, 7, 2, 10, 3, 8, 5, 5, 5, 7, 5, 3, 6, 5, 1, 10, 8, 2, 2, 8, 2, 10, 9, 3, 10, 5, 4, 8, 10, 4, 4, 1, 9, 9, 4, 4, 9, 4, 4, 8, 1, 2, 3, 3, 5, 2, 8, 10, 4, 8, 1, 1, 4, 5, 3, 10, 6, 9, 9, 7, 4, 7, 8, 9, 2, 10, 5, 6, 10, 6, 7, 3, 6, 8, 8, 4, 10, 9, 4, 4, 8, 8, 2, 3, 1, 10, 9, 7, 4, 7, 3, 2, 8, 9, 6, 8, 7, 6, 1, 3, 6, 3, 3, 7, 8, 1, 2, 8, 2, 7, 9, 10, 8, 6, 7, 1, 6, 5, 3, 3, 1, 10, 3, 8, 6, 9, 9, 6, 5, 1, 10, 2, 8, 8, 2, 5, 5, 5, 6, 10, 10, 8, 1, 2, 4, 10, 1, 6, 3, 7, 2, 10, 9, 8, 6, 9, 1, 8, 1, 4, 4, 10, 1, 3, 1, 3, 9, 9, 10, 10, 7, 3, 5, 10, 5, 10, 8, 8, 6, 10, 3, 2, 8, 5, 5, 6, 2, 5, 8, 1, 7, 6, 6, 10, 2, 10, 5, 8, 10, 2, 3, 4, 8, 8, 3, 9, 6, 8, 1, 9, 9, 7, 8, 3, 5, 10, 2, 8, 3, 6, 7, 3, 9, 7, 1, 5, 2, 10, 6, 1, 9, 9, 1, 7, 8, 4, 2, 3, 1, 2, 7, 3, 8, 5, 6, 1, 1, 4, 8, 7, 2, 10, 10, 6, 1, 8, 10, 10, 3, 10, 7, 6, 3, 6, 5, 5, 9, 6, 9, 6, 8, 4, 8, 8, 1, 6, 7, 2, 1, 8, 9, 8, 2, 4, 9, 10, 6, 8, 10, 6, 3, 6, 8, 5, 7, 10, 8, 7, 1, 10, 5, 2, 3, 2, 9, 9, 4, 4, 8, 3, 10, 5, 7, 3, 4, 3, 7, 5, 3, 3, 8, 1, 4, 3, 4, 6, 6, 7, 5, 10, 4, 3, 9, 9, 2, 5, 4, 10, 5, 9, 7, 4, 3, 1, 2, 7, 8, 7, 8, 1, 7, 9, 3, 10, 8, 4, 10, 4, 4, 2, 6, 4, 3, 3, 7, 2, 9, 8, 2, 6, 2, 9, 3, 5, 6, 6, 8, 7, 8, 5, 2, 5, 1, 7, 7, 10, 9, 7, 3, 6, 1, 3, 8, 3, 3, 4, 4, 4, 1, 6, 6, 8, 5, 1, 1, 10, 5, 7, 2, 7, 6, 4, 1, 7, 5, 4, 7, 2, 2, 10, 9, 4, 4, 5, 8, 8, 3, 1, 4, 6, 5, 9, 8, 7, 4, 6, 5, 10, 8, 2, 1, 10, 7, 1, 5, 4, 5, 9, 4, 5, 1, 10, 7, 4, 6, 8, 5, 7, 1, 8, 2, 3, 8, 1, 6, 5, 1, 9, 8, 2, 4, 5, 9, 5, 5, 5, 7, 2, 4, 2, 2, 7, 7, 9, 9, 5, 1, 9, 3, 1, 4, 10, 8, 7, 10, 3, 5, 3, 6, 7, 6, 6, 4, 8, 7, 1, 3, 4, 1, 3, 6, 7, 6, 6, 7, 9, 3, 7, 1, 3, 6, 9, 5, 5, 6, 7, 8, 4, 7, 9, 3, 5, 2, 10, 3, 8, 9, 1, 7, 3, 10, 3, 9, 3, 7, 3, 10, 6, 8, 1, 6, 4, 3, 8, 10, 1, 5, 1, 10, 4, 5, 5, 3, 9, 5, 10, 10, 7, 3, 2, 6, 7, 10, 6, 1, 5, 3, 3, 8, 5, 5, 7, 2, 6, 3, 4, 9, 9, 8, 4, 6, 8, 5, 7, 5, 3, 10, 3, 7, 3, 7, 8, 5, 5, 8, 10, 2, 8, 7, 1, 1, 3, 5, 10, 3, 4, 8, 3, 2, 1, 3, 10, 6, 10, 1, 8, 1, 8, 8, 10, 7, 4, 10, 6, 4, 9, 10, 7, 4, 8, 2, 4, 4, 8, 3, 4, 8, 9, 2, 9, 4, 1, 10, 8, 10, 3, 8, 1, 9, 7, 1, 1, 6, 2, 9, 9, 6, 6, 9, 10, 5, 6, 1, 4, 5, 9, 4, 1, 4, 3, 3, 8, 3, 10, 3, 7, 5, 7, 8, 5, 3, 6, 10, 9, 7, 1, 6, 5, 8, 7, 7, 7, 7, 7, 7, 10, 6, 4, 2, 4, 9, 9, 7, 9, 10, 5, 7, 7, 9, 6, 10, 6, 4, 7, 1, 9, 6, 3, 7, 3, 4, 5, 7, 6, 9, 7, 4, 6, 9, 2, 2, 6, 2, 7, 10, 8, 1, 6, 7, 5, 7, 4, 8, 3, 3, 2, 4, 7, 6, 4, 7, 5, 10, 5, 8, 1, 4, 1, 5, 8, 8, 8, 8, 10, 4, 10, 7, 7, 10, 2, 5, 8, 1, 5, 3, 6, 3, 5, 1, 1, 5, 7, 3, 1, 2, 2, 9, 1, 4, 6, 2, 8, 10, 10, 5, 7, 7, 10, 6, 3, 5, 2, 4, 4, 8, 7, 7, 2, 7, 2, 7, 7, 7, 8, 8, 1, 3, 6, 1, 5, 7, 8, 8, 1, 3, 7, 8, 10, 10, 1, 1, 2, 2, 5, 5, 5, 2, 7, 2, 3, 1, 7, 2, 10, 7, 3, 10, 5, 9, 7, 9, 3, 5, 6, 4, 9, 8, 7, 1, 7, 8, 2, 10, 6, 10, 2, 6, 3, 10, 1, 10, 3, 3, 9, 3, 7, 9, 6, 4, 4, 7, 2, 8, 8, 6, 1, 9, 10, 9, 1, 1, 6, 3, 4, 8, 1, 6, 3, 1, 5, 8, 3, 7, 6, 10, 8, 1, 10, 8, 1, 9, 8, 4, 5, 7, 5, 1, 5, 8, 6, 1, 4, 5, 4, 5, 3, 8, 6, 9, 10, 9, 6, 8, 9, 8, 4, 10, 3, 7, 2, 10, 9, 3, 2, 9, 2, 6, 1, 2, 5, 2, 7, 5, 7, 3, 8, 6, 5, 6, 2, 9, 4, 8, 5, 3, 8, 8, 9, 9, 6, 7, 6, 8, 7, 8, 2, 4, 3, 7, 9, 6, 2, 10, 7, 9, 2, 10, 7, 1, 6, 3, 5, 4, 8, 10, 2, 2, 8, 1, 5, 10, 8, 4, 10, 2, 5, 4, 10, 6, 9, 5, 3, 6, 2, 7, 7, 5, 4, 1, 1, 6, 10, 9, 2, 3, 1, 3, 1, 7, 8, 3, 9, 7, 3, 4, 9, 6, 9, 1, 8, 8, 8, 9, 5, 6, 7, 2, 8, 5, 1, 5, 9, 10, 7, 6, 5, 3, 7, 4, 8, 10, 5, 6, 10, 1, 9, 8, 5, 6, 8, 1, 3, 8, 4, 3, 9, 1, 7, 7, 7, 9, 8, 6, 4, 10, 6, 2, 1, 1, 4, 8, 4, 10, 1, 3, 6, 5, 10, 4, 9, 6, 4, 3, 9, 2, 6, 5, 2, 3, 10, 2, 1, 5, 8, 3, 4, 1, 4, 2, 8, 4, 2, 1, 6, 4, 6, 7, 1, 4, 1, 1, 7, 6, 4, 10, 8, 3, 9, 10, 5, 2, 7, 6, 7, 3, 5, 4, 8, 3, 2, 4, 5, 10, 7, 7, 5, 1, 2, 7, 6, 4, 3, 5, 9, 5, 1, 8, 10, 8, 7, 2, 10, 6, 5, 9, 4, 8, 6, 4, 3, 5, 3, 6, 8, 2, 3, 6, 3, 2, 2, 1, 3, 7, 1, 4, 2, 10, 10, 8, 4, 5, 9, 8, 8, 4, 5, 10, 1, 7, 8, 8, 7, 4, 1, 2, 5, 9, 1, 1, 9, 3, 6, 3, 1, 6, 1, 10, 3, 5, 1, 10, 3, 7, 2, 10, 5, 8, 6, 4, 1, 5, 5, 4, 1, 10, 5, 2, 5, 10, 8, 6, 5, 5, 10, 7, 5, 9, 5, 4, 6, 10, 3, 4, 9, 1, 3, 7, 9, 4, 2, 10, 10, 10, 5, 4, 9, 7, 6, 1, 6, 8, 3, 6, 4, 4, 5, 8, 1, 4, 10, 6, 7, 8, 2, 10, 8, 1, 3, 10, 5, 9, 8, 8, 8, 1, 8, 4, 4, 3, 9, 10, 4, 2, 10, 8, 2, 10, 2, 4, 1, 10, 4, 10, 9, 7, 5, 4, 6, 9, 8, 4, 6, 5, 10, 10, 7, 6, 1, 3, 6, 4, 5, 9, 9, 8, 4, 2, 9, 4, 8, 6, 4, 6, 4, 4, 4, 8, 7, 8, 10, 9, 8, 4, 6, 2, 6, 8, 8, 9, 7, 2, 5, 2, 8, 9, 7, 3, 1, 9, 2, 5, 7, 1, 9, 3, 2, 5, 9, 1, 4, 5, 3, 6, 9, 3, 8, 1, 7, 4, 8, 6, 6, 3, 10, 2, 8, 3, 4, 3, 10, 10, 1, 7, 8, 5, 2, 2, 4, 2, 8, 3, 7, 5, 10, 1, 7, 1, 9, 2, 7, 8, 4, 4, 6, 6, 10, 1, 4, 7, 1, 1, 7, 8, 3, 3, 3, 4, 8, 1, 10, 4, 5, 3, 3, 3, 5, 3, 1, 6, 6, 2, 9, 6, 8, 9, 7, 1, 10, 3, 7, 2, 6, 6, 10, 10, 2, 4, 10, 10, 9, 5, 10, 4, 2, 6, 3, 2, 2, 4, 5, 10, 8, 3, 8, 4, 7, 5, 4, 7, 5, 7, 4, 7, 3, 4, 7, 7, 7, 8, 5, 7, 1, 8, 6, 3, 2, 2, 8, 3, 3, 10, 9, 3, 8, 6, 1, 9, 8, 7, 3, 3, 10, 4, 10, 10, 5, 3, 6, 8, 6, 3, 7, 5, 9, 10, 3, 4, 10, 7, 9, 3, 2, 1, 10, 8, 7, 4, 5, 7, 10, 7, 2, 6, 4, 1, 2, 5, 9, 9, 4, 5, 10, 4, 7, 6, 2, 10, 7, 8, 10, 10, 5, 1, 2, 10, 1, 3, 7, 5, 4, 8, 6, 1, 10, 8, 6, 6, 6, 5, 2, 6, 4, 6, 6, 10, 10, 5, 8, 6, 4, 10, 3, 6, 5, 9, 1, 3, 3, 7, 9, 6, 4, 1, 7, 6, 2, 1, 10, 9, 5, 4, 5, 6, 7, 7, 5, 4, 5, 1, 8, 9, 7, 9, 7, 2, 2, 3, 3, 1, 10, 10, 8, 4, 10, 9, 5, 6, 4, 2, 4, 6, 1, 9, 4, 10, 1, 5, 8, 7, 9, 1, 7, 9, 10, 4, 9, 1, 9, 9, 2, 9, 6, 9, 8, 1, 7, 6, 1, 5, 2, 6, 2, 3, 3, 5, 5, 10, 10, 3, 9, 9, 10, 7, 2, 3, 2, 3, 8, 6, 7, 9, 3, 6, 2, 6, 6, 1, 3, 2, 10, 1, 7, 5, 8, 3, 7, 2, 8, 6, 10, 6, 5, 4, 4, 1, 3, 5, 7, 1, 2, 8, 8, 10, 8, 3, 10, 2, 4, 9, 2, 5, 1, 2, 3, 8, 5, 3, 4, 5, 1, 1, 7, 3, 1, 2, 9, 10, 9, 3, 10, 7, 5, 3, 2, 6, 7, 6, 7, 5, 10, 6, 1, 1, 8, 8, 1, 4, 7, 1, 9, 8, 8, 3, 4, 1, 10, 4, 3, 3, 3, 9, 7, 1, 1, 3, 9, 5, 10, 4, 10, 7, 6, 6, 7, 6, 5, 7, 5, 1, 6, 3, 10, 5, 10, 10, 7, 3, 10, 3, 2, 5, 4, 4, 8, 6, 8, 7, 8, 2, 1, 1, 2, 1, 10, 5, 3, 2, 3, 2, 7, 2, 6, 9, 9, 6, 2, 3, 3, 5, 6, 9, 10, 6, 4, 6, 5, 9, 8, 4, 8, 5, 7, 10, 9, 8, 9, 6, 9, 8, 9, 5, 8, 9, 1, 1, 8, 6, 10, 10, 3, 10, 5, 5, 1, 10, 8, 7, 5, 10, 4, 2, 2, 5, 9, 5, 7, 1, 6, 6, 3, 1, 3, 10, 9, 2, 2, 3, 5, 4, 9, 4, 4, 2, 3, 9, 1, 8, 7, 3, 4, 3, 8, 1, 5, 1, 3, 10, 4, 6, 4, 7, 5, 3, 3, 7, 2, 7, 5, 9, 10, 5, 3, 3, 8, 9, 5, 7, 8, 1, 4, 2, 1, 7, 8, 1, 5, 3, 9, 6, 10, 3, 1, 6, 5, 6, 8, 10, 5, 5, 3, 5, 4, 7, 10, 2, 6, 7, 8, 2, 6, 10, 3, 7, 3, 7, 4, 8, 6, 2, 3, 5, 4, 4, 1, 5, 6, 7, 6, 7, 6, 4, 6, 2, 1, 3, 2, 5, 3, 8, 10, 5, 4, 7, 8, 10, 1, 10, 6, 1, 9, 8, 6, 1, 4, 9, 6, 8, 1, 10, 6, 6, 6, 7, 6, 6, 5, 5, 2, 1, 1, 2, 10, 8, 10, 2, 1, 9, 8, 3, 1, 8, 1, 5, 7, 8, 1, 6, 6, 9, 1, 10, 5, 7, 10, 5, 8, 8, 8, 8, 1, 9, 4, 9, 5, 9, 4, 4, 9, 5, 8, 7, 2, 2, 10, 3, 10, 6, 5, 2, 8, 10, 3, 6, 8, 2, 6, 7, 8, 8, 5, 2, 9, 8, 2, 9, 7, 8, 10, 9, 10, 4, 4, 5, 5, 10, 8, 1, 6, 5, 4, 3, 2, 2, 4, 4, 2, 1, 4, 3, 10, 5, 3, 9, 8, 7, 8, 10, 4, 8, 9, 10, 5, 1, 8, 7, 9, 8, 6, 7, 3, 9, 9, 8, 2, 1, 4, 5, 6, 8, 5, 9, 10, 6, 9, 5, 9, 8, 2, 10, 5, 6, 9, 5, 3, 8, 1, 7, 3, 9, 3, 6, 1, 9, 1, 9, 7, 8, 4, 3, 3, 1, 2, 8, 3, 6, 5, 10, 5, 3, 4, 6, 1, 1, 9, 10, 10, 8, 4, 8, 4, 4, 3, 1, 9, 7, 4, 2, 7, 3, 3, 7, 4, 9, 2, 5, 6, 1, 3, 6, 5, 10, 7, 7, 10, 3, 2, 8, 6, 2, 2, 3, 4, 8, 10, 4, 3, 10, 1, 1, 4, 10, 1, 2, 5, 1, 8, 1, 6, 1, 10, 7, 9, 4, 7, 8, 7, 3, 9, 9, 5, 5, 6, 4, 7, 7, 6, 9, 1, 4, 8, 10, 10, 1, 10, 3, 9, 6, 10, 1, 7, 3, 4, 7, 7, 7, 8, 10, 6, 9, 3, 6, 6, 4, 2, 7, 4, 3, 10, 2, 4, 2, 10, 2, 4, 2, 7, 2, 9, 3, 4, 2, 9, 4, 8, 5, 1, 3, 8, 3, 5, 5, 10, 7, 6, 5, 5, 9, 9, 1, 4, 5, 8, 5, 7, 8, 9, 3, 8, 7, 10, 6, 3, 4, 6, 1, 4, 4, 7, 6, 1, 7, 10, 8, 2, 8, 10, 7, 3, 9, 9, 9, 6, 3, 1, 2, 9, 9, 8, 4, 5, 9, 2, 8, 4, 8, 8, 2, 9, 9, 1, 6, 4, 3, 10, 9, 7, 3, 3, 4, 1, 5, 8, 10, 8, 7, 2, 6, 2, 1, 6, 5, 2, 2, 7, 5, 2, 4, 3, 9, 2, 4, 4, 8, 6, 10, 8, 5, 9, 1, 4, 7, 4, 3, 2, 3, 5, 3, 7, 7, 7, 5, 8, 10, 8, 5, 1, 8, 3, 1, 10, 7, 4, 6, 10, 3, 10, 4, 8, 4, 9, 5, 10, 10, 4, 4, 5, 7, 1, 2, 10, 2, 9, 10, 7, 5, 9, 4, 8, 10, 7, 3, 1, 9, 6, 5, 4, 2, 8, 4, 3, 7, 7, 8, 1, 10, 1, 8, 2, 7, 9, 7, 6, 10, 5, 9, 2, 3, 5, 6, 4, 3, 5, 3, 2, 5, 7, 3, 10, 8, 6, 6, 3, 3, 6, 1, 3, 5, 6, 3, 10, 3, 1, 5, 10, 4, 2, 10, 7, 8, 8, 2, 1, 8, 6, 1, 9, 10, 1, 4, 5, 8, 3, 9, 5, 4, 7, 1, 9, 10, 1, 9, 7, 7, 10, 3, 3, 8, 8, 9, 5, 3, 8, 8, 5, 5, 2, 1, 10, 1, 5, 8, 1, 4, 6, 4, 4, 7, 3, 3, 7, 6, 1, 8, 6, 2, 8, 1, 7, 3, 2, 1, 3, 8, 10, 1, 4, 1, 10, 8, 9, 6, 4, 8, 10, 2, 3, 2, 1, 2, 2, 4, 2, 6, 8, 2, 1, 2, 8, 10, 1, 6, 8, 7, 6, 2, 10, 8, 6, 7, 6, 9, 5, 3, 2, 7, 4, 4, 9, 2, 8, 2, 10, 5, 5, 9, 9, 2, 9, 6, 1, 4, 5, 10, 4, 7, 7, 9, 3, 9, 3, 2, 8, 4, 9, 2, 6, 3, 6, 4, 5, 10, 6, 5, 9, 2, 9, 9, 9, 1, 3, 8, 6, 9, 2, 8, 5, 3, 10, 2, 10, 10, 1, 7, 5, 8, 7, 9, 1, 2, 10, 2, 10, 6, 9, 3, 6, 2, 9, 8, 1, 4, 10, 8, 2, 5, 3, 9, 8, 8, 9, 7, 2, 2, 2, 2, 6, 8, 7, 2, 5, 8, 7, 8, 10, 5, 8, 8, 7, 9, 9, 1, 1, 5, 10, 6, 4, 7, 2, 6, 9, 1, 6, 2, 3, 2, 10, 8, 1, 6, 10, 2, 4, 6, 1, 7, 3, 7, 9, 1, 1, 7, 7, 5, 1, 6, 3, 2, 5, 5, 3, 9, 4, 7, 4, 10, 6, 8, 8, 8, 6, 10, 9, 6, 8, 10, 1, 8, 5, 8, 3, 2, 8, 6, 7, 4, 1, 4, 3, 1, 8, 4, 6, 10, 3, 2, 5, 10, 2, 10, 2, 7, 8, 8, 4, 1, 7, 9, 3, 3, 8, 5, 2, 4, 5, 10, 5, 10, 1, 7, 10, 10, 1, 2, 1, 1, 6, 1, 5, 4, 2, 5, 1, 9, 2, 7, 10, 8, 6, 8, 5, 4, 7, 4, 3, 7, 9, 6, 5, 4, 8, 8, 10, 2, 10, 8, 6, 2, 6, 4, 10, 2, 10, 2, 10, 4, 1, 4, 5, 2, 9, 9, 8, 2, 10, 10, 3, 2, 1, 3, 10, 9, 4, 7, 8, 1, 2, 1, 9, 6, 7, 2, 8, 4, 9, 7, 10, 2, 8, 8, 3, 8, 7, 7, 1, 8, 7, 8, 5, 4, 8, 6, 2, 3, 7, 2, 9, 5, 8, 5, 6, 9, 8, 3, 8, 9, 4, 6, 5, 1, 8, 6, 7, 2, 4, 4, 4, 2, 3, 4, 10, 3, 3, 6, 3, 5, 9, 7, 6, 5, 2, 1, 10, 1, 3, 4, 7, 7, 6, 9, 8, 9, 7, 8, 5, 1, 9, 3, 10, 6, 7, 1, 4, 6, 5, 7, 1, 8, 5, 10, 8, 8, 1, 3, 9, 10, 6, 7, 4, 2, 8, 9, 1, 8, 3, 6, 9, 6, 7, 8, 3, 2, 3, 8, 2, 2, 2, 5, 8, 5, 5, 7, 4, 10, 4, 9, 5, 2, 3, 5, 10, 3, 4, 1, 4, 3, 3, 5, 5, 9, 3, 3, 10, 5, 8, 1, 6, 7, 2, 8, 1, 1, 1, 5, 10, 2, 8, 5, 2, 5, 2, 6, 1, 5, 1, 7, 1, 9, 6, 10, 10, 10, 5, 4, 1, 8, 10, 3, 8, 7, 4, 1, 1, 6, 7, 7, 8, 8, 5, 6, 8, 6, 5, 7, 3, 8, 6, 4, 8, 4, 3, 6, 3, 1, 8, 7, 2, 3, 3, 5, 7, 4, 2, 6, 2, 1, 9, 6, 1, 10, 6, 1, 8, 4, 6, 10, 5, 5, 1, 5, 1, 5, 5, 6, 8, 7, 7, 6, 5, 9, 1, 3, 5, 4, 4, 2, 7, 7, 2, 8, 5, 1, 2, 4, 7, 10, 7, 8, 5, 3, 1, 4, 10, 5, 1, 2, 2, 7, 9, 5, 5, 7, 8, 9, 1, 9, 8, 3, 6, 4, 7, 8, 8, 9, 2, 9, 4, 1, 10, 9, 3, 7, 6, 10, 7, 7, 5, 7, 5, 7, 1, 2, 6, 6, 7, 1, 7, 2, 6, 6, 8, 10, 5, 8, 5, 8, 2, 9, 6, 8, 1, 8, 4, 4, 10, 2, 9, 9, 7, 6, 5, 3, 8, 3, 8, 3, 2, 10, 7, 6, 4, 6, 9, 1, 9, 4, 2, 9, 6, 5, 5, 3, 8, 9, 8, 7, 7, 2, 5, 3, 2, 9, 5, 9, 9, 3, 5, 6, 5, 4, 7, 9, 9, 4, 6, 8, 4, 2, 1, 10, 8, 5, 9, 1, 6, 10, 2, 8, 10, 6, 1, 5, 10, 9, 6, 1, 5, 3, 7, 8, 8, 5, 10, 3, 6, 1, 6, 7, 7, 4, 10, 8, 3, 10, 5, 5, 9, 9, 1, 8, 7, 5, 2, 5, 1, 2, 2, 5, 9, 2, 9, 3, 5, 9, 4, 6, 9, 6, 10, 6, 8, 7, 9, 5, 9, 3, 2, 2, 2, 4, 10, 9, 10, 5, 5, 2, 7, 9, 2, 3, 1, 5, 9, 5, 4, 8, 3, 8, 7, 6, 1, 7, 4, 7, 2, 7, 7, 10, 5, 5, 9, 3, 4, 8, 1, 8, 9, 5, 8, 8, 5, 8, 6, 4, 7, 9, 1, 7, 4, 7, 10, 8, 8, 9, 7, 10, 9, 5, 3, 2, 2, 5, 10, 4, 10, 4, 5, 10, 2, 3, 8, 4, 7, 8, 4, 3, 7, 2, 4, 4, 1, 7, 3, 7, 3, 8, 1, 9, 4, 6, 4, 2, 7, 1, 4, 7, 3, 8, 5, 8, 6, 9, 2, 5, 10, 3, 9, 6, 5, 9, 2, 4, 4, 6, 7, 6, 1, 9, 6, 3, 4, 9, 7, 2, 3, 4, 9, 2, 2, 9, 8, 6, 7, 5, 9, 8, 5, 4, 4, 2, 10, 9, 3, 7, 6, 5, 2, 6, 10, 10, 10, 6, 9, 5, 1, 3, 9, 8, 1, 3, 3, 2, 2, 4, 5, 6, 4, 3, 10, 2, 10, 7, 5, 2, 2, 9, 8, 4, 6, 9, 9, 2, 9, 10, 10, 3, 6, 2, 6, 1, 6, 8, 9, 1, 5, 7, 2, 9, 3, 3, 1, 5, 7, 1, 4, 6, 5, 2, 10, 9, 8, 5, 2, 5, 10, 2, 1, 8, 5, 6, 5, 5, 2, 4, 5, 5, 2, 8, 7, 9, 6, 1, 5, 7, 1, 7, 1, 1, 6, 8, 10, 9, 3, 5, 8, 10, 8, 5, 6, 10, 3, 5, 2, 1, 7, 7, 2, 8, 3, 8, 8, 3, 10, 5, 1, 9, 6, 4, 2, 1, 3, 3, 7, 5, 4, 7, 6, 9, 6, 10, 10, 9, 2, 5, 8, 6, 10, 8, 10, 7, 6, 6, 1, 1, 6, 5, 6, 10, 5, 4, 3, 9, 4, 10, 9, 1, 3, 6, 10, 1, 10, 9, 8, 3, 8, 9, 7, 1, 5, 4, 1, 10, 3, 9, 9, 2, 1, 9, 6, 4, 10, 4, 1, 10, 1, 7, 2, 7, 10, 7, 2, 2, 6, 2, 3, 3, 4, 1, 8, 8, 9, 4, 8, 8, 3, 2, 1, 3, 5, 8, 8, 7, 7, 2, 3, 8, 10, 10, 8, 8, 2, 1, 7, 8, 9, 1, 8, 3, 4, 7, 1, 2, 3, 8, 1, 1, 3, 7, 3, 7, 1, 1, 8, 3, 5, 5, 5, 1, 3, 3, 3, 8, 4, 6, 6, 1, 8, 8, 5, 4, 2, 5, 3, 1, 9, 6, 1, 3, 7, 9, 2, 4, 2, 7, 10, 2, 3, 8, 1, 8, 8, 10, 2, 10, 10, 1, 1, 5, 8, 2, 9, 8, 10, 2, 8, 9, 6, 8, 5, 6, 9, 10, 8, 9, 9, 5, 5, 8, 4, 7, 10, 1, 4, 9, 4, 6, 8, 7, 8, 8, 10, 9, 10, 6, 3, 6, 5, 5, 10, 7, 3, 10, 10, 1, 5, 9, 9, 4, 9, 8, 9, 7, 7, 3, 8, 9, 5, 1, 2, 8, 7, 7, 2, 10, 4, 6, 7, 7, 4, 5, 9, 10, 10, 7, 9, 9, 6, 3, 3, 10, 8, 8, 7, 1, 9, 8, 2, 1, 10, 1, 6, 8, 7, 6, 10, 4, 6, 7, 6, 6, 8, 8, 7, 1, 10, 2, 3, 1, 6, 4, 1, 3, 4, 5, 1, 7, 5, 7, 4, 2, 10, 7, 8, 8, 1, 10, 9, 7, 5, 1, 9, 3, 1, 7, 3, 1, 8, 3, 7, 7, 7, 1, 7, 6, 9, 6, 6, 1, 9, 2, 6, 2, 7, 9, 5, 5, 8, 6, 9, 8, 3, 10, 7, 7, 7, 5, 9, 2, 8, 10, 3, 6, 1, 7, 6, 4, 10, 3, 7, 5, 8, 7, 8, 8, 4, 9, 8, 9, 2, 2, 9, 2, 10, 5, 3, 5, 3, 4, 1, 9, 6, 5, 5, 4, 3, 7, 10, 3, 2, 10, 6, 8, 1, 1, 6, 10, 8, 7, 1, 6, 9, 9, 3, 6, 4, 10, 5, 4, 10, 6, 9, 6, 7, 3, 10, 5, 4, 10, 10, 2, 7, 2, 5, 7, 4, 5, 5, 10, 6, 4, 1, 8, 7, 6, 10, 5, 1, 7, 2, 9, 9, 1, 10, 10, 6, 2, 1, 10, 9, 6, 5, 6, 4, 2, 9, 10, 9, 5, 2, 8, 5, 7, 2, 1, 5, 8, 7, 1, 4, 10, 5, 4, 3, 4, 4, 6, 10, 10, 5, 6, 4, 4, 7, 5, 7, 2, 8, 10, 1, 6, 1, 5, 3, 1, 5, 10, 5, 9, 10, 9, 6, 3, 5, 6, 2, 8, 6, 9, 5, 10, 5, 9, 9, 10, 4, 4, 7, 1, 4, 1, 10, 9, 7, 4, 2, 10, 8, 3, 10, 6, 2, 5, 5, 10, 5, 9, 9, 10, 7, 6, 3, 8, 4, 9, 2, 1, 4, 7, 10, 2, 6, 2, 10, 1, 6, 7, 1, 3, 4, 10, 1, 2, 2, 6, 2, 4, 7, 9, 8, 6, 9, 5, 10, 2, 1, 7, 10, 10, 9, 1, 3, 1, 1, 1, 6, 8, 5, 10, 2, 8, 6, 7, 1, 3, 8, 2, 3, 4, 5, 2, 8, 6, 1, 9, 7, 10, 6, 7, 7, 4, 8, 4, 1, 10, 9, 3, 2, 4, 9, 10, 9, 8, 7, 5, 8, 10, 3, 7, 5, 3, 2, 8, 3, 10, 1, 3, 9, 4, 3, 7, 7, 5, 3, 9, 8, 6, 5, 6, 6, 2, 9, 3, 4, 10, 2, 2, 5, 6, 1, 1, 5, 4, 9, 10, 2, 8, 9, 5, 4, 4, 6, 10, 6, 9, 3, 9, 3, 10, 10, 4, 8, 1, 5, 3, 10, 3, 10, 10, 3, 7, 9, 4, 8, 9, 7, 8, 9, 9, 10, 6, 9, 8, 1, 8, 8, 5, 5, 4, 3, 10, 1, 5, 5, 10, 3, 7, 6, 1, 9, 1, 5, 4, 2, 5, 1, 5, 6, 1, 10, 5, 10, 8, 4, 5, 7, 3, 5, 4, 4, 10, 7, 4, 2, 6, 2, 7, 10, 5, 5, 4, 10, 3, 8, 8, 1, 8, 9, 7, 7, 1, 10, 4, 2, 8, 6, 8, 2, 3, 9, 2, 6, 2, 3, 6, 4, 7, 7, 5, 1, 4, 8, 10, 7, 4, 4, 10, 4, 2, 8, 6, 4, 5, 8, 7, 4, 5, 5, 1, 5, 8, 10, 10, 9, 5, 9, 1, 5, 6, 1, 7, 1, 2, 4, 9, 3, 6, 8, 7, 2, 7, 9, 5, 8, 10, 10, 5, 5, 10, 9, 4, 6, 8, 10, 7, 5, 3, 10, 1, 5, 10, 9, 3, 1, 3, 8, 4, 7, 7, 8, 4, 4, 2, 6, 1, 3, 7, 8, 6, 2, 2, 8, 6, 2, 8, 6, 10, 2, 3, 1, 6, 3, 5, 9, 2, 10, 3, 1, 6, 7, 9, 9, 8, 8, 3, 3, 9, 8, 9, 4, 7, 7, 7, 4, 5, 3, 2, 6, 8, 8, 1, 3, 8, 5, 7, 8, 5, 3, 3, 8, 8, 7, 5, 1, 2, 7, 10, 5, 3, 5, 10, 6, 9, 7, 9, 3, 3, 8, 10, 2, 7, 9, 9, 2, 1, 9, 3, 10, 2, 8, 4, 1, 5, 8, 3, 1, 10, 10, 2, 2, 5, 4, 2, 3, 8, 2, 7, 7, 6, 6, 10, 8, 1, 5, 6, 6, 1, 6, 5, 2, 1, 2, 3, 5, 6, 2, 2, 9, 3, 7, 1, 8, 8, 9, 4, 2, 8, 4, 5, 10, 9, 4, 5, 5, 4, 10, 6, 9, 1, 9, 7, 2, 9, 1, 6, 10, 7, 1, 2, 7, 4, 3, 6, 5, 9, 10, 10, 4, 5, 9, 10, 8, 6, 6, 9, 2, 5, 9, 1, 5, 7, 8, 10, 7, 6, 7, 1, 3, 10, 6, 5, 8, 1, 1, 1, 7, 2, 9, 6, 9, 9, 5, 2, 3, 1, 3, 10, 9, 9, 6, 8, 9, 6, 8, 7, 3, 7, 8, 8, 2, 10, 9, 2, 2, 3, 8, 3, 5, 10, 6, 8, 6, 7, 10, 7, 7, 4, 8, 3, 5, 6, 5, 9, 2, 3, 7, 9, 4, 7, 8, 4, 9, 10, 9, 8, 1, 3, 8, 2, 8, 7, 2, 3, 2, 4, 5, 6, 3, 3, 7, 10, 1, 4, 5, 5, 8, 10, 5, 7, 6, 5, 1, 4, 9, 1, 7, 3, 3, 2, 4, 5, 3, 9, 5, 5, 5, 8, 3, 3, 1, 7, 2, 6, 2, 6, 10, 7, 5, 9, 10, 4, 7, 7, 4, 8, 5, 2, 10, 3, 2, 9, 5, 10, 10, 6, 4, 2, 8, 3, 8, 1, 10, 10, 3, 1, 4, 8, 6, 2, 1, 6, 3, 2, 4, 8, 4, 9, 4, 8, 10, 3, 4, 3, 9, 9, 10, 5, 5, 1, 4, 6, 6, 6, 1, 4, 1, 3, 9, 4, 1, 3, 7, 4, 10, 4, 7, 4, 5, 1, 3, 4, 2, 3, 5, 4, 9, 7, 7, 5, 6, 10, 8, 1, 4, 1, 6, 8, 5, 2, 4, 2, 9, 9, 1, 2, 9, 6, 2, 2, 1, 1, 7, 10, 5, 7, 10, 5, 1, 4, 10, 7, 6, 4, 10, 4, 8, 9, 10, 7, 3, 8, 8, 6, 7, 1, 2, 6, 8, 4, 6, 1, 6, 4, 8, 8, 8, 1, 6, 6, 8, 7, 7, 2, 5, 1, 4, 7, 8, 6, 10, 4, 1, 6, 7, 4, 5, 1, 1, 7, 9, 8, 3, 6, 6, 7, 1, 2, 2, 9, 8, 3, 3, 3, 6, 9, 1, 2, 3, 6, 1, 3, 3, 9, 9, 5, 4, 8, 5, 6, 6, 1, 8, 10, 6, 4, 7, 8, 5, 3, 2, 7, 1, 7, 1, 7, 7, 2, 4, 1, 1, 10, 3, 3, 2, 9, 8, 2, 8, 6, 7, 2, 8, 10, 5, 9, 6, 1, 9, 3, 6, 5, 2, 1, 5, 8, 3, 10, 7, 3, 3, 10, 7, 3, 6, 1, 9, 10, 2, 9, 7, 3, 5, 6, 5, 4, 2, 2, 3, 3, 4, 9, 2, 8, 2, 8, 5, 10, 7, 6, 9, 4, 3, 9, 4, 10, 7, 3, 4, 6, 8, 10, 6, 10, 4, 3, 6, 7, 7, 1, 6, 6, 6, 5, 6, 2, 9, 10, 9, 8, 3, 10, 1, 6, 1, 7, 10, 2, 2, 4, 1, 7, 7, 8, 7, 1, 10, 6, 7, 8, 6, 6, 9, 5, 9, 5, 2, 2, 6, 5, 1, 10, 2, 5, 2, 2, 4, 6, 2, 7, 10, 8, 5, 3, 4, 7, 2, 3, 3, 8, 2, 3, 7, 2, 4, 2, 5, 9, 2, 9, 6, 1, 3, 4, 5, 5, 7, 5, 3, 6, 3, 9, 8, 9, 2, 4, 8, 4, 8, 8, 2, 2, 4, 3, 2, 3, 10, 7, 2, 9, 9, 7, 8, 7, 1, 6, 10, 7, 5, 7, 10, 9, 2, 7, 4, 10, 10, 6, 7, 3, 10, 8, 1, 4, 10, 4, 5, 1, 8, 2, 10, 4, 4, 6, 10, 7, 4, 1, 8, 4, 9, 4, 7, 1, 9, 8, 4, 9, 6, 4, 7, 6, 8, 2, 10, 2, 4, 7, 8, 9, 2, 2, 9, 1, 9, 9, 2, 5, 9, 10, 7, 6, 5, 6, 3, 9, 2, 4, 3, 1, 9, 8, 9, 10, 5, 7, 8, 6, 8, 9, 7, 8, 8, 9, 3, 4, 5, 1, 2, 1, 6, 6, 6, 7, 2, 7, 5, 10, 7, 5, 10, 4, 3, 2, 8, 8, 4, 10, 4, 1, 1, 8, 10, 6, 7, 1, 8, 2, 3, 8, 8, 9, 4, 1, 2, 4, 10, 1, 1, 1, 10, 8, 3, 4, 6, 7, 1, 4, 8, 10, 6, 4, 9, 9, 10, 7, 8, 4, 6, 10, 6, 4, 4, 6, 9, 9, 5, 2, 3, 6, 3, 7, 8, 1, 3, 2, 5, 7, 4, 5, 9, 6, 5, 7, 8, 1, 10, 6, 8, 8, 7, 2, 1, 3, 3, 9, 2, 1, 6, 6, 5, 9, 7, 2, 1, 8, 3, 10, 2, 9, 6, 6, 8, 3, 3, 8, 3, 2, 7, 7, 7, 6, 6, 1, 1, 2, 10, 7, 10, 5, 6, 5, 3, 10, 6, 2, 3, 1, 5, 1, 8, 8, 5, 4, 1, 10, 4, 7, 8, 6, 3, 2, 7, 1, 8, 2, 9, 9, 1, 1, 9, 2, 2, 5, 6, 2, 1, 1, 4, 10, 8, 5, 9, 8, 7, 9, 1, 7, 2, 9, 6, 8, 4, 9, 6, 3, 10, 1, 7, 8, 2, 8, 8, 1, 8, 5, 5, 4, 6, 7, 2, 10, 7, 10, 6, 5, 3, 8, 6, 9, 9, 6, 9, 8, 6, 10, 8, 10, 8, 6, 4, 3, 3, 9, 6, 3, 7, 7, 7, 9, 1, 4, 10, 10, 6, 10, 6, 8, 1, 10, 7, 9, 1, 10, 7, 1, 5, 3, 1, 8, 8, 3, 2, 10, 5, 7, 6, 4, 9, 10, 6, 6, 3, 10, 8, 9, 5, 7, 4, 6, 6, 9, 8, 4, 1, 8, 7, 9, 3, 1, 6, 2, 1, 8, 9, 2, 5, 9, 2, 9, 5, 3, 7, 2, 3, 6, 3, 1, 8, 9, 7, 2, 3, 1, 7, 6, 8, 8, 2, 4, 6, 8, 6, 8, 10, 6, 8, 4, 6, 6, 9, 5, 1, 10, 4, 1, 2, 5, 5, 7, 3, 7, 10, 9, 8, 2, 5, 1, 6, 7, 7, 1, 1, 2, 7, 4, 1, 6, 3, 6, 2, 9, 6, 8, 7, 10, 3, 9, 5, 7, 2, 3, 8, 7, 1, 6, 1, 9, 5, 7, 9, 1, 5, 2, 2, 7, 9, 8, 8, 10, 2, 3, 9, 2, 1, 9, 1, 2, 10, 2, 10, 6, 9, 9, 7, 2, 5, 4, 2, 7, 2, 10, 9, 9, 8, 3, 8, 9, 7, 8, 1, 3, 6, 8, 9, 3, 5, 4, 3, 5, 9, 8, 4, 3, 9, 3, 8, 1, 5, 7, 9, 1, 9, 4, 2, 6, 8, 5, 4, 2, 7, 4, 10, 5, 6, 5, 1, 9, 6, 6, 10, 2, 5, 10, 8, 6, 6, 6, 6, 2, 7, 9, 5, 8, 3, 3, 7, 8, 8, 4, 1, 6, 3, 8, 5, 8, 3, 10, 7, 6, 3, 9, 3, 1, 2, 6, 7, 4, 7, 6, 8, 10, 6, 4, 7, 9, 9, 9, 7, 7, 6, 2, 5, 2, 1, 6, 9, 5, 4, 5, 5, 10, 2, 7, 4, 8, 1, 3, 4, 10, 4, 3, 5, 3, 3, 5, 8, 1, 10, 10, 7, 8, 2, 5, 4, 3, 6, 6, 2, 6, 5, 7, 1, 3, 9, 3, 4, 9, 2, 3, 9, 6, 3, 5, 6, 4, 4, 9, 6, 4, 5, 10, 7, 3, 7, 9, 8, 8, 1, 1, 4, 1, 7, 6, 8, 5, 6, 3, 10, 1, 9, 5, 5, 5, 6, 3, 2, 8, 10, 5, 3, 6, 1, 10, 6, 2, 10, 3, 10, 9, 4, 9, 10, 1, 1, 7, 3, 8, 7, 1, 7, 9, 7, 8, 2, 10, 8, 4, 10, 2, 6, 8, 6, 6, 4, 8, 9, 7, 1, 5, 5, 7, 8, 10, 5, 3, 1, 10, 10, 1, 2, 6, 10, 7, 9, 5, 7, 8, 9, 3, 7, 8, 2, 1, 3, 9, 4, 7, 6, 9, 10, 7, 3, 6, 10, 1, 7, 8, 1, 6, 10, 2, 10, 1, 10, 1, 7, 9, 8, 9, 6, 10, 5, 4, 4, 3, 5, 2, 2, 1, 4, 7, 3, 9, 2, 5, 6, 7, 5, 9, 8, 2, 2, 5, 10, 7, 4, 5, 2, 8, 3, 10, 1, 9, 9, 10, 4, 7, 1, 1, 9, 4, 5, 6, 3, 10, 7, 3, 9, 8, 2, 7, 7, 4, 7, 7, 10, 4, 4, 3, 3, 9, 9, 9, 9, 4, 8, 1, 3, 6, 4, 7, 10, 3, 5, 4, 9, 4, 5, 8, 5, 5, 3, 7, 8, 7, 3, 9, 5, 2, 3, 8, 6, 4, 7, 2, 6, 1, 6, 3, 6, 4, 7, 1, 6, 10, 5, 8, 10, 1, 6, 8, 10, 7, 10, 3, 4, 6, 3, 6, 7, 10, 9, 9, 6, 2, 10, 4, 1, 7, 5, 4, 7, 3, 2, 8, 6, 1, 4, 3, 5, 1, 10, 8, 6, 2, 4, 1, 2, 8, 9, 10, 6, 9, 4, 7, 10, 7, 7, 2, 10, 7, 7, 10, 2, 3, 2, 5, 7, 9, 9, 5, 7, 8, 5, 2, 5, 6, 3, 3, 1, 7, 7, 5, 10, 8, 4, 7, 2, 2, 4, 10, 3, 4, 2, 7, 10, 6, 3, 4, 4, 7, 3, 6, 4, 5, 8, 7, 7, 2, 6, 9, 6, 9, 9, 10, 6, 8, 4, 2, 4, 2, 10, 5, 6, 6, 4, 7, 1, 6, 2, 9, 4, 3, 7, 6, 2, 9, 8, 8, 5, 7, 1, 2, 4, 2, 3, 1, 9, 3, 4, 8, 9, 2, 4, 2, 1, 2, 7, 8, 7, 3, 3, 2, 5, 5, 2, 7, 9, 1, 10, 10, 5, 5, 1, 1, 3, 4, 6, 9, 8, 3, 4, 7, 9, 2, 8, 10, 10, 6, 2, 2, 3, 5, 9, 4, 1, 2, 6, 3, 5, 5, 2, 9, 6, 9, 8, 10, 10, 4, 4, 1, 2, 6, 9, 5, 1, 7, 6, 9, 10, 9, 10, 7, 7, 2, 10, 3, 7, 5, 7, 9, 10, 6, 9, 5, 5, 1, 5, 10, 1, 1, 4, 4, 6, 1, 7, 8, 8, 6, 1, 7, 6, 5, 10, 3, 1, 7, 3, 10, 6, 5, 2, 7, 5, 5, 7, 4, 3, 3, 5, 2, 9, 10, 9, 10, 7, 1, 8, 9, 6, 9, 9, 9, 6, 9, 4, 6, 7, 10, 2, 9, 9, 2, 7, 10, 5, 5, 10, 3, 6, 1, 8, 8, 7, 5, 5, 6, 5, 6, 5, 4, 3, 1, 6, 1, 10, 6, 2, 10, 5, 10, 5, 10, 8, 9, 2, 4, 6, 10, 4, 3, 6, 1, 2, 7, 8, 10, 10, 10, 9, 2, 4, 8, 2, 3, 7, 6, 8, 2, 6, 2, 1, 10, 6, 1, 2, 9, 10, 5, 1, 4, 10, 4, 6, 2, 9, 3, 5, 8, 3, 9, 6, 3, 7, 8, 9, 6, 8, 7, 5, 2, 3, 4, 3, 3, 10, 1, 3, 10, 2, 5, 8, 4, 7, 8, 8, 2, 5, 3, 4, 7, 7, 9, 10, 2, 4, 7, 8, 7, 8, 2, 1, 7, 1, 3, 4, 10, 9, 3, 1, 8, 9, 10, 8, 7, 5, 8, 5, 9, 6, 3, 4, 6, 1, 7, 2, 3, 5, 9, 2, 9, 8, 5, 1, 7, 4, 3, 8, 3, 5, 2, 3, 2, 9, 6, 4, 9, 5, 7, 1, 2, 3, 4, 4, 6, 5, 5, 5, 3, 5, 3, 10, 6, 9, 5, 8, 7, 2, 4, 1, 2, 8, 5, 7, 8, 4, 6, 9, 10, 4, 3, 1, 1, 6, 8, 3, 7, 1, 7, 7, 7, 2, 3, 1, 3, 9, 3, 2, 2, 10, 9, 5, 5, 10, 1, 10, 5, 2, 5, 1, 5, 5, 9, 4, 10, 8, 1, 4, 1, 4, 2, 8, 2, 5, 10, 8, 10, 1, 3, 10, 7, 1, 2, 10, 7, 6, 9, 9, 5, 4, 2, 4, 7, 7, 2, 4, 3, 6, 10, 3, 2, 8, 10, 8, 6, 6, 8, 9, 8, 5, 2, 10, 8, 1, 8, 1, 6, 7, 10, 10, 10, 1, 6, 9, 8, 4, 8, 5, 3, 2, 7, 7, 8, 8, 1, 2, 7, 10, 4, 9, 3, 5, 4, 8, 1, 1, 8, 9, 6, 2, 2, 2, 8, 1, 5, 7, 4, 8, 10, 7, 4, 7, 6, 9, 10, 4, 6, 7, 7, 3, 9, 10, 8, 7, 1, 8, 2, 5, 2, 9, 1, 2, 9, 7, 9, 5, 6, 10, 7, 1, 5, 9, 9, 1, 10, 4, 5, 7, 1, 9, 4, 8, 9, 2, 9, 5, 9, 10, 4, 6, 6, 6, 7, 3, 5, 9, 1, 7, 2, 3, 4, 9, 4, 9, 3, 7, 4, 10, 8, 10, 10, 1, 7, 4, 3, 8, 3, 6, 5, 1, 8, 3, 9, 6, 5, 1, 5, 2, 2, 10, 9, 8, 10, 1, 1, 1, 6, 9, 10, 2, 7, 8, 9, 8, 10, 1, 8, 7, 4, 10, 6, 5, 7, 2, 3, 2, 8, 4, 5, 3, 7, 9, 5, 9, 2, 3, 7, 4, 8, 3, 2, 6, 1, 2, 4, 5, 2, 6, 1, 6, 8, 7, 9, 10, 6, 9, 4, 2, 8, 7, 3, 5, 6, 6, 8, 1, 9, 6, 8, 4, 9, 3, 4, 2, 8, 9, 8, 10, 10, 8, 5, 5, 5, 6, 4, 3, 5, 7, 4, 7, 3, 7, 2, 2, 4, 1, 3, 1, 10, 9, 10, 6, 7, 9, 7, 6, 6, 2, 8, 8, 1, 4, 7, 9, 1, 8, 10, 4, 8, 8, 5, 3, 8, 4, 4, 7, 4, 4, 6, 5, 9, 10, 7, 8, 9, 8, 3, 10, 1, 4, 9, 10, 8, 5, 3, 8, 7, 2, 2, 3, 5, 7, 7, 7, 10, 1, 3, 9, 8, 1, 3, 5, 1, 2, 3, 9, 4, 10, 2, 6, 1, 9, 9, 2, 4, 4, 2, 10, 10, 1, 4, 10, 10, 8, 10, 3, 10, 9, 3, 3, 7, 4, 4, 1, 3, 10, 7, 2, 2, 8, 8, 8, 4, 4, 6, 6, 4, 4, 9, 3, 6, 2, 7, 3, 1, 7, 5, 2, 7, 7, 4, 8, 5, 8, 8, 8, 7, 3, 6, 6, 8, 10, 2, 1, 6, 4, 5, 3, 4, 6, 6, 8, 3, 5, 4, 10, 1, 1, 7, 7, 7, 4, 3, 7, 7, 7, 10, 4, 8, 1, 10, 10, 3, 9, 6, 5, 6, 9, 10, 10, 2, 1, 7, 4, 2, 8, 9, 1, 4, 5, 8, 6, 4, 4, 5, 1, 3, 3, 6, 4, 10, 10, 7, 9, 7, 1, 7, 7, 9, 10, 7, 1, 4, 4, 9, 9, 9, 6, 7, 2, 4, 2, 2, 6, 1, 8, 8, 10, 6, 3, 7, 9, 7, 7, 7, 10, 7, 3, 3, 9, 5, 10, 10, 6, 6, 10, 1, 5, 2, 1, 2, 7, 4, 1, 4, 10, 8, 9, 3, 9, 1, 10, 4, 10, 1, 10, 6, 5, 2, 9, 6, 3, 9, 3, 3, 7, 2, 3, 1, 5, 6, 3, 8, 10, 9, 8, 7, 10, 2, 10, 1, 7, 7, 6, 6, 5, 8, 3, 3, 8, 4, 4, 1, 6, 1, 9, 6, 1, 4, 9, 6, 6, 2, 4, 4, 5, 2, 5, 9, 6, 7, 9, 6, 5, 4, 4, 5, 9, 9, 6, 5, 7, 6, 9, 1, 8, 10, 8, 3, 2, 6, 10, 2, 1, 8, 6, 1, 6, 2, 5, 4, 7, 1, 1, 10, 6, 10, 5, 3, 3, 4, 8, 7, 5, 8, 8, 4, 10, 5, 5, 5, 5, 4, 7, 7, 10, 3, 7, 3, 9, 1, 5, 1, 8, 1, 6, 2, 6, 5, 10, 3, 8, 10, 6, 6, 4, 2, 1, 4, 4, 2, 1, 7, 8, 9, 3, 9, 3, 2, 6, 4, 1, 9, 8, 4, 3, 10, 6, 9, 7, 3, 4, 6, 5, 6, 5, 3, 9, 6, 3, 4, 8, 1, 8, 10, 10, 8, 10, 9, 5, 10, 5, 2, 3, 9, 5, 5, 3, 9, 1, 6, 8, 7, 3, 10, 10, 2, 8, 10, 2, 6, 5, 4, 9, 4, 7, 9, 5, 10, 3, 7, 5, 8, 7, 5, 2, 10, 2, 7, 9, 1, 1, 1, 6, 9, 3, 4, 4, 4, 10, 8, 8, 6, 5, 2, 6, 2, 7, 5, 3, 4, 3, 6, 7, 7, 5, 3, 10, 5, 2, 3, 1, 4, 1, 7, 5, 6, 3, 5, 4, 6, 10, 3, 7, 7, 7, 8, 9, 2, 5, 3, 1, 10, 2, 10, 8, 5, 1, 3, 7, 5, 10, 8, 5, 9, 7, 3, 6, 5, 10, 8, 8, 7, 9, 6, 1, 10, 6, 1, 5, 5, 1, 4, 1, 3, 6, 6, 9, 9, 2, 6, 9, 1, 1, 6, 3, 6, 10, 9, 4, 4, 4, 5, 4, 2, 10, 1, 6, 1, 8, 6, 7, 4, 6, 9, 9, 9, 7, 2, 5, 3, 8, 8, 3, 1, 6, 7, 7, 6, 10, 7, 8, 3, 8, 6, 3, 10, 7, 10, 6, 10, 6, 10, 7, 3, 1, 2, 5, 7, 5, 9, 8, 8, 6, 3, 2, 8, 1, 6, 6, 7, 3, 5, 6, 6, 1, 9, 5, 1, 5, 7, 8, 10, 7, 4, 4, 9, 4, 2, 4, 1, 7, 5, 4, 6, 3, 3, 8, 4, 9, 7, 9, 7, 6, 7, 10, 9, 8, 6, 1, 5, 3, 7, 4, 3, 6, 5, 8, 4, 2, 3, 2, 1, 1, 4, 4, 4, 1, 2, 5, 10, 2, 5, 8, 7, 9, 6, 1, 7, 7, 10, 10, 6, 6, 2, 10, 1, 3, 7, 3, 7, 1, 3, 8, 6, 7, 7, 8, 10, 7, 6, 6, 8, 3, 4, 6, 10, 9, 4, 4, 3, 6, 6, 8, 5, 9, 6, 9, 1, 10, 7, 3, 9, 1, 10, 9, 9, 5, 8, 7, 9, 10, 2, 10, 9, 3, 6, 7, 4, 4, 8, 7, 6, 1, 10, 4, 6, 8, 8, 2, 6, 1, 5, 2, 7, 4, 9, 2, 7, 5, 8, 9, 9, 9, 3, 3, 5, 7, 8, 5, 6, 9, 4, 4, 1, 8, 1, 3, 1, 10, 2, 9, 5, 2, 3, 1, 6, 4, 7, 10, 8, 7, 3, 10, 8, 9, 3, 3, 3, 3, 5, 10, 1, 6, 10, 2, 4, 3, 6, 4, 4, 2, 2, 8, 4, 6, 7, 9, 3, 2, 3, 9, 6, 9, 4, 2, 3, 5, 1, 7, 9, 2, 7, 9, 6, 6, 10, 2, 5, 5, 10, 3, 10, 5, 8, 10, 8, 8, 10, 7, 5, 2, 6, 5, 6, 9, 1, 7, 9, 2, 5, 1, 4, 3, 4, 9, 7, 8, 9, 8, 8, 9, 9, 4, 2, 5, 10, 7, 10, 6, 2, 3, 5, 4, 3, 9, 9, 6, 9, 10, 7, 2, 2, 5, 6, 8, 5, 6, 6, 10, 4, 6, 6, 5, 2, 10, 3, 9, 9, 1, 7, 4, 5, 6, 6, 7, 6, 5, 6, 9, 9, 1, 1, 10, 7, 2, 6, 10, 8, 2, 8, 5, 4, 1, 9, 3, 9, 7, 8, 8, 10, 4, 10, 1, 5, 5, 10, 4, 10, 9, 7, 3, 3, 2, 6, 1, 10, 1, 8, 7, 2, 10, 2, 8, 9, 4, 6, 3, 7, 9, 9, 2, 5, 8, 2, 8, 10, 5, 3, 8, 6, 5, 1, 6, 10, 2, 4, 5, 5, 9, 5, 3, 2, 5, 5, 2, 3, 1, 9, 6, 7, 8, 3, 9, 10, 3, 1, 10, 7, 4, 6, 3, 2, 2, 6, 9, 7, 3, 3, 1, 7, 3, 3, 2, 8, 10, 6, 9, 8, 3, 4, 6, 10, 1, 5, 1, 10, 9, 1, 9, 6, 3, 8, 3, 4, 4, 3, 3, 5, 9, 2, 10, 7, 6, 10, 6, 4, 2, 8, 5, 4, 4, 6, 1, 6, 8, 1, 9, 2, 10, 5, 3, 9, 7, 9, 2, 7, 5, 3, 1, 5, 8, 4, 9, 7, 10, 10, 3, 4, 5, 4, 5, 1, 8, 9, 10, 8, 2, 4, 9, 2, 2, 2, 8, 8, 4, 3, 9, 1, 1, 3, 8, 7, 9, 2, 2, 2, 10, 6, 9, 10, 6, 8, 1, 2, 5, 3, 1, 6, 1, 7, 7, 10, 5, 9, 9, 4, 6, 2, 2, 10, 4, 3, 2, 4, 5, 9, 7, 6, 3, 2, 3, 5, 6, 7, 1, 6, 8, 5, 9, 3, 6, 5, 2, 7, 3, 10, 10, 1, 10, 2, 3, 10, 7, 1, 2, 9, 8, 8, 1, 9, 3, 6, 2, 7, 3, 1, 8, 6, 2, 10, 8, 1, 3, 5, 8, 1, 9, 1, 8, 10, 2, 6, 4, 4, 6, 5, 10, 5, 7, 1, 10, 4, 6, 6, 7, 4, 8, 10, 6, 3, 10, 1, 8, 5, 7, 10, 9, 5, 7, 2, 4, 3, 6, 7, 5, 3, 6, 8, 5, 7, 2, 5, 1, 10, 2, 9, 7, 1, 10, 3, 7, 4, 1, 8, 9, 3, 8, 1, 8, 2, 9, 9, 3, 4, 10, 10, 8, 3, 8, 1, 2, 6, 5, 6, 9, 10, 2, 1, 5, 10, 6, 4, 8, 1, 3, 4, 6, 3, 6, 9, 6, 5, 2, 1, 10, 9, 8, 7, 6, 1, 8, 2, 9, 2, 10, 4, 7, 1, 7, 10, 10, 10, 6, 8, 3, 9, 9, 6, 3, 7, 4, 4, 6, 6, 9, 10, 9, 7, 4, 1, 3, 6, 3, 5, 2, 3, 9, 6, 5, 2, 8, 3, 10, 3, 2, 2, 5, 10, 8, 5, 10, 8, 5, 4, 5, 6, 8, 4, 1, 9, 7, 3, 4, 9, 2, 3, 4, 8, 3, 7, 5, 5, 7, 4, 1, 10, 6, 1, 1, 5, 8, 9, 1, 5, 5, 8, 8, 10, 9, 3, 9, 3, 5, 5, 8, 6, 1, 1, 1, 4, 3, 10, 8, 10, 8, 4, 5, 2, 2, 1, 9, 9, 8, 5, 7, 4, 6, 4, 9, 8, 9, 10, 1, 9, 10, 3, 1, 9, 8, 4, 4, 1, 7, 10, 4, 9, 9, 5, 10, 10, 10, 1, 5, 1, 3, 5, 5, 5, 9, 6, 7, 6, 7, 8, 1, 5, 10, 6, 1, 5, 6, 6, 10, 2, 10, 7, 8, 3, 1, 2, 3, 5, 6, 7, 5, 4, 1, 10, 8, 10, 2, 3, 4, 5, 6, 8, 7, 7, 8, 9, 2, 4, 6, 6, 6, 9, 2, 10, 9, 5, 6, 10, 4, 6, 1, 10, 1, 10, 8, 3, 8, 6, 5, 4, 8, 10, 9, 8, 10, 9, 5, 3, 4, 9, 5, 7, 2, 1, 8, 4, 10, 9, 3, 9, 7, 3, 4, 6, 4, 5, 2, 9, 8, 10, 2, 9, 10, 9, 3, 2, 5, 7, 9, 9, 10, 7, 4, 9, 3, 3, 6, 9, 9, 1, 7, 6, 8, 6, 4, 8, 1, 8, 5, 10, 2, 7, 5, 10, 3, 1, 7, 10, 1, 2, 5, 3, 3, 9, 5, 2, 9, 1, 3, 10, 6, 10, 2, 9, 8, 8, 9, 3, 10, 3, 6, 2, 2, 8, 8, 6, 9, 1, 5, 7, 2, 5, 6, 3, 7, 5, 4, 10, 1, 8, 3, 10, 7, 6, 10, 9, 10, 3, 10, 9, 4, 1, 7, 5, 6, 8, 1, 4, 3, 2, 2, 3, 10, 3, 3, 2, 10, 3, 4, 10, 3, 7, 7, 8, 3, 4, 3, 10, 4, 2, 2, 1, 4, 5, 2, 1, 6, 3, 2, 4, 10, 2, 2, 10, 2, 5, 3, 5, 6, 9, 10, 3, 1, 8, 4, 5, 4, 6, 6, 3, 8, 6, 7, 6, 6, 7, 3, 1, 5, 3, 9, 4, 10, 2, 7, 1, 2, 6, 9, 7, 6, 9, 2, 9, 9, 2, 2, 9, 5, 7, 5, 5, 8, 7, 10, 10, 5, 4, 10, 6, 9, 2, 8, 2, 5, 3, 6, 7, 10, 6, 10, 4, 7, 6, 9, 9, 1, 7, 3, 3, 2, 4, 5, 4, 3, 10, 5, 2, 9, 8, 6, 1, 4, 2, 8, 7, 7, 2, 5, 5, 7, 2, 2, 3, 10, 9, 6, 4, 6, 8, 1, 8, 3, 4, 3, 6, 9, 2, 7, 2, 4, 4, 7, 1, 4, 7, 1, 2, 6, 3, 2, 5, 10, 10, 7, 10, 3, 3, 10, 7, 7, 7, 7, 9, 1, 10, 6, 9, 5, 5, 7, 7, 1, 6, 3, 8, 6, 3, 7, 9, 5, 7, 1, 5, 8, 10, 3, 6, 1, 2, 2, 9, 7, 9, 10, 8, 5, 9, 5, 7, 8, 8, 8, 4, 7, 6, 9, 3, 5, 1, 5, 9, 5, 1, 3, 7, 5, 5, 7, 6, 6, 1, 8, 6, 9, 5, 3, 2, 8, 7, 4, 6, 10, 1, 7, 8, 10, 2, 5, 3, 7, 8, 2, 7, 10, 4, 5, 9, 1, 9, 7, 3, 4, 8, 1, 3, 6, 4, 6, 3, 8, 5, 5, 6, 4, 10, 6, 8, 3, 5, 1, 9, 7, 4, 4, 1, 6, 4, 10, 10, 5, 5, 3, 8, 5, 1, 5, 6, 2, 6, 8, 9, 7, 9, 10, 6, 5, 10, 10, 2, 8, 10, 5, 2, 2, 2, 10, 5, 9, 8, 6, 4, 3, 2, 9, 1, 2, 1, 5, 10, 4, 4, 5, 6, 5, 6, 8, 1, 5, 7, 4, 4, 10, 8, 5, 7, 9, 3, 6, 8, 5, 2, 10, 10, 10, 8, 9, 8, 4, 7, 5, 4, 9, 6, 4, 7, 7, 5, 6, 8, 9, 3, 2, 1, 8, 10, 4, 5, 9, 5, 6, 6, 9, 8, 8, 10, 3, 8, 1, 4, 1, 5, 10, 9, 1, 4, 10, 8, 7, 10, 8, 9, 7, 5, 7, 9, 5, 7, 10, 4, 8, 7, 1, 8, 5, 8, 10, 2, 9, 4, 10, 10, 1, 3, 1, 6, 9, 2, 4, 7, 7, 5, 1, 7, 6, 10, 4, 1, 2, 2, 5, 7, 5, 10, 2, 7, 3, 7, 9, 9, 2, 1, 5, 2, 10, 5, 10, 4, 7, 2, 5, 1, 7, 3, 9, 5, 3, 3, 7, 9, 7, 10, 1, 1, 9, 2, 6, 4, 7, 9, 6, 1, 5, 8, 2, 5, 1, 7, 3, 1, 6, 1, 8, 8, 1, 9, 9, 7, 6, 2, 9, 10, 8, 2, 1, 5, 6, 2, 1, 6, 8, 10, 9, 1, 3, 5, 10, 7, 7, 6, 8, 3, 9, 2, 10, 5, 1, 10, 10, 1, 4, 8, 1, 7, 3, 2, 9, 4, 8, 5, 3, 7, 7, 1, 4, 9, 6, 1, 5, 4, 6, 9, 7, 7, 1, 3, 4, 6, 6, 2, 6, 6, 2, 7, 5, 9, 2, 10, 6, 9, 10, 8, 3, 2, 5, 1, 1, 10, 3, 7, 4, 6, 3, 7, 3, 8, 9, 10, 7, 3, 7, 7, 7, 2, 7, 10, 2, 8, 2, 9, 3, 7, 5, 3, 8, 10, 2, 1, 9, 1, 10, 9, 6, 6, 9, 3, 5, 1, 4, 4, 6, 4, 3, 10, 7, 6, 4, 6, 10, 2, 5, 5, 10, 4, 8, 3, 10, 7, 5, 10, 8, 8, 8, 8, 5, 5, 6, 10, 1, 3, 6, 5, 8, 5, 8, 9, 1, 4, 1, 7, 7, 8, 5, 3, 9, 10, 7, 1, 9, 2, 6, 3, 3, 9, 7, 10, 7, 2, 10, 5, 3, 1, 10, 10, 5, 4, 6, 5, 10, 5, 3, 2, 6, 6, 6, 3, 7, 6, 10, 6, 6, 9, 9, 9, 4, 6, 1, 1, 10, 8, 2, 8, 1, 3, 8, 3, 1, 1, 3, 8, 2, 6, 7, 7, 2, 3, 8, 7, 1, 8, 10, 3, 5, 3, 2, 4, 8, 9, 6, 5, 8, 8, 6, 1, 10, 6, 6, 6, 5, 10, 4, 7, 3, 10, 7, 6, 10, 10, 5, 5, 1, 4, 2, 4, 6, 8, 3, 5, 9, 2, 6, 3, 5, 7, 9, 9, 7, 1, 9, 3, 10, 4, 6, 8, 8, 5, 7, 6, 9, 7, 8, 2, 10, 8, 3, 10, 10, 10, 4, 5, 2, 4, 8, 4, 2, 4, 6, 3, 9, 6, 8, 8, 10, 5, 5, 5, 3, 2, 10, 1, 2, 1, 4, 6, 2, 3, 10, 5, 8, 10, 5, 10, 5, 3, 10, 1, 8, 3, 8, 5, 10, 7, 7, 10, 4, 7, 2, 10, 7, 8, 6, 9, 9, 10, 2, 6, 8, 1, 10, 8, 10, 6, 7, 5, 3, 10, 2, 1, 10, 9, 1, 3, 9, 9, 4, 3, 8, 4, 1, 4, 1, 4, 1, 9, 5, 9, 7, 6, 9, 10, 10, 3, 3, 4, 5, 8, 1, 7, 4, 1, 7, 3, 6, 10, 4, 9, 8, 2, 10, 9, 1, 10, 2, 9, 1, 8, 9, 5, 2, 8, 10, 2, 6, 9, 7, 2, 5, 2, 5, 9, 10, 1, 3, 5, 4, 1, 6, 8, 6, 5, 2, 1, 9, 6, 3, 3, 1, 6, 5, 1, 2, 6, 9, 1, 7, 2, 1, 5, 2, 3, 7, 6, 7, 9, 5, 9, 6, 7, 9, 3, 1, 7, 1, 1, 2, 8, 5, 5, 5, 10, 2, 4, 1, 5, 8, 4, 4, 10, 7, 10, 8, 9, 6, 5, 10, 8, 6, 7, 5, 4, 4, 5, 4, 7, 5, 2, 6, 10, 10, 6, 4, 8, 10, 5, 6, 7, 8, 1, 5, 3, 8, 6, 3, 4, 1, 7, 9, 4, 4, 10, 8, 3, 5, 6, 10, 6, 9, 7, 7, 7, 1, 5, 10, 3, 5, 1, 3, 2, 2, 7, 8, 1, 4, 6, 6, 4, 2, 3, 10, 4, 10, 4, 8, 10, 7, 3, 3, 7, 8, 1, 7, 4, 3, 6, 7, 4, 10, 8, 8, 5, 10, 2, 6, 7, 7, 2, 2, 9, 4, 9, 6, 2, 8, 8, 3, 2, 10, 1, 3, 3, 2, 4, 2, 7, 10, 8, 2, 1, 9, 10, 5, 10, 5, 1, 6, 9, 1, 8, 8, 4, 7, 8, 9, 7, 9, 7, 5, 10, 5, 5, 7, 10, 5, 10, 1, 10, 2, 9, 6, 3, 2, 8, 10, 3, 9, 3, 2, 9, 5, 9, 8, 7, 4, 4, 8, 4, 6, 8, 4, 4, 1, 3, 8, 9, 6, 9, 1, 5, 2, 9, 3, 3, 9, 7, 6, 1, 10, 8, 2, 9, 4, 3, 7, 7, 2, 2, 1, 10, 1, 4, 4, 8, 4, 8, 5, 4, 4, 3, 8, 6, 5, 4, 2, 10, 2, 4, 10, 2, 6, 3, 4, 1, 1, 8, 1, 7, 7, 6, 1, 10, 9, 7, 7, 2, 4, 7, 2, 1, 5, 1, 8, 8, 9, 6, 3, 9, 5, 3, 8, 8, 6, 2, 8, 9, 3, 9, 2, 2, 8, 9, 9, 8, 3, 3, 1, 10, 5, 8, 9, 6, 6, 6, 3, 3, 9, 6, 4, 6, 7, 9, 9, 6, 1, 8, 4, 5, 9, 1, 2, 4, 8, 6, 3, 8, 5, 4, 8, 2, 2, 2, 3, 6, 4, 1, 1, 7, 8, 10, 2, 7, 5, 10, 4, 1, 10, 2, 4, 8, 10, 3, 10, 1, 7, 3, 6, 5, 10, 6, 2, 5, 2, 9, 8, 10, 9, 7, 10, 3, 4, 10, 1, 4, 1, 6, 7, 10, 3, 8, 7, 7, 7, 2, 8, 9, 5, 1, 10, 4, 4, 9, 1, 3, 4, 2, 10, 3, 1, 3, 4, 10, 10, 10, 8, 9, 3, 3, 2, 1, 5, 9, 6, 7, 7, 7, 8, 1, 4, 6, 4, 4, 6, 6, 10, 6, 4, 6, 9, 4, 4, 10, 2, 5, 4, 10, 4, 7, 4, 3, 8, 8, 10, 4, 1, 7, 2, 4, 1, 6, 3, 8, 4, 6, 2, 9, 2, 6, 7, 4, 10, 9, 3, 10, 1, 7, 8, 8, 10, 1, 6, 10, 5, 4, 1, 3, 7, 3, 4, 5, 1, 2, 8, 8, 8, 6, 5, 4, 7, 5, 6, 4, 1, 3, 6, 7, 5, 3, 4, 6, 4, 8, 3, 10, 5, 1, 6, 8, 3, 2, 7, 9, 3, 6, 3, 6, 6, 3, 3, 2, 5, 8, 10, 6, 2, 7, 4, 4, 5, 4, 2, 9, 6, 3, 9, 6, 4, 8, 5, 4, 10, 3, 8, 3, 10, 4, 10, 2, 1, 4, 8, 6, 10, 10, 8, 10, 6, 4, 6, 6, 7, 5, 1, 9, 5, 1, 9, 1, 1, 8, 2, 1, 5, 6, 10, 3, 9, 1, 8, 9, 10, 10, 10, 9, 10, 9, 3, 6, 9, 1, 10, 8, 8, 2, 5, 2, 3, 9, 10, 5, 10, 8, 6, 8, 7, 9, 6, 6, 2, 10, 10, 5, 1, 2, 9, 7, 10, 5, 1, 6, 6, 4, 1, 8, 3, 2, 7, 9, 9, 9, 2, 10, 2, 2, 6, 2, 2, 7, 6, 9, 9, 8, 10, 9, 2, 1, 7, 2, 9, 4, 1, 6, 2, 10, 4, 4, 4, 7, 6, 8, 5, 8, 3, 8, 3, 6, 8, 5, 5, 4, 8, 10, 9, 10, 7, 1, 6, 1, 6, 4, 2, 2, 7, 2, 5, 7, 7, 10, 1, 6, 9, 4, 5, 7, 5, 9, 5, 10, 6, 1, 3, 2, 3, 6, 2, 9, 6, 2, 5, 7, 2, 7, 8, 7, 6, 1, 3, 7, 9, 5, 6, 7, 1, 3, 6, 4, 9, 8, 1, 3, 7, 9, 9, 7, 6, 10, 10, 3, 9, 4, 8, 10, 6, 9, 9, 8, 5, 2, 10, 10, 9, 8, 9, 6, 4, 10, 9, 5, 9, 10, 9, 2, 3, 3, 9, 3, 5, 5, 10, 7, 10, 10, 5, 6, 8, 6, 7, 1, 10, 3, 10, 7, 7, 4, 2, 10, 1, 2, 1, 8, 9, 8, 9, 2, 3, 10, 7, 8, 4, 2, 10, 2, 10, 5, 5, 7, 2, 9, 1, 5, 10, 7, 3, 1, 10, 9, 10, 9, 1, 10, 1, 4, 6, 3, 9, 7, 6, 10, 8, 9, 1, 9, 1, 9, 5, 4, 4, 8, 5, 2, 3, 5, 8, 8, 10, 4, 10, 5, 4, 9, 2, 9, 1, 5, 8, 3, 5, 1, 1, 6, 1, 7, 9, 10, 6, 9, 4, 3, 10, 4, 6, 7, 9, 3, 8, 10, 10, 1, 10, 3, 10, 10, 6, 3, 8, 6, 4, 9, 8, 3, 5, 9, 4, 9, 7, 1, 8, 5, 3, 7, 9, 4, 4, 4, 4, 3, 3, 2, 9, 2, 2, 3, 4, 7, 8, 7, 7, 4, 3, 6, 5, 1, 6, 9, 8, 4, 8, 4, 4, 8, 1, 1, 1, 1, 2, 4, 7, 2, 9, 10, 2, 3, 7, 2, 1, 2, 9, 2, 3, 4, 4, 1, 4, 9, 9, 4, 6, 9, 6, 10, 10, 5, 1, 5, 3, 2, 7, 10, 5, 3, 6, 3, 9, 7, 7, 1, 3, 4, 6, 7, 2, 4, 1, 5, 1, 3, 1, 2, 7, 10, 8, 8, 5, 1, 9, 5, 1, 9, 1, 4, 4, 6, 8, 10, 1, 2, 8, 10, 1, 3, 1, 10, 4, 2, 6, 5, 4, 9, 8, 3, 6, 1, 5, 3, 7, 1, 6, 2, 9, 4, 5, 8, 1, 7, 5, 10, 5, 4, 2, 4, 5, 6, 2, 5, 7, 5, 3, 1, 8, 6, 2, 8, 9, 6, 4, 6, 6, 2, 3, 7, 7, 6, 5, 1, 6, 5, 2, 2, 5, 9, 5, 7, 10, 2, 7, 1, 5, 7, 6, 4, 4, 2, 9, 1, 6, 5, 4, 4, 6, 9, 4, 1, 10, 5, 1, 6, 1, 6, 9, 2, 4, 6, 3, 3, 1, 5, 10, 9, 5, 7, 10, 9, 7, 7, 1, 1, 8, 7, 8, 7, 4, 1, 10, 2, 9, 3, 1, 5, 5, 10, 2, 5, 9, 5, 9, 3, 7, 1, 9, 8, 3, 8, 10, 5, 9, 5, 7, 4, 3, 3, 3, 8, 9, 4, 5, 6, 8, 4, 2, 3, 7, 3, 1, 8, 9, 1, 5, 4, 6, 3, 5, 3, 2, 3, 3, 2, 6, 3, 4, 6, 2, 4, 6, 8, 9, 10, 1, 9, 5, 10, 7, 4, 2, 6, 4, 10, 6, 2, 5, 6, 5, 9, 8, 5, 1, 1, 7, 1, 7, 10, 7, 3, 6, 7, 10, 3, 6, 7, 9, 3, 10, 3, 2, 8, 9, 9, 5, 3, 1, 1, 8, 6, 2, 10, 5, 1, 5, 5, 3, 2, 8, 2, 2, 1, 9, 1, 5, 1, 7, 7, 5, 7, 4, 3, 7, 10, 4, 7, 8, 1, 7, 6, 5, 10, 1, 5, 2, 3, 8, 8, 9, 6, 8, 4, 5, 7, 2, 2, 7, 9, 5, 6, 9, 6, 1, 4, 5, 5, 9, 2, 1, 2, 8, 1, 1, 9, 9, 5, 6, 4, 9, 3, 5, 3, 10, 6, 5, 9, 7, 5, 1, 1, 3, 2, 2, 5, 1, 10, 3, 2, 7, 9, 9, 5, 4, 9, 3, 1, 9, 10, 7, 6, 5, 3, 2, 2, 2, 2, 9, 10, 2, 8, 7, 6, 5, 7, 10, 6, 7, 7, 10, 9, 1, 1, 3, 2, 3, 6, 1, 3, 2, 9, 3, 1, 3, 1, 5, 8, 1, 4, 2, 7, 1, 7, 1, 2, 1, 7, 5, 3, 10, 9, 9, 8, 5, 3, 2, 8, 4, 8, 4, 5, 6, 8, 4, 3, 3, 4, 1, 10, 7, 8, 4, 5, 9, 8, 6, 9, 7, 7, 3, 8, 3, 9, 9, 1, 7, 1, 9, 9, 10, 5, 6, 4, 10, 5, 2, 1, 10, 1, 10, 9, 10, 3, 2, 8, 5, 8, 7, 8, 4, 10, 10, 10, 1, 4, 3, 8, 4, 4, 8, 9, 7, 5, 6, 3, 10, 6, 8, 6, 5, 4, 4, 4, 4, 3, 9, 6, 5, 2, 3, 9, 5, 9, 9, 6, 4, 8, 2, 6, 2, 3, 2, 3, 8, 5, 8, 3, 6, 8, 1, 4, 4, 6, 2, 8, 2, 2, 8, 7, 8, 4, 9, 5, 8, 8, 1, 3, 2, 5, 9, 7, 7, 6, 2, 9, 9] TODO +[9999, 9998, 9997, 9996, 9995, 9994, 9993, 9992, 9991, 9990, 9989, 9988, 9987, 9986, 9985, 9984, 9983, 9982, 9981, 9980, 9979, 9978, 9977, 9976, 9975, 9974, 9973, 9972, 9971, 9970, 9969, 9968, 9967, 9966, 9965, 9964, 9963, 9962, 9961, 9960, 9959, 9958, 9957, 9956, 9955, 9954, 9953, 9952, 9951, 9950, 9949, 9948, 9947, 9946, 9945, 9944, 9943, 9942, 9941, 9940, 9939, 9938, 9937, 9936, 9935, 9934, 9933, 9932, 9931, 9930, 9929, 9928, 9927, 9926, 9925, 9924, 9923, 9922, 9921, 9920, 9919, 9918, 9917, 9916, 9915, 9914, 9913, 9912, 9911, 9910, 9909, 9908, 9907, 9906, 9905, 9904, 9903, 9902, 9901, 9900, 9899, 9898, 9897, 9896, 9895, 9894, 9893, 9892, 9891, 9890, 9889, 9888, 9887, 9886, 9885, 9884, 9883, 9882, 9881, 9880, 9879, 9878, 9877, 9876, 9875, 9874, 9873, 9872, 9871, 9870, 9869, 9868, 9867, 9866, 9865, 9864, 9863, 9862, 9861, 9860, 9859, 9858, 9857, 9856, 9855, 9854, 9853, 9852, 9851, 9850, 9849, 9848, 9847, 9846, 9845, 9844, 9843, 9842, 9841, 9840, 9839, 9838, 9837, 9836, 9835, 9834, 9833, 9832, 9831, 9830, 9829, 9828, 9827, 9826, 9825, 9824, 9823, 9822, 9821, 9820, 9819, 9818, 9817, 9816, 9815, 9814, 9813, 9812, 9811, 9810, 9809, 9808, 9807, 9806, 9805, 9804, 9803, 9802, 9801, 9800, 9799, 9798, 9797, 9796, 9795, 9794, 9793, 9792, 9791, 9790, 9789, 9788, 9787, 9786, 9785, 9784, 9783, 9782, 9781, 9780, 9779, 9778, 9777, 9776, 9775, 9774, 9773, 9772, 9771, 9770, 9769, 9768, 9767, 9766, 9765, 9764, 9763, 9762, 9761, 9760, 9759, 9758, 9757, 9756, 9755, 9754, 9753, 9752, 9751, 9750, 9749, 9748, 9747, 9746, 9745, 9744, 9743, 9742, 9741, 9740, 9739, 9738, 9737, 9736, 9735, 9734, 9733, 9732, 9731, 9730, 9729, 9728, 9727, 9726, 9725, 9724, 9723, 9722, 9721, 9720, 9719, 9718, 9717, 9716, 9715, 9714, 9713, 9712, 9711, 9710, 9709, 9708, 9707, 9706, 9705, 9704, 9703, 9702, 9701, 9700, 9699, 9698, 9697, 9696, 9695, 9694, 9693, 9692, 9691, 9690, 9689, 9688, 9687, 9686, 9685, 9684, 9683, 9682, 9681, 9680, 9679, 9678, 9677, 9676, 9675, 9674, 9673, 9672, 9671, 9670, 9669, 9668, 9667, 9666, 9665, 9664, 9663, 9662, 9661, 9660, 9659, 9658, 9657, 9656, 9655, 9654, 9653, 9652, 9651, 9650, 9649, 9648, 9647, 9646, 9645, 9644, 9643, 9642, 9641, 9640, 9639, 9638, 9637, 9636, 9635, 9634, 9633, 9632, 9631, 9630, 9629, 9628, 9627, 9626, 9625, 9624, 9623, 9622, 9621, 9620, 9619, 9618, 9617, 9616, 9615, 9614, 9613, 9612, 9611, 9610, 9609, 9608, 9607, 9606, 9605, 9604, 9603, 9602, 9601, 9600, 9599, 9598, 9597, 9596, 9595, 9594, 9593, 9592, 9591, 9590, 9589, 9588, 9587, 9586, 9585, 9584, 9583, 9582, 9581, 9580, 9579, 9578, 9577, 9576, 9575, 9574, 9573, 9572, 9571, 9570, 9569, 9568, 9567, 9566, 9565, 9564, 9563, 9562, 9561, 9560, 9559, 9558, 9557, 9556, 9555, 9554, 9553, 9552, 9551, 9550, 9549, 9548, 9547, 9546, 9545, 9544, 9543, 9542, 9541, 9540, 9539, 9538, 9537, 9536, 9535, 9534, 9533, 9532, 9531, 9530, 9529, 9528, 9527, 9526, 9525, 9524, 9523, 9522, 9521, 9520, 9519, 9518, 9517, 9516, 9515, 9514, 9513, 9512, 9511, 9510, 9509, 9508, 9507, 9506, 9505, 9504, 9503, 9502, 9501, 9500, 9499, 9498, 9497, 9496, 9495, 9494, 9493, 9492, 9491, 9490, 9489, 9488, 9487, 9486, 9485, 9484, 9483, 9482, 9481, 9480, 9479, 9478, 9477, 9476, 9475, 9474, 9473, 9472, 9471, 9470, 9469, 9468, 9467, 9466, 9465, 9464, 9463, 9462, 9461, 9460, 9459, 9458, 9457, 9456, 9455, 9454, 9453, 9452, 9451, 9450, 9449, 9448, 9447, 9446, 9445, 9444, 9443, 9442, 9441, 9440, 9439, 9438, 9437, 9436, 9435, 9434, 9433, 9432, 9431, 9430, 9429, 9428, 9427, 9426, 9425, 9424, 9423, 9422, 9421, 9420, 9419, 9418, 9417, 9416, 9415, 9414, 9413, 9412, 9411, 9410, 9409, 9408, 9407, 9406, 9405, 9404, 9403, 9402, 9401, 9400, 9399, 9398, 9397, 9396, 9395, 9394, 9393, 9392, 9391, 9390, 9389, 9388, 9387, 9386, 9385, 9384, 9383, 9382, 9381, 9380, 9379, 9378, 9377, 9376, 9375, 9374, 9373, 9372, 9371, 9370, 9369, 9368, 9367, 9366, 9365, 9364, 9363, 9362, 9361, 9360, 9359, 9358, 9357, 9356, 9355, 9354, 9353, 9352, 9351, 9350, 9349, 9348, 9347, 9346, 9345, 9344, 9343, 9342, 9341, 9340, 9339, 9338, 9337, 9336, 9335, 9334, 9333, 9332, 9331, 9330, 9329, 9328, 9327, 9326, 9325, 9324, 9323, 9322, 9321, 9320, 9319, 9318, 9317, 9316, 9315, 9314, 9313, 9312, 9311, 9310, 9309, 9308, 9307, 9306, 9305, 9304, 9303, 9302, 9301, 9300, 9299, 9298, 9297, 9296, 9295, 9294, 9293, 9292, 9291, 9290, 9289, 9288, 9287, 9286, 9285, 9284, 9283, 9282, 9281, 9280, 9279, 9278, 9277, 9276, 9275, 9274, 9273, 9272, 9271, 9270, 9269, 9268, 9267, 9266, 9265, 9264, 9263, 9262, 9261, 9260, 9259, 9258, 9257, 9256, 9255, 9254, 9253, 9252, 9251, 9250, 9249, 9248, 9247, 9246, 9245, 9244, 9243, 9242, 9241, 9240, 9239, 9238, 9237, 9236, 9235, 9234, 9233, 9232, 9231, 9230, 9229, 9228, 9227, 9226, 9225, 9224, 9223, 9222, 9221, 9220, 9219, 9218, 9217, 9216, 9215, 9214, 9213, 9212, 9211, 9210, 9209, 9208, 9207, 9206, 9205, 9204, 9203, 9202, 9201, 9200, 9199, 9198, 9197, 9196, 9195, 9194, 9193, 9192, 9191, 9190, 9189, 9188, 9187, 9186, 9185, 9184, 9183, 9182, 9181, 9180, 9179, 9178, 9177, 9176, 9175, 9174, 9173, 9172, 9171, 9170, 9169, 9168, 9167, 9166, 9165, 9164, 9163, 9162, 9161, 9160, 9159, 9158, 9157, 9156, 9155, 9154, 9153, 9152, 9151, 9150, 9149, 9148, 9147, 9146, 9145, 9144, 9143, 9142, 9141, 9140, 9139, 9138, 9137, 9136, 9135, 9134, 9133, 9132, 9131, 9130, 9129, 9128, 9127, 9126, 9125, 9124, 9123, 9122, 9121, 9120, 9119, 9118, 9117, 9116, 9115, 9114, 9113, 9112, 9111, 9110, 9109, 9108, 9107, 9106, 9105, 9104, 9103, 9102, 9101, 9100, 9099, 9098, 9097, 9096, 9095, 9094, 9093, 9092, 9091, 9090, 9089, 9088, 9087, 9086, 9085, 9084, 9083, 9082, 9081, 9080, 9079, 9078, 9077, 9076, 9075, 9074, 9073, 9072, 9071, 9070, 9069, 9068, 9067, 9066, 9065, 9064, 9063, 9062, 9061, 9060, 9059, 9058, 9057, 9056, 9055, 9054, 9053, 9052, 9051, 9050, 9049, 9048, 9047, 9046, 9045, 9044, 9043, 9042, 9041, 9040, 9039, 9038, 9037, 9036, 9035, 9034, 9033, 9032, 9031, 9030, 9029, 9028, 9027, 9026, 9025, 9024, 9023, 9022, 9021, 9020, 9019, 9018, 9017, 9016, 9015, 9014, 9013, 9012, 9011, 9010, 9009, 9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9000, 8999, 8998, 8997, 8996, 8995, 8994, 8993, 8992, 8991, 8990, 8989, 8988, 8987, 8986, 8985, 8984, 8983, 8982, 8981, 8980, 8979, 8978, 8977, 8976, 8975, 8974, 8973, 8972, 8971, 8970, 8969, 8968, 8967, 8966, 8965, 8964, 8963, 8962, 8961, 8960, 8959, 8958, 8957, 8956, 8955, 8954, 8953, 8952, 8951, 8950, 8949, 8948, 8947, 8946, 8945, 8944, 8943, 8942, 8941, 8940, 8939, 8938, 8937, 8936, 8935, 8934, 8933, 8932, 8931, 8930, 8929, 8928, 8927, 8926, 8925, 8924, 8923, 8922, 8921, 8920, 8919, 8918, 8917, 8916, 8915, 8914, 8913, 8912, 8911, 8910, 8909, 8908, 8907, 8906, 8905, 8904, 8903, 8902, 8901, 8900, 8899, 8898, 8897, 8896, 8895, 8894, 8893, 8892, 8891, 8890, 8889, 8888, 8887, 8886, 8885, 8884, 8883, 8882, 8881, 8880, 8879, 8878, 8877, 8876, 8875, 8874, 8873, 8872, 8871, 8870, 8869, 8868, 8867, 8866, 8865, 8864, 8863, 8862, 8861, 8860, 8859, 8858, 8857, 8856, 8855, 8854, 8853, 8852, 8851, 8850, 8849, 8848, 8847, 8846, 8845, 8844, 8843, 8842, 8841, 8840, 8839, 8838, 8837, 8836, 8835, 8834, 8833, 8832, 8831, 8830, 8829, 8828, 8827, 8826, 8825, 8824, 8823, 8822, 8821, 8820, 8819, 8818, 8817, 8816, 8815, 8814, 8813, 8812, 8811, 8810, 8809, 8808, 8807, 8806, 8805, 8804, 8803, 8802, 8801, 8800, 8799, 8798, 8797, 8796, 8795, 8794, 8793, 8792, 8791, 8790, 8789, 8788, 8787, 8786, 8785, 8784, 8783, 8782, 8781, 8780, 8779, 8778, 8777, 8776, 8775, 8774, 8773, 8772, 8771, 8770, 8769, 8768, 8767, 8766, 8765, 8764, 8763, 8762, 8761, 8760, 8759, 8758, 8757, 8756, 8755, 8754, 8753, 8752, 8751, 8750, 8749, 8748, 8747, 8746, 8745, 8744, 8743, 8742, 8741, 8740, 8739, 8738, 8737, 8736, 8735, 8734, 8733, 8732, 8731, 8730, 8729, 8728, 8727, 8726, 8725, 8724, 8723, 8722, 8721, 8720, 8719, 8718, 8717, 8716, 8715, 8714, 8713, 8712, 8711, 8710, 8709, 8708, 8707, 8706, 8705, 8704, 8703, 8702, 8701, 8700, 8699, 8698, 8697, 8696, 8695, 8694, 8693, 8692, 8691, 8690, 8689, 8688, 8687, 8686, 8685, 8684, 8683, 8682, 8681, 8680, 8679, 8678, 8677, 8676, 8675, 8674, 8673, 8672, 8671, 8670, 8669, 8668, 8667, 8666, 8665, 8664, 8663, 8662, 8661, 8660, 8659, 8658, 8657, 8656, 8655, 8654, 8653, 8652, 8651, 8650, 8649, 8648, 8647, 8646, 8645, 8644, 8643, 8642, 8641, 8640, 8639, 8638, 8637, 8636, 8635, 8634, 8633, 8632, 8631, 8630, 8629, 8628, 8627, 8626, 8625, 8624, 8623, 8622, 8621, 8620, 8619, 8618, 8617, 8616, 8615, 8614, 8613, 8612, 8611, 8610, 8609, 8608, 8607, 8606, 8605, 8604, 8603, 8602, 8601, 8600, 8599, 8598, 8597, 8596, 8595, 8594, 8593, 8592, 8591, 8590, 8589, 8588, 8587, 8586, 8585, 8584, 8583, 8582, 8581, 8580, 8579, 8578, 8577, 8576, 8575, 8574, 8573, 8572, 8571, 8570, 8569, 8568, 8567, 8566, 8565, 8564, 8563, 8562, 8561, 8560, 8559, 8558, 8557, 8556, 8555, 8554, 8553, 8552, 8551, 8550, 8549, 8548, 8547, 8546, 8545, 8544, 8543, 8542, 8541, 8540, 8539, 8538, 8537, 8536, 8535, 8534, 8533, 8532, 8531, 8530, 8529, 8528, 8527, 8526, 8525, 8524, 8523, 8522, 8521, 8520, 8519, 8518, 8517, 8516, 8515, 8514, 8513, 8512, 8511, 8510, 8509, 8508, 8507, 8506, 8505, 8504, 8503, 8502, 8501, 8500, 8499, 8498, 8497, 8496, 8495, 8494, 8493, 8492, 8491, 8490, 8489, 8488, 8487, 8486, 8485, 8484, 8483, 8482, 8481, 8480, 8479, 8478, 8477, 8476, 8475, 8474, 8473, 8472, 8471, 8470, 8469, 8468, 8467, 8466, 8465, 8464, 8463, 8462, 8461, 8460, 8459, 8458, 8457, 8456, 8455, 8454, 8453, 8452, 8451, 8450, 8449, 8448, 8447, 8446, 8445, 8444, 8443, 8442, 8441, 8440, 8439, 8438, 8437, 8436, 8435, 8434, 8433, 8432, 8431, 8430, 8429, 8428, 8427, 8426, 8425, 8424, 8423, 8422, 8421, 8420, 8419, 8418, 8417, 8416, 8415, 8414, 8413, 8412, 8411, 8410, 8409, 8408, 8407, 8406, 8405, 8404, 8403, 8402, 8401, 8400, 8399, 8398, 8397, 8396, 8395, 8394, 8393, 8392, 8391, 8390, 8389, 8388, 8387, 8386, 8385, 8384, 8383, 8382, 8381, 8380, 8379, 8378, 8377, 8376, 8375, 8374, 8373, 8372, 8371, 8370, 8369, 8368, 8367, 8366, 8365, 8364, 8363, 8362, 8361, 8360, 8359, 8358, 8357, 8356, 8355, 8354, 8353, 8352, 8351, 8350, 8349, 8348, 8347, 8346, 8345, 8344, 8343, 8342, 8341, 8340, 8339, 8338, 8337, 8336, 8335, 8334, 8333, 8332, 8331, 8330, 8329, 8328, 8327, 8326, 8325, 8324, 8323, 8322, 8321, 8320, 8319, 8318, 8317, 8316, 8315, 8314, 8313, 8312, 8311, 8310, 8309, 8308, 8307, 8306, 8305, 8304, 8303, 8302, 8301, 8300, 8299, 8298, 8297, 8296, 8295, 8294, 8293, 8292, 8291, 8290, 8289, 8288, 8287, 8286, 8285, 8284, 8283, 8282, 8281, 8280, 8279, 8278, 8277, 8276, 8275, 8274, 8273, 8272, 8271, 8270, 8269, 8268, 8267, 8266, 8265, 8264, 8263, 8262, 8261, 8260, 8259, 8258, 8257, 8256, 8255, 8254, 8253, 8252, 8251, 8250, 8249, 8248, 8247, 8246, 8245, 8244, 8243, 8242, 8241, 8240, 8239, 8238, 8237, 8236, 8235, 8234, 8233, 8232, 8231, 8230, 8229, 8228, 8227, 8226, 8225, 8224, 8223, 8222, 8221, 8220, 8219, 8218, 8217, 8216, 8215, 8214, 8213, 8212, 8211, 8210, 8209, 8208, 8207, 8206, 8205, 8204, 8203, 8202, 8201, 8200, 8199, 8198, 8197, 8196, 8195, 8194, 8193, 8192, 8191, 8190, 8189, 8188, 8187, 8186, 8185, 8184, 8183, 8182, 8181, 8180, 8179, 8178, 8177, 8176, 8175, 8174, 8173, 8172, 8171, 8170, 8169, 8168, 8167, 8166, 8165, 8164, 8163, 8162, 8161, 8160, 8159, 8158, 8157, 8156, 8155, 8154, 8153, 8152, 8151, 8150, 8149, 8148, 8147, 8146, 8145, 8144, 8143, 8142, 8141, 8140, 8139, 8138, 8137, 8136, 8135, 8134, 8133, 8132, 8131, 8130, 8129, 8128, 8127, 8126, 8125, 8124, 8123, 8122, 8121, 8120, 8119, 8118, 8117, 8116, 8115, 8114, 8113, 8112, 8111, 8110, 8109, 8108, 8107, 8106, 8105, 8104, 8103, 8102, 8101, 8100, 8099, 8098, 8097, 8096, 8095, 8094, 8093, 8092, 8091, 8090, 8089, 8088, 8087, 8086, 8085, 8084, 8083, 8082, 8081, 8080, 8079, 8078, 8077, 8076, 8075, 8074, 8073, 8072, 8071, 8070, 8069, 8068, 8067, 8066, 8065, 8064, 8063, 8062, 8061, 8060, 8059, 8058, 8057, 8056, 8055, 8054, 8053, 8052, 8051, 8050, 8049, 8048, 8047, 8046, 8045, 8044, 8043, 8042, 8041, 8040, 8039, 8038, 8037, 8036, 8035, 8034, 8033, 8032, 8031, 8030, 8029, 8028, 8027, 8026, 8025, 8024, 8023, 8022, 8021, 8020, 8019, 8018, 8017, 8016, 8015, 8014, 8013, 8012, 8011, 8010, 8009, 8008, 8007, 8006, 8005, 8004, 8003, 8002, 8001, 8000, 7999, 7998, 7997, 7996, 7995, 7994, 7993, 7992, 7991, 7990, 7989, 7988, 7987, 7986, 7985, 7984, 7983, 7982, 7981, 7980, 7979, 7978, 7977, 7976, 7975, 7974, 7973, 7972, 7971, 7970, 7969, 7968, 7967, 7966, 7965, 7964, 7963, 7962, 7961, 7960, 7959, 7958, 7957, 7956, 7955, 7954, 7953, 7952, 7951, 7950, 7949, 7948, 7947, 7946, 7945, 7944, 7943, 7942, 7941, 7940, 7939, 7938, 7937, 7936, 7935, 7934, 7933, 7932, 7931, 7930, 7929, 7928, 7927, 7926, 7925, 7924, 7923, 7922, 7921, 7920, 7919, 7918, 7917, 7916, 7915, 7914, 7913, 7912, 7911, 7910, 7909, 7908, 7907, 7906, 7905, 7904, 7903, 7902, 7901, 7900, 7899, 7898, 7897, 7896, 7895, 7894, 7893, 7892, 7891, 7890, 7889, 7888, 7887, 7886, 7885, 7884, 7883, 7882, 7881, 7880, 7879, 7878, 7877, 7876, 7875, 7874, 7873, 7872, 7871, 7870, 7869, 7868, 7867, 7866, 7865, 7864, 7863, 7862, 7861, 7860, 7859, 7858, 7857, 7856, 7855, 7854, 7853, 7852, 7851, 7850, 7849, 7848, 7847, 7846, 7845, 7844, 7843, 7842, 7841, 7840, 7839, 7838, 7837, 7836, 7835, 7834, 7833, 7832, 7831, 7830, 7829, 7828, 7827, 7826, 7825, 7824, 7823, 7822, 7821, 7820, 7819, 7818, 7817, 7816, 7815, 7814, 7813, 7812, 7811, 7810, 7809, 7808, 7807, 7806, 7805, 7804, 7803, 7802, 7801, 7800, 7799, 7798, 7797, 7796, 7795, 7794, 7793, 7792, 7791, 7790, 7789, 7788, 7787, 7786, 7785, 7784, 7783, 7782, 7781, 7780, 7779, 7778, 7777, 7776, 7775, 7774, 7773, 7772, 7771, 7770, 7769, 7768, 7767, 7766, 7765, 7764, 7763, 7762, 7761, 7760, 7759, 7758, 7757, 7756, 7755, 7754, 7753, 7752, 7751, 7750, 7749, 7748, 7747, 7746, 7745, 7744, 7743, 7742, 7741, 7740, 7739, 7738, 7737, 7736, 7735, 7734, 7733, 7732, 7731, 7730, 7729, 7728, 7727, 7726, 7725, 7724, 7723, 7722, 7721, 7720, 7719, 7718, 7717, 7716, 7715, 7714, 7713, 7712, 7711, 7710, 7709, 7708, 7707, 7706, 7705, 7704, 7703, 7702, 7701, 7700, 7699, 7698, 7697, 7696, 7695, 7694, 7693, 7692, 7691, 7690, 7689, 7688, 7687, 7686, 7685, 7684, 7683, 7682, 7681, 7680, 7679, 7678, 7677, 7676, 7675, 7674, 7673, 7672, 7671, 7670, 7669, 7668, 7667, 7666, 7665, 7664, 7663, 7662, 7661, 7660, 7659, 7658, 7657, 7656, 7655, 7654, 7653, 7652, 7651, 7650, 7649, 7648, 7647, 7646, 7645, 7644, 7643, 7642, 7641, 7640, 7639, 7638, 7637, 7636, 7635, 7634, 7633, 7632, 7631, 7630, 7629, 7628, 7627, 7626, 7625, 7624, 7623, 7622, 7621, 7620, 7619, 7618, 7617, 7616, 7615, 7614, 7613, 7612, 7611, 7610, 7609, 7608, 7607, 7606, 7605, 7604, 7603, 7602, 7601, 7600, 7599, 7598, 7597, 7596, 7595, 7594, 7593, 7592, 7591, 7590, 7589, 7588, 7587, 7586, 7585, 7584, 7583, 7582, 7581, 7580, 7579, 7578, 7577, 7576, 7575, 7574, 7573, 7572, 7571, 7570, 7569, 7568, 7567, 7566, 7565, 7564, 7563, 7562, 7561, 7560, 7559, 7558, 7557, 7556, 7555, 7554, 7553, 7552, 7551, 7550, 7549, 7548, 7547, 7546, 7545, 7544, 7543, 7542, 7541, 7540, 7539, 7538, 7537, 7536, 7535, 7534, 7533, 7532, 7531, 7530, 7529, 7528, 7527, 7526, 7525, 7524, 7523, 7522, 7521, 7520, 7519, 7518, 7517, 7516, 7515, 7514, 7513, 7512, 7511, 7510, 7509, 7508, 7507, 7506, 7505, 7504, 7503, 7502, 7501, 7500, 7499, 7498, 7497, 7496, 7495, 7494, 7493, 7492, 7491, 7490, 7489, 7488, 7487, 7486, 7485, 7484, 7483, 7482, 7481, 7480, 7479, 7478, 7477, 7476, 7475, 7474, 7473, 7472, 7471, 7470, 7469, 7468, 7467, 7466, 7465, 7464, 7463, 7462, 7461, 7460, 7459, 7458, 7457, 7456, 7455, 7454, 7453, 7452, 7451, 7450, 7449, 7448, 7447, 7446, 7445, 7444, 7443, 7442, 7441, 7440, 7439, 7438, 7437, 7436, 7435, 7434, 7433, 7432, 7431, 7430, 7429, 7428, 7427, 7426, 7425, 7424, 7423, 7422, 7421, 7420, 7419, 7418, 7417, 7416, 7415, 7414, 7413, 7412, 7411, 7410, 7409, 7408, 7407, 7406, 7405, 7404, 7403, 7402, 7401, 7400, 7399, 7398, 7397, 7396, 7395, 7394, 7393, 7392, 7391, 7390, 7389, 7388, 7387, 7386, 7385, 7384, 7383, 7382, 7381, 7380, 7379, 7378, 7377, 7376, 7375, 7374, 7373, 7372, 7371, 7370, 7369, 7368, 7367, 7366, 7365, 7364, 7363, 7362, 7361, 7360, 7359, 7358, 7357, 7356, 7355, 7354, 7353, 7352, 7351, 7350, 7349, 7348, 7347, 7346, 7345, 7344, 7343, 7342, 7341, 7340, 7339, 7338, 7337, 7336, 7335, 7334, 7333, 7332, 7331, 7330, 7329, 7328, 7327, 7326, 7325, 7324, 7323, 7322, 7321, 7320, 7319, 7318, 7317, 7316, 7315, 7314, 7313, 7312, 7311, 7310, 7309, 7308, 7307, 7306, 7305, 7304, 7303, 7302, 7301, 7300, 7299, 7298, 7297, 7296, 7295, 7294, 7293, 7292, 7291, 7290, 7289, 7288, 7287, 7286, 7285, 7284, 7283, 7282, 7281, 7280, 7279, 7278, 7277, 7276, 7275, 7274, 7273, 7272, 7271, 7270, 7269, 7268, 7267, 7266, 7265, 7264, 7263, 7262, 7261, 7260, 7259, 7258, 7257, 7256, 7255, 7254, 7253, 7252, 7251, 7250, 7249, 7248, 7247, 7246, 7245, 7244, 7243, 7242, 7241, 7240, 7239, 7238, 7237, 7236, 7235, 7234, 7233, 7232, 7231, 7230, 7229, 7228, 7227, 7226, 7225, 7224, 7223, 7222, 7221, 7220, 7219, 7218, 7217, 7216, 7215, 7214, 7213, 7212, 7211, 7210, 7209, 7208, 7207, 7206, 7205, 7204, 7203, 7202, 7201, 7200, 7199, 7198, 7197, 7196, 7195, 7194, 7193, 7192, 7191, 7190, 7189, 7188, 7187, 7186, 7185, 7184, 7183, 7182, 7181, 7180, 7179, 7178, 7177, 7176, 7175, 7174, 7173, 7172, 7171, 7170, 7169, 7168, 7167, 7166, 7165, 7164, 7163, 7162, 7161, 7160, 7159, 7158, 7157, 7156, 7155, 7154, 7153, 7152, 7151, 7150, 7149, 7148, 7147, 7146, 7145, 7144, 7143, 7142, 7141, 7140, 7139, 7138, 7137, 7136, 7135, 7134, 7133, 7132, 7131, 7130, 7129, 7128, 7127, 7126, 7125, 7124, 7123, 7122, 7121, 7120, 7119, 7118, 7117, 7116, 7115, 7114, 7113, 7112, 7111, 7110, 7109, 7108, 7107, 7106, 7105, 7104, 7103, 7102, 7101, 7100, 7099, 7098, 7097, 7096, 7095, 7094, 7093, 7092, 7091, 7090, 7089, 7088, 7087, 7086, 7085, 7084, 7083, 7082, 7081, 7080, 7079, 7078, 7077, 7076, 7075, 7074, 7073, 7072, 7071, 7070, 7069, 7068, 7067, 7066, 7065, 7064, 7063, 7062, 7061, 7060, 7059, 7058, 7057, 7056, 7055, 7054, 7053, 7052, 7051, 7050, 7049, 7048, 7047, 7046, 7045, 7044, 7043, 7042, 7041, 7040, 7039, 7038, 7037, 7036, 7035, 7034, 7033, 7032, 7031, 7030, 7029, 7028, 7027, 7026, 7025, 7024, 7023, 7022, 7021, 7020, 7019, 7018, 7017, 7016, 7015, 7014, 7013, 7012, 7011, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003, 7002, 7001, 7000, 6999, 6998, 6997, 6996, 6995, 6994, 6993, 6992, 6991, 6990, 6989, 6988, 6987, 6986, 6985, 6984, 6983, 6982, 6981, 6980, 6979, 6978, 6977, 6976, 6975, 6974, 6973, 6972, 6971, 6970, 6969, 6968, 6967, 6966, 6965, 6964, 6963, 6962, 6961, 6960, 6959, 6958, 6957, 6956, 6955, 6954, 6953, 6952, 6951, 6950, 6949, 6948, 6947, 6946, 6945, 6944, 6943, 6942, 6941, 6940, 6939, 6938, 6937, 6936, 6935, 6934, 6933, 6932, 6931, 6930, 6929, 6928, 6927, 6926, 6925, 6924, 6923, 6922, 6921, 6920, 6919, 6918, 6917, 6916, 6915, 6914, 6913, 6912, 6911, 6910, 6909, 6908, 6907, 6906, 6905, 6904, 6903, 6902, 6901, 6900, 6899, 6898, 6897, 6896, 6895, 6894, 6893, 6892, 6891, 6890, 6889, 6888, 6887, 6886, 6885, 6884, 6883, 6882, 6881, 6880, 6879, 6878, 6877, 6876, 6875, 6874, 6873, 6872, 6871, 6870, 6869, 6868, 6867, 6866, 6865, 6864, 6863, 6862, 6861, 6860, 6859, 6858, 6857, 6856, 6855, 6854, 6853, 6852, 6851, 6850, 6849, 6848, 6847, 6846, 6845, 6844, 6843, 6842, 6841, 6840, 6839, 6838, 6837, 6836, 6835, 6834, 6833, 6832, 6831, 6830, 6829, 6828, 6827, 6826, 6825, 6824, 6823, 6822, 6821, 6820, 6819, 6818, 6817, 6816, 6815, 6814, 6813, 6812, 6811, 6810, 6809, 6808, 6807, 6806, 6805, 6804, 6803, 6802, 6801, 6800, 6799, 6798, 6797, 6796, 6795, 6794, 6793, 6792, 6791, 6790, 6789, 6788, 6787, 6786, 6785, 6784, 6783, 6782, 6781, 6780, 6779, 6778, 6777, 6776, 6775, 6774, 6773, 6772, 6771, 6770, 6769, 6768, 6767, 6766, 6765, 6764, 6763, 6762, 6761, 6760, 6759, 6758, 6757, 6756, 6755, 6754, 6753, 6752, 6751, 6750, 6749, 6748, 6747, 6746, 6745, 6744, 6743, 6742, 6741, 6740, 6739, 6738, 6737, 6736, 6735, 6734, 6733, 6732, 6731, 6730, 6729, 6728, 6727, 6726, 6725, 6724, 6723, 6722, 6721, 6720, 6719, 6718, 6717, 6716, 6715, 6714, 6713, 6712, 6711, 6710, 6709, 6708, 6707, 6706, 6705, 6704, 6703, 6702, 6701, 6700, 6699, 6698, 6697, 6696, 6695, 6694, 6693, 6692, 6691, 6690, 6689, 6688, 6687, 6686, 6685, 6684, 6683, 6682, 6681, 6680, 6679, 6678, 6677, 6676, 6675, 6674, 6673, 6672, 6671, 6670, 6669, 6668, 6667, 6666, 6665, 6664, 6663, 6662, 6661, 6660, 6659, 6658, 6657, 6656, 6655, 6654, 6653, 6652, 6651, 6650, 6649, 6648, 6647, 6646, 6645, 6644, 6643, 6642, 6641, 6640, 6639, 6638, 6637, 6636, 6635, 6634, 6633, 6632, 6631, 6630, 6629, 6628, 6627, 6626, 6625, 6624, 6623, 6622, 6621, 6620, 6619, 6618, 6617, 6616, 6615, 6614, 6613, 6612, 6611, 6610, 6609, 6608, 6607, 6606, 6605, 6604, 6603, 6602, 6601, 6600, 6599, 6598, 6597, 6596, 6595, 6594, 6593, 6592, 6591, 6590, 6589, 6588, 6587, 6586, 6585, 6584, 6583, 6582, 6581, 6580, 6579, 6578, 6577, 6576, 6575, 6574, 6573, 6572, 6571, 6570, 6569, 6568, 6567, 6566, 6565, 6564, 6563, 6562, 6561, 6560, 6559, 6558, 6557, 6556, 6555, 6554, 6553, 6552, 6551, 6550, 6549, 6548, 6547, 6546, 6545, 6544, 6543, 6542, 6541, 6540, 6539, 6538, 6537, 6536, 6535, 6534, 6533, 6532, 6531, 6530, 6529, 6528, 6527, 6526, 6525, 6524, 6523, 6522, 6521, 6520, 6519, 6518, 6517, 6516, 6515, 6514, 6513, 6512, 6511, 6510, 6509, 6508, 6507, 6506, 6505, 6504, 6503, 6502, 6501, 6500, 6499, 6498, 6497, 6496, 6495, 6494, 6493, 6492, 6491, 6490, 6489, 6488, 6487, 6486, 6485, 6484, 6483, 6482, 6481, 6480, 6479, 6478, 6477, 6476, 6475, 6474, 6473, 6472, 6471, 6470, 6469, 6468, 6467, 6466, 6465, 6464, 6463, 6462, 6461, 6460, 6459, 6458, 6457, 6456, 6455, 6454, 6453, 6452, 6451, 6450, 6449, 6448, 6447, 6446, 6445, 6444, 6443, 6442, 6441, 6440, 6439, 6438, 6437, 6436, 6435, 6434, 6433, 6432, 6431, 6430, 6429, 6428, 6427, 6426, 6425, 6424, 6423, 6422, 6421, 6420, 6419, 6418, 6417, 6416, 6415, 6414, 6413, 6412, 6411, 6410, 6409, 6408, 6407, 6406, 6405, 6404, 6403, 6402, 6401, 6400, 6399, 6398, 6397, 6396, 6395, 6394, 6393, 6392, 6391, 6390, 6389, 6388, 6387, 6386, 6385, 6384, 6383, 6382, 6381, 6380, 6379, 6378, 6377, 6376, 6375, 6374, 6373, 6372, 6371, 6370, 6369, 6368, 6367, 6366, 6365, 6364, 6363, 6362, 6361, 6360, 6359, 6358, 6357, 6356, 6355, 6354, 6353, 6352, 6351, 6350, 6349, 6348, 6347, 6346, 6345, 6344, 6343, 6342, 6341, 6340, 6339, 6338, 6337, 6336, 6335, 6334, 6333, 6332, 6331, 6330, 6329, 6328, 6327, 6326, 6325, 6324, 6323, 6322, 6321, 6320, 6319, 6318, 6317, 6316, 6315, 6314, 6313, 6312, 6311, 6310, 6309, 6308, 6307, 6306, 6305, 6304, 6303, 6302, 6301, 6300, 6299, 6298, 6297, 6296, 6295, 6294, 6293, 6292, 6291, 6290, 6289, 6288, 6287, 6286, 6285, 6284, 6283, 6282, 6281, 6280, 6279, 6278, 6277, 6276, 6275, 6274, 6273, 6272, 6271, 6270, 6269, 6268, 6267, 6266, 6265, 6264, 6263, 6262, 6261, 6260, 6259, 6258, 6257, 6256, 6255, 6254, 6253, 6252, 6251, 6250, 6249, 6248, 6247, 6246, 6245, 6244, 6243, 6242, 6241, 6240, 6239, 6238, 6237, 6236, 6235, 6234, 6233, 6232, 6231, 6230, 6229, 6228, 6227, 6226, 6225, 6224, 6223, 6222, 6221, 6220, 6219, 6218, 6217, 6216, 6215, 6214, 6213, 6212, 6211, 6210, 6209, 6208, 6207, 6206, 6205, 6204, 6203, 6202, 6201, 6200, 6199, 6198, 6197, 6196, 6195, 6194, 6193, 6192, 6191, 6190, 6189, 6188, 6187, 6186, 6185, 6184, 6183, 6182, 6181, 6180, 6179, 6178, 6177, 6176, 6175, 6174, 6173, 6172, 6171, 6170, 6169, 6168, 6167, 6166, 6165, 6164, 6163, 6162, 6161, 6160, 6159, 6158, 6157, 6156, 6155, 6154, 6153, 6152, 6151, 6150, 6149, 6148, 6147, 6146, 6145, 6144, 6143, 6142, 6141, 6140, 6139, 6138, 6137, 6136, 6135, 6134, 6133, 6132, 6131, 6130, 6129, 6128, 6127, 6126, 6125, 6124, 6123, 6122, 6121, 6120, 6119, 6118, 6117, 6116, 6115, 6114, 6113, 6112, 6111, 6110, 6109, 6108, 6107, 6106, 6105, 6104, 6103, 6102, 6101, 6100, 6099, 6098, 6097, 6096, 6095, 6094, 6093, 6092, 6091, 6090, 6089, 6088, 6087, 6086, 6085, 6084, 6083, 6082, 6081, 6080, 6079, 6078, 6077, 6076, 6075, 6074, 6073, 6072, 6071, 6070, 6069, 6068, 6067, 6066, 6065, 6064, 6063, 6062, 6061, 6060, 6059, 6058, 6057, 6056, 6055, 6054, 6053, 6052, 6051, 6050, 6049, 6048, 6047, 6046, 6045, 6044, 6043, 6042, 6041, 6040, 6039, 6038, 6037, 6036, 6035, 6034, 6033, 6032, 6031, 6030, 6029, 6028, 6027, 6026, 6025, 6024, 6023, 6022, 6021, 6020, 6019, 6018, 6017, 6016, 6015, 6014, 6013, 6012, 6011, 6010, 6009, 6008, 6007, 6006, 6005, 6004, 6003, 6002, 6001, 6000, 5999, 5998, 5997, 5996, 5995, 5994, 5993, 5992, 5991, 5990, 5989, 5988, 5987, 5986, 5985, 5984, 5983, 5982, 5981, 5980, 5979, 5978, 5977, 5976, 5975, 5974, 5973, 5972, 5971, 5970, 5969, 5968, 5967, 5966, 5965, 5964, 5963, 5962, 5961, 5960, 5959, 5958, 5957, 5956, 5955, 5954, 5953, 5952, 5951, 5950, 5949, 5948, 5947, 5946, 5945, 5944, 5943, 5942, 5941, 5940, 5939, 5938, 5937, 5936, 5935, 5934, 5933, 5932, 5931, 5930, 5929, 5928, 5927, 5926, 5925, 5924, 5923, 5922, 5921, 5920, 5919, 5918, 5917, 5916, 5915, 5914, 5913, 5912, 5911, 5910, 5909, 5908, 5907, 5906, 5905, 5904, 5903, 5902, 5901, 5900, 5899, 5898, 5897, 5896, 5895, 5894, 5893, 5892, 5891, 5890, 5889, 5888, 5887, 5886, 5885, 5884, 5883, 5882, 5881, 5880, 5879, 5878, 5877, 5876, 5875, 5874, 5873, 5872, 5871, 5870, 5869, 5868, 5867, 5866, 5865, 5864, 5863, 5862, 5861, 5860, 5859, 5858, 5857, 5856, 5855, 5854, 5853, 5852, 5851, 5850, 5849, 5848, 5847, 5846, 5845, 5844, 5843, 5842, 5841, 5840, 5839, 5838, 5837, 5836, 5835, 5834, 5833, 5832, 5831, 5830, 5829, 5828, 5827, 5826, 5825, 5824, 5823, 5822, 5821, 5820, 5819, 5818, 5817, 5816, 5815, 5814, 5813, 5812, 5811, 5810, 5809, 5808, 5807, 5806, 5805, 5804, 5803, 5802, 5801, 5800, 5799, 5798, 5797, 5796, 5795, 5794, 5793, 5792, 5791, 5790, 5789, 5788, 5787, 5786, 5785, 5784, 5783, 5782, 5781, 5780, 5779, 5778, 5777, 5776, 5775, 5774, 5773, 5772, 5771, 5770, 5769, 5768, 5767, 5766, 5765, 5764, 5763, 5762, 5761, 5760, 5759, 5758, 5757, 5756, 5755, 5754, 5753, 5752, 5751, 5750, 5749, 5748, 5747, 5746, 5745, 5744, 5743, 5742, 5741, 5740, 5739, 5738, 5737, 5736, 5735, 5734, 5733, 5732, 5731, 5730, 5729, 5728, 5727, 5726, 5725, 5724, 5723, 5722, 5721, 5720, 5719, 5718, 5717, 5716, 5715, 5714, 5713, 5712, 5711, 5710, 5709, 5708, 5707, 5706, 5705, 5704, 5703, 5702, 5701, 5700, 5699, 5698, 5697, 5696, 5695, 5694, 5693, 5692, 5691, 5690, 5689, 5688, 5687, 5686, 5685, 5684, 5683, 5682, 5681, 5680, 5679, 5678, 5677, 5676, 5675, 5674, 5673, 5672, 5671, 5670, 5669, 5668, 5667, 5666, 5665, 5664, 5663, 5662, 5661, 5660, 5659, 5658, 5657, 5656, 5655, 5654, 5653, 5652, 5651, 5650, 5649, 5648, 5647, 5646, 5645, 5644, 5643, 5642, 5641, 5640, 5639, 5638, 5637, 5636, 5635, 5634, 5633, 5632, 5631, 5630, 5629, 5628, 5627, 5626, 5625, 5624, 5623, 5622, 5621, 5620, 5619, 5618, 5617, 5616, 5615, 5614, 5613, 5612, 5611, 5610, 5609, 5608, 5607, 5606, 5605, 5604, 5603, 5602, 5601, 5600, 5599, 5598, 5597, 5596, 5595, 5594, 5593, 5592, 5591, 5590, 5589, 5588, 5587, 5586, 5585, 5584, 5583, 5582, 5581, 5580, 5579, 5578, 5577, 5576, 5575, 5574, 5573, 5572, 5571, 5570, 5569, 5568, 5567, 5566, 5565, 5564, 5563, 5562, 5561, 5560, 5559, 5558, 5557, 5556, 5555, 5554, 5553, 5552, 5551, 5550, 5549, 5548, 5547, 5546, 5545, 5544, 5543, 5542, 5541, 5540, 5539, 5538, 5537, 5536, 5535, 5534, 5533, 5532, 5531, 5530, 5529, 5528, 5527, 5526, 5525, 5524, 5523, 5522, 5521, 5520, 5519, 5518, 5517, 5516, 5515, 5514, 5513, 5512, 5511, 5510, 5509, 5508, 5507, 5506, 5505, 5504, 5503, 5502, 5501, 5500, 5499, 5498, 5497, 5496, 5495, 5494, 5493, 5492, 5491, 5490, 5489, 5488, 5487, 5486, 5485, 5484, 5483, 5482, 5481, 5480, 5479, 5478, 5477, 5476, 5475, 5474, 5473, 5472, 5471, 5470, 5469, 5468, 5467, 5466, 5465, 5464, 5463, 5462, 5461, 5460, 5459, 5458, 5457, 5456, 5455, 5454, 5453, 5452, 5451, 5450, 5449, 5448, 5447, 5446, 5445, 5444, 5443, 5442, 5441, 5440, 5439, 5438, 5437, 5436, 5435, 5434, 5433, 5432, 5431, 5430, 5429, 5428, 5427, 5426, 5425, 5424, 5423, 5422, 5421, 5420, 5419, 5418, 5417, 5416, 5415, 5414, 5413, 5412, 5411, 5410, 5409, 5408, 5407, 5406, 5405, 5404, 5403, 5402, 5401, 5400, 5399, 5398, 5397, 5396, 5395, 5394, 5393, 5392, 5391, 5390, 5389, 5388, 5387, 5386, 5385, 5384, 5383, 5382, 5381, 5380, 5379, 5378, 5377, 5376, 5375, 5374, 5373, 5372, 5371, 5370, 5369, 5368, 5367, 5366, 5365, 5364, 5363, 5362, 5361, 5360, 5359, 5358, 5357, 5356, 5355, 5354, 5353, 5352, 5351, 5350, 5349, 5348, 5347, 5346, 5345, 5344, 5343, 5342, 5341, 5340, 5339, 5338, 5337, 5336, 5335, 5334, 5333, 5332, 5331, 5330, 5329, 5328, 5327, 5326, 5325, 5324, 5323, 5322, 5321, 5320, 5319, 5318, 5317, 5316, 5315, 5314, 5313, 5312, 5311, 5310, 5309, 5308, 5307, 5306, 5305, 5304, 5303, 5302, 5301, 5300, 5299, 5298, 5297, 5296, 5295, 5294, 5293, 5292, 5291, 5290, 5289, 5288, 5287, 5286, 5285, 5284, 5283, 5282, 5281, 5280, 5279, 5278, 5277, 5276, 5275, 5274, 5273, 5272, 5271, 5270, 5269, 5268, 5267, 5266, 5265, 5264, 5263, 5262, 5261, 5260, 5259, 5258, 5257, 5256, 5255, 5254, 5253, 5252, 5251, 5250, 5249, 5248, 5247, 5246, 5245, 5244, 5243, 5242, 5241, 5240, 5239, 5238, 5237, 5236, 5235, 5234, 5233, 5232, 5231, 5230, 5229, 5228, 5227, 5226, 5225, 5224, 5223, 5222, 5221, 5220, 5219, 5218, 5217, 5216, 5215, 5214, 5213, 5212, 5211, 5210, 5209, 5208, 5207, 5206, 5205, 5204, 5203, 5202, 5201, 5200, 5199, 5198, 5197, 5196, 5195, 5194, 5193, 5192, 5191, 5190, 5189, 5188, 5187, 5186, 5185, 5184, 5183, 5182, 5181, 5180, 5179, 5178, 5177, 5176, 5175, 5174, 5173, 5172, 5171, 5170, 5169, 5168, 5167, 5166, 5165, 5164, 5163, 5162, 5161, 5160, 5159, 5158, 5157, 5156, 5155, 5154, 5153, 5152, 5151, 5150, 5149, 5148, 5147, 5146, 5145, 5144, 5143, 5142, 5141, 5140, 5139, 5138, 5137, 5136, 5135, 5134, 5133, 5132, 5131, 5130, 5129, 5128, 5127, 5126, 5125, 5124, 5123, 5122, 5121, 5120, 5119, 5118, 5117, 5116, 5115, 5114, 5113, 5112, 5111, 5110, 5109, 5108, 5107, 5106, 5105, 5104, 5103, 5102, 5101, 5100, 5099, 5098, 5097, 5096, 5095, 5094, 5093, 5092, 5091, 5090, 5089, 5088, 5087, 5086, 5085, 5084, 5083, 5082, 5081, 5080, 5079, 5078, 5077, 5076, 5075, 5074, 5073, 5072, 5071, 5070, 5069, 5068, 5067, 5066, 5065, 5064, 5063, 5062, 5061, 5060, 5059, 5058, 5057, 5056, 5055, 5054, 5053, 5052, 5051, 5050, 5049, 5048, 5047, 5046, 5045, 5044, 5043, 5042, 5041, 5040, 5039, 5038, 5037, 5036, 5035, 5034, 5033, 5032, 5031, 5030, 5029, 5028, 5027, 5026, 5025, 5024, 5023, 5022, 5021, 5020, 5019, 5018, 5017, 5016, 5015, 5014, 5013, 5012, 5011, 5010, 5009, 5008, 5007, 5006, 5005, 5004, 5003, 5002, 5001, 5000, 4999, 4998, 4997, 4996, 4995, 4994, 4993, 4992, 4991, 4990, 4989, 4988, 4987, 4986, 4985, 4984, 4983, 4982, 4981, 4980, 4979, 4978, 4977, 4976, 4975, 4974, 4973, 4972, 4971, 4970, 4969, 4968, 4967, 4966, 4965, 4964, 4963, 4962, 4961, 4960, 4959, 4958, 4957, 4956, 4955, 4954, 4953, 4952, 4951, 4950, 4949, 4948, 4947, 4946, 4945, 4944, 4943, 4942, 4941, 4940, 4939, 4938, 4937, 4936, 4935, 4934, 4933, 4932, 4931, 4930, 4929, 4928, 4927, 4926, 4925, 4924, 4923, 4922, 4921, 4920, 4919, 4918, 4917, 4916, 4915, 4914, 4913, 4912, 4911, 4910, 4909, 4908, 4907, 4906, 4905, 4904, 4903, 4902, 4901, 4900, 4899, 4898, 4897, 4896, 4895, 4894, 4893, 4892, 4891, 4890, 4889, 4888, 4887, 4886, 4885, 4884, 4883, 4882, 4881, 4880, 4879, 4878, 4877, 4876, 4875, 4874, 4873, 4872, 4871, 4870, 4869, 4868, 4867, 4866, 4865, 4864, 4863, 4862, 4861, 4860, 4859, 4858, 4857, 4856, 4855, 4854, 4853, 4852, 4851, 4850, 4849, 4848, 4847, 4846, 4845, 4844, 4843, 4842, 4841, 4840, 4839, 4838, 4837, 4836, 4835, 4834, 4833, 4832, 4831, 4830, 4829, 4828, 4827, 4826, 4825, 4824, 4823, 4822, 4821, 4820, 4819, 4818, 4817, 4816, 4815, 4814, 4813, 4812, 4811, 4810, 4809, 4808, 4807, 4806, 4805, 4804, 4803, 4802, 4801, 4800, 4799, 4798, 4797, 4796, 4795, 4794, 4793, 4792, 4791, 4790, 4789, 4788, 4787, 4786, 4785, 4784, 4783, 4782, 4781, 4780, 4779, 4778, 4777, 4776, 4775, 4774, 4773, 4772, 4771, 4770, 4769, 4768, 4767, 4766, 4765, 4764, 4763, 4762, 4761, 4760, 4759, 4758, 4757, 4756, 4755, 4754, 4753, 4752, 4751, 4750, 4749, 4748, 4747, 4746, 4745, 4744, 4743, 4742, 4741, 4740, 4739, 4738, 4737, 4736, 4735, 4734, 4733, 4732, 4731, 4730, 4729, 4728, 4727, 4726, 4725, 4724, 4723, 4722, 4721, 4720, 4719, 4718, 4717, 4716, 4715, 4714, 4713, 4712, 4711, 4710, 4709, 4708, 4707, 4706, 4705, 4704, 4703, 4702, 4701, 4700, 4699, 4698, 4697, 4696, 4695, 4694, 4693, 4692, 4691, 4690, 4689, 4688, 4687, 4686, 4685, 4684, 4683, 4682, 4681, 4680, 4679, 4678, 4677, 4676, 4675, 4674, 4673, 4672, 4671, 4670, 4669, 4668, 4667, 4666, 4665, 4664, 4663, 4662, 4661, 4660, 4659, 4658, 4657, 4656, 4655, 4654, 4653, 4652, 4651, 4650, 4649, 4648, 4647, 4646, 4645, 4644, 4643, 4642, 4641, 4640, 4639, 4638, 4637, 4636, 4635, 4634, 4633, 4632, 4631, 4630, 4629, 4628, 4627, 4626, 4625, 4624, 4623, 4622, 4621, 4620, 4619, 4618, 4617, 4616, 4615, 4614, 4613, 4612, 4611, 4610, 4609, 4608, 4607, 4606, 4605, 4604, 4603, 4602, 4601, 4600, 4599, 4598, 4597, 4596, 4595, 4594, 4593, 4592, 4591, 4590, 4589, 4588, 4587, 4586, 4585, 4584, 4583, 4582, 4581, 4580, 4579, 4578, 4577, 4576, 4575, 4574, 4573, 4572, 4571, 4570, 4569, 4568, 4567, 4566, 4565, 4564, 4563, 4562, 4561, 4560, 4559, 4558, 4557, 4556, 4555, 4554, 4553, 4552, 4551, 4550, 4549, 4548, 4547, 4546, 4545, 4544, 4543, 4542, 4541, 4540, 4539, 4538, 4537, 4536, 4535, 4534, 4533, 4532, 4531, 4530, 4529, 4528, 4527, 4526, 4525, 4524, 4523, 4522, 4521, 4520, 4519, 4518, 4517, 4516, 4515, 4514, 4513, 4512, 4511, 4510, 4509, 4508, 4507, 4506, 4505, 4504, 4503, 4502, 4501, 4500, 4499, 4498, 4497, 4496, 4495, 4494, 4493, 4492, 4491, 4490, 4489, 4488, 4487, 4486, 4485, 4484, 4483, 4482, 4481, 4480, 4479, 4478, 4477, 4476, 4475, 4474, 4473, 4472, 4471, 4470, 4469, 4468, 4467, 4466, 4465, 4464, 4463, 4462, 4461, 4460, 4459, 4458, 4457, 4456, 4455, 4454, 4453, 4452, 4451, 4450, 4449, 4448, 4447, 4446, 4445, 4444, 4443, 4442, 4441, 4440, 4439, 4438, 4437, 4436, 4435, 4434, 4433, 4432, 4431, 4430, 4429, 4428, 4427, 4426, 4425, 4424, 4423, 4422, 4421, 4420, 4419, 4418, 4417, 4416, 4415, 4414, 4413, 4412, 4411, 4410, 4409, 4408, 4407, 4406, 4405, 4404, 4403, 4402, 4401, 4400, 4399, 4398, 4397, 4396, 4395, 4394, 4393, 4392, 4391, 4390, 4389, 4388, 4387, 4386, 4385, 4384, 4383, 4382, 4381, 4380, 4379, 4378, 4377, 4376, 4375, 4374, 4373, 4372, 4371, 4370, 4369, 4368, 4367, 4366, 4365, 4364, 4363, 4362, 4361, 4360, 4359, 4358, 4357, 4356, 4355, 4354, 4353, 4352, 4351, 4350, 4349, 4348, 4347, 4346, 4345, 4344, 4343, 4342, 4341, 4340, 4339, 4338, 4337, 4336, 4335, 4334, 4333, 4332, 4331, 4330, 4329, 4328, 4327, 4326, 4325, 4324, 4323, 4322, 4321, 4320, 4319, 4318, 4317, 4316, 4315, 4314, 4313, 4312, 4311, 4310, 4309, 4308, 4307, 4306, 4305, 4304, 4303, 4302, 4301, 4300, 4299, 4298, 4297, 4296, 4295, 4294, 4293, 4292, 4291, 4290, 4289, 4288, 4287, 4286, 4285, 4284, 4283, 4282, 4281, 4280, 4279, 4278, 4277, 4276, 4275, 4274, 4273, 4272, 4271, 4270, 4269, 4268, 4267, 4266, 4265, 4264, 4263, 4262, 4261, 4260, 4259, 4258, 4257, 4256, 4255, 4254, 4253, 4252, 4251, 4250, 4249, 4248, 4247, 4246, 4245, 4244, 4243, 4242, 4241, 4240, 4239, 4238, 4237, 4236, 4235, 4234, 4233, 4232, 4231, 4230, 4229, 4228, 4227, 4226, 4225, 4224, 4223, 4222, 4221, 4220, 4219, 4218, 4217, 4216, 4215, 4214, 4213, 4212, 4211, 4210, 4209, 4208, 4207, 4206, 4205, 4204, 4203, 4202, 4201, 4200, 4199, 4198, 4197, 4196, 4195, 4194, 4193, 4192, 4191, 4190, 4189, 4188, 4187, 4186, 4185, 4184, 4183, 4182, 4181, 4180, 4179, 4178, 4177, 4176, 4175, 4174, 4173, 4172, 4171, 4170, 4169, 4168, 4167, 4166, 4165, 4164, 4163, 4162, 4161, 4160, 4159, 4158, 4157, 4156, 4155, 4154, 4153, 4152, 4151, 4150, 4149, 4148, 4147, 4146, 4145, 4144, 4143, 4142, 4141, 4140, 4139, 4138, 4137, 4136, 4135, 4134, 4133, 4132, 4131, 4130, 4129, 4128, 4127, 4126, 4125, 4124, 4123, 4122, 4121, 4120, 4119, 4118, 4117, 4116, 4115, 4114, 4113, 4112, 4111, 4110, 4109, 4108, 4107, 4106, 4105, 4104, 4103, 4102, 4101, 4100, 4099, 4098, 4097, 4096, 4095, 4094, 4093, 4092, 4091, 4090, 4089, 4088, 4087, 4086, 4085, 4084, 4083, 4082, 4081, 4080, 4079, 4078, 4077, 4076, 4075, 4074, 4073, 4072, 4071, 4070, 4069, 4068, 4067, 4066, 4065, 4064, 4063, 4062, 4061, 4060, 4059, 4058, 4057, 4056, 4055, 4054, 4053, 4052, 4051, 4050, 4049, 4048, 4047, 4046, 4045, 4044, 4043, 4042, 4041, 4040, 4039, 4038, 4037, 4036, 4035, 4034, 4033, 4032, 4031, 4030, 4029, 4028, 4027, 4026, 4025, 4024, 4023, 4022, 4021, 4020, 4019, 4018, 4017, 4016, 4015, 4014, 4013, 4012, 4011, 4010, 4009, 4008, 4007, 4006, 4005, 4004, 4003, 4002, 4001, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] TODO diff --git a/test_data/insert_operators_in_string.tsv b/test_data/insert_operators_in_string.tsv index 4a1d42a5a..24eee0ce9 100644 --- a/test_data/insert_operators_in_string.tsv +++ b/test_data/insert_operators_in_string.tsv @@ -1,106 +1,102 @@ array(int) int bool -[2, 3, 4] 4 false TODO -[1, 2, 3, 4] 11 true TODO -[1, 2, 3, 2, 5, 3, 7, 8, 5, 9] 995 true TODO -[5, 2, 3, 4, 1] 20 true TODO -[1, 1, 2, 3] 124 true TODO -[7, 7, 8, 2, 4, 7, 8] 4 false TODO -[6, 5, 4, 9, 5, 5] 22 false TODO -[5, 7, 9] 28 false TODO -[9, 2] 16 false TODO -[6, 1, 4, 7] 27 true TODO -[6, 1, 1, 9, 5, 3] 30 true TODO -[8, 9] 4 false TODO -[7, 7, 6, 7, 7] 13 false TODO -[6, 7, 0, 6] 7 false TODO -[1] 25 false TODO -[9, 5, 0, 8] 5 false TODO -[4, 1, 4, 8, 3, 9] 17 false TODO -[8, 9, 1, 5, 3, 5, 2] 9 false TODO -[5, 5, 2, 2, 5, 7] 12 false TODO -[1, 4, 1, 3, 9, 8, 1] 0 false TODO -[4, 1, 1, 3, 1, 0, 8] 12 true TODO -[9, 2, 9] 5 false TODO -[5, 9, 6, 9] 15 false TODO -[3, 2, 2, 7, 4] 3 false TODO -[1, 7, 2] 26 false TODO -[6] 16 false TODO -[9, 2, 6, 0] 10 false TODO -[9, 2, 8, 5, 5, 2] 28 false TODO -[9, 5, 5, 6, 2] 30 false TODO -[6, 3, 8] 6 false TODO -[2, 4, 8, 7] 11 false TODO -[2, 6] 28 false TODO -[7, 6] 24 false TODO -[1, 7, 8] 4 false TODO -[0, 2, 0, 7, 3] 20 false TODO -[0, 5, 3] 24 false TODO -[5, 5, 6, 0, 0, 2, 1] 29 false TODO -[4, 0, 2, 5, 2, 6] 6 true TODO -[6, 3, 5, 7] 29 false TODO -[3, 5, 5] 18 false TODO -[3, 6, 3, 8] 7 false TODO -[6, 1, 1, 5] 30 true TODO -[2, 8, 0, 8, 4, 0] 16 true TODO -[4, 6, 4, 9, 4, 2, 6] 18 false TODO -[8, 6] 18 false TODO -[7, 7, 0, 6, 6] 25 false TODO -[3, 1, 4, 6, 5, 4, 0] 27 true TODO -[2, 5, 9, 7, 7, 3, 0] 25 true TODO -[7, 3, 0, 5, 1] 24 false TODO -[3] 9 false TODO -[9, 8, 8, 2, 8, 0, 3] 16 false TODO -[3, 1, 5] 9 true TODO -[1, 6, 2, 1, 1, 2] 4 false TODO -[7, 7, 9, 6, 1, 0, 6] 4 false TODO -[9, 2, 0, 6, 0, 0, 4] 14 false TODO -[1, 3, 1, 7, 9, 7, 6] 18 false TODO -[7, 1, 1, 2] 11 true TODO -[4, 2] 18 false TODO -[6, 0, 4, 5, 4, 0] 13 true TODO -[4, 7, 3, 0, 9] 25 true TODO -[6, 5] 12 false TODO -[1, 9] 13 false TODO -[0, 6, 7] 16 false TODO -[6, 0, 8, 0] 22 false TODO -[9, 5, 7, 0, 5, 8] 13 true TODO -[1, 7] 0 false TODO -[0, 3] 29 false TODO -[0] 9 false TODO -[9] 3 false TODO -[6, 8, 2, 5] 26 false TODO -[3, 4, 8] 8 false TODO -[4, 8] 22 false TODO -[7, 1, 4, 1, 8, 6, 6] 24 false TODO -[0, 6, 9, 4, 0, 4] 8 true TODO -[5, 8, 6, 3] 8 false TODO -[6, 1, 1, 8, 5, 9] 6 false TODO -[3, 6, 0, 5, 7, 9] 25 true TODO -[4, 5, 2, 0, 9, 0] 26 false TODO -[4, 5, 5, 0, 5, 4, 3] 15 false TODO -[0, 6, 8, 4, 9] 18 false TODO -[9, 3] 27 true TODO -[7, 1, 6, 3, 7, 1, 6] 5 false TODO -[0, 2, 9, 7, 4] 30 false TODO -[4, 1, 7, 0] 18 false TODO -[8, 2, 7, 8] 27 false TODO -[0, 7, 4, 5] 3 false TODO -[9, 4, 9, 5] 25 false TODO -[8, 2, 0, 8, 0] 27 false TODO -[1, 4, 0] 1 true TODO -[7, 8, 5, 8, 4] 20 false TODO -[7, 9, 4, 3, 9, 4, 6] 2 false TODO -[2, 7, 4, 8] 13 false TODO -[6, 5, 9, 1, 8, 8, 9] 13 false TODO -[4] 17 false TODO -[4, 3, 9, 5, 3] 28 false TODO -[9, 8, 1, 9, 9, 5] 8 false TODO -[6, 8, 4, 3, 0, 1, 3] 24 true TODO -[4, 4, 1, 9, 1] 10 false TODO -[8, 9, 6, 8, 7, 6] 20 false TODO -[1, 9, 4, 6] 26 false TODO -[1, 2, 5, 0] 16 false TODO -[3, 7, 1, 9, 3, 0] 8 false TODO -[2, 5, 5] 5 false TODO -[6, 9, 8, 5, 4, 1] 13 false TODO -[4, 5, 5, 7, 8] 30 false TODO +[1, 4, 2, 5, 5, 5] 20 false TODO +[8, 8, 3] 22 false TODO +[2, 7, 5, 6, 8, 7, 4] 19 false TODO +[6, 6, 5, 1, 6, 5, 0] 2 false TODO +[3] 8 false TODO +[2, 9, 9, 9, 6, 7, 6] 22 false TODO +[8, 7, 2] 17 true TODO +[5, 6, 9, 0] 21 false TODO +[5, 6, 2] 11 false TODO +[4, 4, 4, 7, 1, 0, 9] 26 false TODO +[7, 3, 4, 4] 0 false TODO +[6, 4, 8] 9 false TODO +[9, 5, 0] 17 false TODO +[8, 4, 6, 5] 22 false TODO +[7, 9] 18 false TODO +[6] 20 false TODO +[7, 2, 2] 6 false TODO +[0] 14 false TODO +[5, 4, 0, 4, 2] 4 false TODO +[9, 3] 25 false TODO +[2, 9, 3, 7, 0, 1] 17 false TODO +[3, 0, 7, 6, 2, 4, 0] 10 true TODO +[2] 9 false TODO +[5, 9] 29 false TODO +[0, 3] 26 false TODO +[2, 3, 1, 5, 6, 1, 1] 11 false TODO +[1] 23 false TODO +[5, 8, 2, 8, 5, 1] 22 false TODO +[6, 9, 9] 11 false TODO +[6, 1, 9, 8] 7 false TODO +[6, 7, 7, 5, 6, 9] 21 false TODO +[6, 6, 8, 2, 3, 2] 6 false TODO +[8] 5 false TODO +[5, 9, 0] 23 false TODO +[7, 9, 9, 1] 14 false TODO +[9, 8, 0, 0, 0, 0] 2 false TODO +[6, 8, 5] 13 false TODO +[5, 3, 6, 9, 7, 2] 5 false TODO +[8, 0, 7, 4, 3, 8, 1] 4 false TODO +[7, 9, 8] 6 false TODO +[4, 0, 0, 3] 9 false TODO +[2, 8] 15 false TODO +[2, 7, 5, 9, 7] 15 false TODO +[5, 7, 4, 2, 7, 2, 3] 25 false TODO +[1, 3, 7] 20 true TODO +[7, 2, 8, 6, 5] 24 false TODO +[6, 9, 9, 9, 1] 27 false TODO +[7, 9, 5, 3, 6, 2] 24 false TODO +[3, 6] 15 false TODO +[1, 5, 0, 5, 1] 18 false TODO +[5, 2] 19 false TODO +[5] 17 false TODO +[2, 0, 5, 0] 18 false TODO +[7] 25 false TODO +[8, 0, 4, 4, 1, 8] 18 true TODO +[5, 8, 2] 4 false TODO +[6, 0, 3, 1, 8, 5] 18 false TODO +[0, 8, 2] 4 false TODO +[7, 5, 9, 5, 3, 5, 2] 23 false TODO +[2, 8, 1] 3 false TODO +[2, 4, 3, 2, 8] 11 false TODO +[9, 0, 7, 2, 8, 0] 20 false TODO +[9] 6 false TODO +[4, 2, 5, 7, 9, 1] 29 true TODO +[9, 9, 5, 0, 7, 9] 9 true TODO +[7, 2, 6, 1, 3] 30 false TODO +[0, 4] 8 false TODO +[1, 0, 8, 4, 9] 4 false TODO +[4, 2, 6, 0, 8, 8] 24 true TODO +[7, 7, 6, 4, 8, 6, 6] 25 false TODO +[2, 4, 1, 3, 8, 5, 2] 23 false TODO +[4, 5, 5, 4, 9, 3, 1] 28 false TODO +[3, 9, 3, 9, 0, 8, 8] 30 true TODO +[8, 2, 3, 2, 2, 5, 4] 12 false TODO +[6, 1, 2, 2, 2, 2, 5] 5 false TODO +[4] 29 false TODO +[7, 9, 2, 0, 8, 1, 5] 21 true TODO +[4, 1, 1, 5] 9 true TODO +[4, 8, 8] 13 false TODO +[0, 5, 2, 2, 4, 0, 1] 30 false TODO +[8, 5] 4 false TODO +[2, 2, 0, 3] 7 true TODO +[1, 3, 4, 4, 6, 8, 7] 14 false TODO +[9, 2, 3, 5, 0, 3] 14 true TODO +[5, 4, 2, 4, 5, 1] 8 false TODO +[8, 7, 2, 9, 1, 8] 22 false TODO +[5, 6, 1, 9] 9 false TODO +[2, 5, 6, 3, 1, 5, 5] 6 false TODO +[8, 8, 7, 0, 5] 17 false TODO +[3, 9, 0, 8] 6 false TODO +[9, 2, 7, 2, 9, 8, 1] 3 false TODO +[2, 7, 1, 8, 5] 16 false TODO +[5, 7, 4, 2] 25 false TODO +[8, 3, 1, 2, 2] 11 false TODO +[6, 3, 5, 0] 18 true TODO +[2, 7] 0 false TODO +[2, 8, 2, 8, 5, 9] 0 false TODO +[1, 4, 9, 6] 18 false TODO +[6, 9] 1 false TODO +[2, 5, 8, 2] 2 false TODO +[0, 9, 1, 5, 2, 6, 6, 9, 7, 2] 28 false TODO diff --git a/test_data/longest_nondecreasing_subsequence.tsv b/test_data/longest_nondecreasing_subsequence.tsv index fe5467ab2..e78916d21 100644 --- a/test_data/longest_nondecreasing_subsequence.tsv +++ b/test_data/longest_nondecreasing_subsequence.tsv @@ -199,5 +199,3 @@ array(int) int [5, 25, 8, 5, 20, 27, 22, 22, 7, 7, 2, 2, 5, 23, 24, 3, 4, 7, 9, 0, 7, 2, 18, 2, 25, 16, 3] 8 TODO [9, 6, 5, 13, 6, 1, 8, 7, 5, 2, 5, 4, 2] 3 TODO [29, 33, 21, 32, 11, 25, 15, 9, 29, 25, 19, 22, 9, 33, 23, 7, 3, 8, 5, 2, 12, 7, 5, 18, 18, 13, 14, 17, 3, 26, 12, 26, 9] 8 TODO -[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 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, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 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, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 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, 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, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 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, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 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, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 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, 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, 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, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 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, 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, 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, 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, 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, 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, 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, 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, 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, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 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, 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, 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, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 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, 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, 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, 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, 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, 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, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 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, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 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, 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, 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, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 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, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 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, 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, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 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, 4395, 4396, 4397, 4398, 4399, 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, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 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, 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, 4549, 4550, 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, 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, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 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, 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, 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, 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, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 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, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 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, 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, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 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, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 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, 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, 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, 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, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 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, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 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, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 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, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 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, 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, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 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, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 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, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 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, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 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, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 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, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 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, 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, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 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, 10778, 10779, 10780, 10781, 10782, 10783, 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, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 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, 10901, 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, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 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, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 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, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 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, 11256, 11257, 11258, 11259, 11260, 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, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 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, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 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, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 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, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 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, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 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, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 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, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 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, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 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, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 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, 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, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 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, 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, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 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, 12666, 12667, 12668, 12669, 12670, 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, 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, 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, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 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, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 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, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 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, 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, 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, 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, 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, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 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, 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, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 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, 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, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 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, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 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, 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, 15706, 15707, 15708, 15709, 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, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 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, 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, 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, 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, 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, 16972, 16973, 16974, 16975, 16976, 16977, 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, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 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, 17078, 17079, 17080, 17081, 17082, 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, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 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, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 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, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 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, 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, 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, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 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, 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, 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, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 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, 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, 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, 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, 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, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 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, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 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, 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, 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, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 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, 18498, 18499, 18500, 18501, 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, 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, 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, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701, 18702, 18703, 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715, 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757, 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 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, 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, 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, 18861, 18862, 18863, 18864, 18865, 18866, 18867, 18868, 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, 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, 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, 19480, 19481, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 21058, 21059, 21060, 21061, 21062, 21063, 21064, 21065, 21066, 21067, 21068, 21069, 21070, 21071, 21072, 21073, 21074, 21075, 21076, 21077, 21078, 21079, 21080, 21081, 21082, 21083, 21084, 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, 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, 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, 21668, 21669, 21670, 21671, 21672, 21673, 21674, 21675, 21676, 21677, 21678, 21679, 21680, 21681, 21682, 21683, 21684, 21685, 21686, 21687, 21688, 21689, 21690, 21691, 21692, 21693, 21694, 21695, 21696, 21697, 21698, 21699, 21700, 21701, 21702, 21703, 21704, 21705, 21706, 21707, 21708, 21709, 21710, 21711, 21712, 21713, 21714, 21715, 21716, 21717, 21718, 21719, 21720, 21721, 21722, 21723, 21724, 21725, 21726, 21727, 21728, 21729, 21730, 21731, 21732, 21733, 21734, 21735, 21736, 21737, 21738, 21739, 21740, 21741, 21742, 21743, 21744, 21745, 21746, 21747, 21748, 21749, 21750, 21751, 21752, 21753, 21754, 21755, 21756, 21757, 21758, 21759, 21760, 21761, 21762, 21763, 21764, 21765, 21766, 21767, 21768, 21769, 21770, 21771, 21772, 21773, 21774, 21775, 21776, 21777, 21778, 21779, 21780, 21781, 21782, 21783, 21784, 21785, 21786, 21787, 21788, 21789, 21790, 21791, 21792, 21793, 21794, 21795, 21796, 21797, 21798, 21799, 21800, 21801, 21802, 21803, 21804, 21805, 21806, 21807, 21808, 21809, 21810, 21811, 21812, 21813, 21814, 21815, 21816, 21817, 21818, 21819, 21820, 21821, 21822, 21823, 21824, 21825, 21826, 21827, 21828, 21829, 21830, 21831, 21832, 21833, 21834, 21835, 21836, 21837, 21838, 21839, 21840, 21841, 21842, 21843, 21844, 21845, 21846, 21847, 21848, 21849, 21850, 21851, 21852, 21853, 21854, 21855, 21856, 21857, 21858, 21859, 21860, 21861, 21862, 21863, 21864, 21865, 21866, 21867, 21868, 21869, 21870, 21871, 21872, 21873, 21874, 21875, 21876, 21877, 21878, 21879, 21880, 21881, 21882, 21883, 21884, 21885, 21886, 21887, 21888, 21889, 21890, 21891, 21892, 21893, 21894, 21895, 21896, 21897, 21898, 21899, 21900, 21901, 21902, 21903, 21904, 21905, 21906, 21907, 21908, 21909, 21910, 21911, 21912, 21913, 21914, 21915, 21916, 21917, 21918, 21919, 21920, 21921, 21922, 21923, 21924, 21925, 21926, 21927, 21928, 21929, 21930, 21931, 21932, 21933, 21934, 21935, 21936, 21937, 21938, 21939, 21940, 21941, 21942, 21943, 21944, 21945, 21946, 21947, 21948, 21949, 21950, 21951, 21952, 21953, 21954, 21955, 21956, 21957, 21958, 21959, 21960, 21961, 21962, 21963, 21964, 21965, 21966, 21967, 21968, 21969, 21970, 21971, 21972, 21973, 21974, 21975, 21976, 21977, 21978, 21979, 21980, 21981, 21982, 21983, 21984, 21985, 21986, 21987, 21988, 21989, 21990, 21991, 21992, 21993, 21994, 21995, 21996, 21997, 21998, 21999, 22000, 22001, 22002, 22003, 22004, 22005, 22006, 22007, 22008, 22009, 22010, 22011, 22012, 22013, 22014, 22015, 22016, 22017, 22018, 22019, 22020, 22021, 22022, 22023, 22024, 22025, 22026, 22027, 22028, 22029, 22030, 22031, 22032, 22033, 22034, 22035, 22036, 22037, 22038, 22039, 22040, 22041, 22042, 22043, 22044, 22045, 22046, 22047, 22048, 22049, 22050, 22051, 22052, 22053, 22054, 22055, 22056, 22057, 22058, 22059, 22060, 22061, 22062, 22063, 22064, 22065, 22066, 22067, 22068, 22069, 22070, 22071, 22072, 22073, 22074, 22075, 22076, 22077, 22078, 22079, 22080, 22081, 22082, 22083, 22084, 22085, 22086, 22087, 22088, 22089, 22090, 22091, 22092, 22093, 22094, 22095, 22096, 22097, 22098, 22099, 22100, 22101, 22102, 22103, 22104, 22105, 22106, 22107, 22108, 22109, 22110, 22111, 22112, 22113, 22114, 22115, 22116, 22117, 22118, 22119, 22120, 22121, 22122, 22123, 22124, 22125, 22126, 22127, 22128, 22129, 22130, 22131, 22132, 22133, 22134, 22135, 22136, 22137, 22138, 22139, 22140, 22141, 22142, 22143, 22144, 22145, 22146, 22147, 22148, 22149, 22150, 22151, 22152, 22153, 22154, 22155, 22156, 22157, 22158, 22159, 22160, 22161, 22162, 22163, 22164, 22165, 22166, 22167, 22168, 22169, 22170, 22171, 22172, 22173, 22174, 22175, 22176, 22177, 22178, 22179, 22180, 22181, 22182, 22183, 22184, 22185, 22186, 22187, 22188, 22189, 22190, 22191, 22192, 22193, 22194, 22195, 22196, 22197, 22198, 22199, 22200, 22201, 22202, 22203, 22204, 22205, 22206, 22207, 22208, 22209, 22210, 22211, 22212, 22213, 22214, 22215, 22216, 22217, 22218, 22219, 22220, 22221, 22222, 22223, 22224, 22225, 22226, 22227, 22228, 22229, 22230, 22231, 22232, 22233, 22234, 22235, 22236, 22237, 22238, 22239, 22240, 22241, 22242, 22243, 22244, 22245, 22246, 22247, 22248, 22249, 22250, 22251, 22252, 22253, 22254, 22255, 22256, 22257, 22258, 22259, 22260, 22261, 22262, 22263, 22264, 22265, 22266, 22267, 22268, 22269, 22270, 22271, 22272, 22273, 22274, 22275, 22276, 22277, 22278, 22279, 22280, 22281, 22282, 22283, 22284, 22285, 22286, 22287, 22288, 22289, 22290, 22291, 22292, 22293, 22294, 22295, 22296, 22297, 22298, 22299, 22300, 22301, 22302, 22303, 22304, 22305, 22306, 22307, 22308, 22309, 22310, 22311, 22312, 22313, 22314, 22315, 22316, 22317, 22318, 22319, 22320, 22321, 22322, 22323, 22324, 22325, 22326, 22327, 22328, 22329, 22330, 22331, 22332, 22333, 22334, 22335, 22336, 22337, 22338, 22339, 22340, 22341, 22342, 22343, 22344, 22345, 22346, 22347, 22348, 22349, 22350, 22351, 22352, 22353, 22354, 22355, 22356, 22357, 22358, 22359, 22360, 22361, 22362, 22363, 22364, 22365, 22366, 22367, 22368, 22369, 22370, 22371, 22372, 22373, 22374, 22375, 22376, 22377, 22378, 22379, 22380, 22381, 22382, 22383, 22384, 22385, 22386, 22387, 22388, 22389, 22390, 22391, 22392, 22393, 22394, 22395, 22396, 22397, 22398, 22399, 22400, 22401, 22402, 22403, 22404, 22405, 22406, 22407, 22408, 22409, 22410, 22411, 22412, 22413, 22414, 22415, 22416, 22417, 22418, 22419, 22420, 22421, 22422, 22423, 22424, 22425, 22426, 22427, 22428, 22429, 22430, 22431, 22432, 22433, 22434, 22435, 22436, 22437, 22438, 22439, 22440, 22441, 22442, 22443, 22444, 22445, 22446, 22447, 22448, 22449, 22450, 22451, 22452, 22453, 22454, 22455, 22456, 22457, 22458, 22459, 22460, 22461, 22462, 22463, 22464, 22465, 22466, 22467, 22468, 22469, 22470, 22471, 22472, 22473, 22474, 22475, 22476, 22477, 22478, 22479, 22480, 22481, 22482, 22483, 22484, 22485, 22486, 22487, 22488, 22489, 22490, 22491, 22492, 22493, 22494, 22495, 22496, 22497, 22498, 22499, 22500, 22501, 22502, 22503, 22504, 22505, 22506, 22507, 22508, 22509, 22510, 22511, 22512, 22513, 22514, 22515, 22516, 22517, 22518, 22519, 22520, 22521, 22522, 22523, 22524, 22525, 22526, 22527, 22528, 22529, 22530, 22531, 22532, 22533, 22534, 22535, 22536, 22537, 22538, 22539, 22540, 22541, 22542, 22543, 22544, 22545, 22546, 22547, 22548, 22549, 22550, 22551, 22552, 22553, 22554, 22555, 22556, 22557, 22558, 22559, 22560, 22561, 22562, 22563, 22564, 22565, 22566, 22567, 22568, 22569, 22570, 22571, 22572, 22573, 22574, 22575, 22576, 22577, 22578, 22579, 22580, 22581, 22582, 22583, 22584, 22585, 22586, 22587, 22588, 22589, 22590, 22591, 22592, 22593, 22594, 22595, 22596, 22597, 22598, 22599, 22600, 22601, 22602, 22603, 22604, 22605, 22606, 22607, 22608, 22609, 22610, 22611, 22612, 22613, 22614, 22615, 22616, 22617, 22618, 22619, 22620, 22621, 22622, 22623, 22624, 22625, 22626, 22627, 22628, 22629, 22630, 22631, 22632, 22633, 22634, 22635, 22636, 22637, 22638, 22639, 22640, 22641, 22642, 22643, 22644, 22645, 22646, 22647, 22648, 22649, 22650, 22651, 22652, 22653, 22654, 22655, 22656, 22657, 22658, 22659, 22660, 22661, 22662, 22663, 22664, 22665, 22666, 22667, 22668, 22669, 22670, 22671, 22672, 22673, 22674, 22675, 22676, 22677, 22678, 22679, 22680, 22681, 22682, 22683, 22684, 22685, 22686, 22687, 22688, 22689, 22690, 22691, 22692, 22693, 22694, 22695, 22696, 22697, 22698, 22699, 22700, 22701, 22702, 22703, 22704, 22705, 22706, 22707, 22708, 22709, 22710, 22711, 22712, 22713, 22714, 22715, 22716, 22717, 22718, 22719, 22720, 22721, 22722, 22723, 22724, 22725, 22726, 22727, 22728, 22729, 22730, 22731, 22732, 22733, 22734, 22735, 22736, 22737, 22738, 22739, 22740, 22741, 22742, 22743, 22744, 22745, 22746, 22747, 22748, 22749, 22750, 22751, 22752, 22753, 22754, 22755, 22756, 22757, 22758, 22759, 22760, 22761, 22762, 22763, 22764, 22765, 22766, 22767, 22768, 22769, 22770, 22771, 22772, 22773, 22774, 22775, 22776, 22777, 22778, 22779, 22780, 22781, 22782, 22783, 22784, 22785, 22786, 22787, 22788, 22789, 22790, 22791, 22792, 22793, 22794, 22795, 22796, 22797, 22798, 22799, 22800, 22801, 22802, 22803, 22804, 22805, 22806, 22807, 22808, 22809, 22810, 22811, 22812, 22813, 22814, 22815, 22816, 22817, 22818, 22819, 22820, 22821, 22822, 22823, 22824, 22825, 22826, 22827, 22828, 22829, 22830, 22831, 22832, 22833, 22834, 22835, 22836, 22837, 22838, 22839, 22840, 22841, 22842, 22843, 22844, 22845, 22846, 22847, 22848, 22849, 22850, 22851, 22852, 22853, 22854, 22855, 22856, 22857, 22858, 22859, 22860, 22861, 22862, 22863, 22864, 22865, 22866, 22867, 22868, 22869, 22870, 22871, 22872, 22873, 22874, 22875, 22876, 22877, 22878, 22879, 22880, 22881, 22882, 22883, 22884, 22885, 22886, 22887, 22888, 22889, 22890, 22891, 22892, 22893, 22894, 22895, 22896, 22897, 22898, 22899, 22900, 22901, 22902, 22903, 22904, 22905, 22906, 22907, 22908, 22909, 22910, 22911, 22912, 22913, 22914, 22915, 22916, 22917, 22918, 22919, 22920, 22921, 22922, 22923, 22924, 22925, 22926, 22927, 22928, 22929, 22930, 22931, 22932, 22933, 22934, 22935, 22936, 22937, 22938, 22939, 22940, 22941, 22942, 22943, 22944, 22945, 22946, 22947, 22948, 22949, 22950, 22951, 22952, 22953, 22954, 22955, 22956, 22957, 22958, 22959, 22960, 22961, 22962, 22963, 22964, 22965, 22966, 22967, 22968, 22969, 22970, 22971, 22972, 22973, 22974, 22975, 22976, 22977, 22978, 22979, 22980, 22981, 22982, 22983, 22984, 22985, 22986, 22987, 22988, 22989, 22990, 22991, 22992, 22993, 22994, 22995, 22996, 22997, 22998, 22999, 23000, 23001, 23002, 23003, 23004, 23005, 23006, 23007, 23008, 23009, 23010, 23011, 23012, 23013, 23014, 23015, 23016, 23017, 23018, 23019, 23020, 23021, 23022, 23023, 23024, 23025, 23026, 23027, 23028, 23029, 23030, 23031, 23032, 23033, 23034, 23035, 23036, 23037, 23038, 23039, 23040, 23041, 23042, 23043, 23044, 23045, 23046, 23047, 23048, 23049, 23050, 23051, 23052, 23053, 23054, 23055, 23056, 23057, 23058, 23059, 23060, 23061, 23062, 23063, 23064, 23065, 23066, 23067, 23068, 23069, 23070, 23071, 23072, 23073, 23074, 23075, 23076, 23077, 23078, 23079, 23080, 23081, 23082, 23083, 23084, 23085, 23086, 23087, 23088, 23089, 23090, 23091, 23092, 23093, 23094, 23095, 23096, 23097, 23098, 23099, 23100, 23101, 23102, 23103, 23104, 23105, 23106, 23107, 23108, 23109, 23110, 23111, 23112, 23113, 23114, 23115, 23116, 23117, 23118, 23119, 23120, 23121, 23122, 23123, 23124, 23125, 23126, 23127, 23128, 23129, 23130, 23131, 23132, 23133, 23134, 23135, 23136, 23137, 23138, 23139, 23140, 23141, 23142, 23143, 23144, 23145, 23146, 23147, 23148, 23149, 23150, 23151, 23152, 23153, 23154, 23155, 23156, 23157, 23158, 23159, 23160, 23161, 23162, 23163, 23164, 23165, 23166, 23167, 23168, 23169, 23170, 23171, 23172, 23173, 23174, 23175, 23176, 23177, 23178, 23179, 23180, 23181, 23182, 23183, 23184, 23185, 23186, 23187, 23188, 23189, 23190, 23191, 23192, 23193, 23194, 23195, 23196, 23197, 23198, 23199, 23200, 23201, 23202, 23203, 23204, 23205, 23206, 23207, 23208, 23209, 23210, 23211, 23212, 23213, 23214, 23215, 23216, 23217, 23218, 23219, 23220, 23221, 23222, 23223, 23224, 23225, 23226, 23227, 23228, 23229, 23230, 23231, 23232, 23233, 23234, 23235, 23236, 23237, 23238, 23239, 23240, 23241, 23242, 23243, 23244, 23245, 23246, 23247, 23248, 23249, 23250, 23251, 23252, 23253, 23254, 23255, 23256, 23257, 23258, 23259, 23260, 23261, 23262, 23263, 23264, 23265, 23266, 23267, 23268, 23269, 23270, 23271, 23272, 23273, 23274, 23275, 23276, 23277, 23278, 23279, 23280, 23281, 23282, 23283, 23284, 23285, 23286, 23287, 23288, 23289, 23290, 23291, 23292, 23293, 23294, 23295, 23296, 23297, 23298, 23299, 23300, 23301, 23302, 23303, 23304, 23305, 23306, 23307, 23308, 23309, 23310, 23311, 23312, 23313, 23314, 23315, 23316, 23317, 23318, 23319, 23320, 23321, 23322, 23323, 23324, 23325, 23326, 23327, 23328, 23329, 23330, 23331, 23332, 23333, 23334, 23335, 23336, 23337, 23338, 23339, 23340, 23341, 23342, 23343, 23344, 23345, 23346, 23347, 23348, 23349, 23350, 23351, 23352, 23353, 23354, 23355, 23356, 23357, 23358, 23359, 23360, 23361, 23362, 23363, 23364, 23365, 23366, 23367, 23368, 23369, 23370, 23371, 23372, 23373, 23374, 23375, 23376, 23377, 23378, 23379, 23380, 23381, 23382, 23383, 23384, 23385, 23386, 23387, 23388, 23389, 23390, 23391, 23392, 23393, 23394, 23395, 23396, 23397, 23398, 23399, 23400, 23401, 23402, 23403, 23404, 23405, 23406, 23407, 23408, 23409, 23410, 23411, 23412, 23413, 23414, 23415, 23416, 23417, 23418, 23419, 23420, 23421, 23422, 23423, 23424, 23425, 23426, 23427, 23428, 23429, 23430, 23431, 23432, 23433, 23434, 23435, 23436, 23437, 23438, 23439, 23440, 23441, 23442, 23443, 23444, 23445, 23446, 23447, 23448, 23449, 23450, 23451, 23452, 23453, 23454, 23455, 23456, 23457, 23458, 23459, 23460, 23461, 23462, 23463, 23464, 23465, 23466, 23467, 23468, 23469, 23470, 23471, 23472, 23473, 23474, 23475, 23476, 23477, 23478, 23479, 23480, 23481, 23482, 23483, 23484, 23485, 23486, 23487, 23488, 23489, 23490, 23491, 23492, 23493, 23494, 23495, 23496, 23497, 23498, 23499, 23500, 23501, 23502, 23503, 23504, 23505, 23506, 23507, 23508, 23509, 23510, 23511, 23512, 23513, 23514, 23515, 23516, 23517, 23518, 23519, 23520, 23521, 23522, 23523, 23524, 23525, 23526, 23527, 23528, 23529, 23530, 23531, 23532, 23533, 23534, 23535, 23536, 23537, 23538, 23539, 23540, 23541, 23542, 23543, 23544, 23545, 23546, 23547, 23548, 23549, 23550, 23551, 23552, 23553, 23554, 23555, 23556, 23557, 23558, 23559, 23560, 23561, 23562, 23563, 23564, 23565, 23566, 23567, 23568, 23569, 23570, 23571, 23572, 23573, 23574, 23575, 23576, 23577, 23578, 23579, 23580, 23581, 23582, 23583, 23584, 23585, 23586, 23587, 23588, 23589, 23590, 23591, 23592, 23593, 23594, 23595, 23596, 23597, 23598, 23599, 23600, 23601, 23602, 23603, 23604, 23605, 23606, 23607, 23608, 23609, 23610, 23611, 23612, 23613, 23614, 23615, 23616, 23617, 23618, 23619, 23620, 23621, 23622, 23623, 23624, 23625, 23626, 23627, 23628, 23629, 23630, 23631, 23632, 23633, 23634, 23635, 23636, 23637, 23638, 23639, 23640, 23641, 23642, 23643, 23644, 23645, 23646, 23647, 23648, 23649, 23650, 23651, 23652, 23653, 23654, 23655, 23656, 23657, 23658, 23659, 23660, 23661, 23662, 23663, 23664, 23665, 23666, 23667, 23668, 23669, 23670, 23671, 23672, 23673, 23674, 23675, 23676, 23677, 23678, 23679, 23680, 23681, 23682, 23683, 23684, 23685, 23686, 23687, 23688, 23689, 23690, 23691, 23692, 23693, 23694, 23695, 23696, 23697, 23698, 23699, 23700, 23701, 23702, 23703, 23704, 23705, 23706, 23707, 23708, 23709, 23710, 23711, 23712, 23713, 23714, 23715, 23716, 23717, 23718, 23719, 23720, 23721, 23722, 23723, 23724, 23725, 23726, 23727, 23728, 23729, 23730, 23731, 23732, 23733, 23734, 23735, 23736, 23737, 23738, 23739, 23740, 23741, 23742, 23743, 23744, 23745, 23746, 23747, 23748, 23749, 23750, 23751, 23752, 23753, 23754, 23755, 23756, 23757, 23758, 23759, 23760, 23761, 23762, 23763, 23764, 23765, 23766, 23767, 23768, 23769, 23770, 23771, 23772, 23773, 23774, 23775, 23776, 23777, 23778, 23779, 23780, 23781, 23782, 23783, 23784, 23785, 23786, 23787, 23788, 23789, 23790, 23791, 23792, 23793, 23794, 23795, 23796, 23797, 23798, 23799, 23800, 23801, 23802, 23803, 23804, 23805, 23806, 23807, 23808, 23809, 23810, 23811, 23812, 23813, 23814, 23815, 23816, 23817, 23818, 23819, 23820, 23821, 23822, 23823, 23824, 23825, 23826, 23827, 23828, 23829, 23830, 23831, 23832, 23833, 23834, 23835, 23836, 23837, 23838, 23839, 23840, 23841, 23842, 23843, 23844, 23845, 23846, 23847, 23848, 23849, 23850, 23851, 23852, 23853, 23854, 23855, 23856, 23857, 23858, 23859, 23860, 23861, 23862, 23863, 23864, 23865, 23866, 23867, 23868, 23869, 23870, 23871, 23872, 23873, 23874, 23875, 23876, 23877, 23878, 23879, 23880, 23881, 23882, 23883, 23884, 23885, 23886, 23887, 23888, 23889, 23890, 23891, 23892, 23893, 23894, 23895, 23896, 23897, 23898, 23899, 23900, 23901, 23902, 23903, 23904, 23905, 23906, 23907, 23908, 23909, 23910, 23911, 23912, 23913, 23914, 23915, 23916, 23917, 23918, 23919, 23920, 23921, 23922, 23923, 23924, 23925, 23926, 23927, 23928, 23929, 23930, 23931, 23932, 23933, 23934, 23935, 23936, 23937, 23938, 23939, 23940, 23941, 23942, 23943, 23944, 23945, 23946, 23947, 23948, 23949, 23950, 23951, 23952, 23953, 23954, 23955, 23956, 23957, 23958, 23959, 23960, 23961, 23962, 23963, 23964, 23965, 23966, 23967, 23968, 23969, 23970, 23971, 23972, 23973, 23974, 23975, 23976, 23977, 23978, 23979, 23980, 23981, 23982, 23983, 23984, 23985, 23986, 23987, 23988, 23989, 23990, 23991, 23992, 23993, 23994, 23995, 23996, 23997, 23998, 23999, 24000, 24001, 24002, 24003, 24004, 24005, 24006, 24007, 24008, 24009, 24010, 24011, 24012, 24013, 24014, 24015, 24016, 24017, 24018, 24019, 24020, 24021, 24022, 24023, 24024, 24025, 24026, 24027, 24028, 24029, 24030, 24031, 24032, 24033, 24034, 24035, 24036, 24037, 24038, 24039, 24040, 24041, 24042, 24043, 24044, 24045, 24046, 24047, 24048, 24049, 24050, 24051, 24052, 24053, 24054, 24055, 24056, 24057, 24058, 24059, 24060, 24061, 24062, 24063, 24064, 24065, 24066, 24067, 24068, 24069, 24070, 24071, 24072, 24073, 24074, 24075, 24076, 24077, 24078, 24079, 24080, 24081, 24082, 24083, 24084, 24085, 24086, 24087, 24088, 24089, 24090, 24091, 24092, 24093, 24094, 24095, 24096, 24097, 24098, 24099, 24100, 24101, 24102, 24103, 24104, 24105, 24106, 24107, 24108, 24109, 24110, 24111, 24112, 24113, 24114, 24115, 24116, 24117, 24118, 24119, 24120, 24121, 24122, 24123, 24124, 24125, 24126, 24127, 24128, 24129, 24130, 24131, 24132, 24133, 24134, 24135, 24136, 24137, 24138, 24139, 24140, 24141, 24142, 24143, 24144, 24145, 24146, 24147, 24148, 24149, 24150, 24151, 24152, 24153, 24154, 24155, 24156, 24157, 24158, 24159, 24160, 24161, 24162, 24163, 24164, 24165, 24166, 24167, 24168, 24169, 24170, 24171, 24172, 24173, 24174, 24175, 24176, 24177, 24178, 24179, 24180, 24181, 24182, 24183, 24184, 24185, 24186, 24187, 24188, 24189, 24190, 24191, 24192, 24193, 24194, 24195, 24196, 24197, 24198, 24199, 24200, 24201, 24202, 24203, 24204, 24205, 24206, 24207, 24208, 24209, 24210, 24211, 24212, 24213, 24214, 24215, 24216, 24217, 24218, 24219, 24220, 24221, 24222, 24223, 24224, 24225, 24226, 24227, 24228, 24229, 24230, 24231, 24232, 24233, 24234, 24235, 24236, 24237, 24238, 24239, 24240, 24241, 24242, 24243, 24244, 24245, 24246, 24247, 24248, 24249, 24250, 24251, 24252, 24253, 24254, 24255, 24256, 24257, 24258, 24259, 24260, 24261, 24262, 24263, 24264, 24265, 24266, 24267, 24268, 24269, 24270, 24271, 24272, 24273, 24274, 24275, 24276, 24277, 24278, 24279, 24280, 24281, 24282, 24283, 24284, 24285, 24286, 24287, 24288, 24289, 24290, 24291, 24292, 24293, 24294, 24295, 24296, 24297, 24298, 24299, 24300, 24301, 24302, 24303, 24304, 24305, 24306, 24307, 24308, 24309, 24310, 24311, 24312, 24313, 24314, 24315, 24316, 24317, 24318, 24319, 24320, 24321, 24322, 24323, 24324, 24325, 24326, 24327, 24328, 24329, 24330, 24331, 24332, 24333, 24334, 24335, 24336, 24337, 24338, 24339, 24340, 24341, 24342, 24343, 24344, 24345, 24346, 24347, 24348, 24349, 24350, 24351, 24352, 24353, 24354, 24355, 24356, 24357, 24358, 24359, 24360, 24361, 24362, 24363, 24364, 24365, 24366, 24367, 24368, 24369, 24370, 24371, 24372, 24373, 24374, 24375, 24376, 24377, 24378, 24379, 24380, 24381, 24382, 24383, 24384, 24385, 24386, 24387, 24388, 24389, 24390, 24391, 24392, 24393, 24394, 24395, 24396, 24397, 24398, 24399, 24400, 24401, 24402, 24403, 24404, 24405, 24406, 24407, 24408, 24409, 24410, 24411, 24412, 24413, 24414, 24415, 24416, 24417, 24418, 24419, 24420, 24421, 24422, 24423, 24424, 24425, 24426, 24427, 24428, 24429, 24430, 24431, 24432, 24433, 24434, 24435, 24436, 24437, 24438, 24439, 24440, 24441, 24442, 24443, 24444, 24445, 24446, 24447, 24448, 24449, 24450, 24451, 24452, 24453, 24454, 24455, 24456, 24457, 24458, 24459, 24460, 24461, 24462, 24463, 24464, 24465, 24466, 24467, 24468, 24469, 24470, 24471, 24472, 24473, 24474, 24475, 24476, 24477, 24478, 24479, 24480, 24481, 24482, 24483, 24484, 24485, 24486, 24487, 24488, 24489, 24490, 24491, 24492, 24493, 24494, 24495, 24496, 24497, 24498, 24499, 24500, 24501, 24502, 24503, 24504, 24505, 24506, 24507, 24508, 24509, 24510, 24511, 24512, 24513, 24514, 24515, 24516, 24517, 24518, 24519, 24520, 24521, 24522, 24523, 24524, 24525, 24526, 24527, 24528, 24529, 24530, 24531, 24532, 24533, 24534, 24535, 24536, 24537, 24538, 24539, 24540, 24541, 24542, 24543, 24544, 24545, 24546, 24547, 24548, 24549, 24550, 24551, 24552, 24553, 24554, 24555, 24556, 24557, 24558, 24559, 24560, 24561, 24562, 24563, 24564, 24565, 24566, 24567, 24568, 24569, 24570, 24571, 24572, 24573, 24574, 24575, 24576, 24577, 24578, 24579, 24580, 24581, 24582, 24583, 24584, 24585, 24586, 24587, 24588, 24589, 24590, 24591, 24592, 24593, 24594, 24595, 24596, 24597, 24598, 24599, 24600, 24601, 24602, 24603, 24604, 24605, 24606, 24607, 24608, 24609, 24610, 24611, 24612, 24613, 24614, 24615, 24616, 24617, 24618, 24619, 24620, 24621, 24622, 24623, 24624, 24625, 24626, 24627, 24628, 24629, 24630, 24631, 24632, 24633, 24634, 24635, 24636, 24637, 24638, 24639, 24640, 24641, 24642, 24643, 24644, 24645, 24646, 24647, 24648, 24649, 24650, 24651, 24652, 24653, 24654, 24655, 24656, 24657, 24658, 24659, 24660, 24661, 24662, 24663, 24664, 24665, 24666, 24667, 24668, 24669, 24670, 24671, 24672, 24673, 24674, 24675, 24676, 24677, 24678, 24679, 24680, 24681, 24682, 24683, 24684, 24685, 24686, 24687, 24688, 24689, 24690, 24691, 24692, 24693, 24694, 24695, 24696, 24697, 24698, 24699, 24700, 24701, 24702, 24703, 24704, 24705, 24706, 24707, 24708, 24709, 24710, 24711, 24712, 24713, 24714, 24715, 24716, 24717, 24718, 24719, 24720, 24721, 24722, 24723, 24724, 24725, 24726, 24727, 24728, 24729, 24730, 24731, 24732, 24733, 24734, 24735, 24736, 24737, 24738, 24739, 24740, 24741, 24742, 24743, 24744, 24745, 24746, 24747, 24748, 24749, 24750, 24751, 24752, 24753, 24754, 24755, 24756, 24757, 24758, 24759, 24760, 24761, 24762, 24763, 24764, 24765, 24766, 24767, 24768, 24769, 24770, 24771, 24772, 24773, 24774, 24775, 24776, 24777, 24778, 24779, 24780, 24781, 24782, 24783, 24784, 24785, 24786, 24787, 24788, 24789, 24790, 24791, 24792, 24793, 24794, 24795, 24796, 24797, 24798, 24799, 24800, 24801, 24802, 24803, 24804, 24805, 24806, 24807, 24808, 24809, 24810, 24811, 24812, 24813, 24814, 24815, 24816, 24817, 24818, 24819, 24820, 24821, 24822, 24823, 24824, 24825, 24826, 24827, 24828, 24829, 24830, 24831, 24832, 24833, 24834, 24835, 24836, 24837, 24838, 24839, 24840, 24841, 24842, 24843, 24844, 24845, 24846, 24847, 24848, 24849, 24850, 24851, 24852, 24853, 24854, 24855, 24856, 24857, 24858, 24859, 24860, 24861, 24862, 24863, 24864, 24865, 24866, 24867, 24868, 24869, 24870, 24871, 24872, 24873, 24874, 24875, 24876, 24877, 24878, 24879, 24880, 24881, 24882, 24883, 24884, 24885, 24886, 24887, 24888, 24889, 24890, 24891, 24892, 24893, 24894, 24895, 24896, 24897, 24898, 24899, 24900, 24901, 24902, 24903, 24904, 24905, 24906, 24907, 24908, 24909, 24910, 24911, 24912, 24913, 24914, 24915, 24916, 24917, 24918, 24919, 24920, 24921, 24922, 24923, 24924, 24925, 24926, 24927, 24928, 24929, 24930, 24931, 24932, 24933, 24934, 24935, 24936, 24937, 24938, 24939, 24940, 24941, 24942, 24943, 24944, 24945, 24946, 24947, 24948, 24949, 24950, 24951, 24952, 24953, 24954, 24955, 24956, 24957, 24958, 24959, 24960, 24961, 24962, 24963, 24964, 24965, 24966, 24967, 24968, 24969, 24970, 24971, 24972, 24973, 24974, 24975, 24976, 24977, 24978, 24979, 24980, 24981, 24982, 24983, 24984, 24985, 24986, 24987, 24988, 24989, 24990, 24991, 24992, 24993, 24994, 24995, 24996, 24997, 24998, 24999, 25000, 25001, 25002, 25003, 25004, 25005, 25006, 25007, 25008, 25009, 25010, 25011, 25012, 25013, 25014, 25015, 25016, 25017, 25018, 25019, 25020, 25021, 25022, 25023, 25024, 25025, 25026, 25027, 25028, 25029, 25030, 25031, 25032, 25033, 25034, 25035, 25036, 25037, 25038, 25039, 25040, 25041, 25042, 25043, 25044, 25045, 25046, 25047, 25048, 25049, 25050, 25051, 25052, 25053, 25054, 25055, 25056, 25057, 25058, 25059, 25060, 25061, 25062, 25063, 25064, 25065, 25066, 25067, 25068, 25069, 25070, 25071, 25072, 25073, 25074, 25075, 25076, 25077, 25078, 25079, 25080, 25081, 25082, 25083, 25084, 25085, 25086, 25087, 25088, 25089, 25090, 25091, 25092, 25093, 25094, 25095, 25096, 25097, 25098, 25099, 25100, 25101, 25102, 25103, 25104, 25105, 25106, 25107, 25108, 25109, 25110, 25111, 25112, 25113, 25114, 25115, 25116, 25117, 25118, 25119, 25120, 25121, 25122, 25123, 25124, 25125, 25126, 25127, 25128, 25129, 25130, 25131, 25132, 25133, 25134, 25135, 25136, 25137, 25138, 25139, 25140, 25141, 25142, 25143, 25144, 25145, 25146, 25147, 25148, 25149, 25150, 25151, 25152, 25153, 25154, 25155, 25156, 25157, 25158, 25159, 25160, 25161, 25162, 25163, 25164, 25165, 25166, 25167, 25168, 25169, 25170, 25171, 25172, 25173, 25174, 25175, 25176, 25177, 25178, 25179, 25180, 25181, 25182, 25183, 25184, 25185, 25186, 25187, 25188, 25189, 25190, 25191, 25192, 25193, 25194, 25195, 25196, 25197, 25198, 25199, 25200, 25201, 25202, 25203, 25204, 25205, 25206, 25207, 25208, 25209, 25210, 25211, 25212, 25213, 25214, 25215, 25216, 25217, 25218, 25219, 25220, 25221, 25222, 25223, 25224, 25225, 25226, 25227, 25228, 25229, 25230, 25231, 25232, 25233, 25234, 25235, 25236, 25237, 25238, 25239, 25240, 25241, 25242, 25243, 25244, 25245, 25246, 25247, 25248, 25249, 25250, 25251, 25252, 25253, 25254, 25255, 25256, 25257, 25258, 25259, 25260, 25261, 25262, 25263, 25264, 25265, 25266, 25267, 25268, 25269, 25270, 25271, 25272, 25273, 25274, 25275, 25276, 25277, 25278, 25279, 25280, 25281, 25282, 25283, 25284, 25285, 25286, 25287, 25288, 25289, 25290, 25291, 25292, 25293, 25294, 25295, 25296, 25297, 25298, 25299, 25300, 25301, 25302, 25303, 25304, 25305, 25306, 25307, 25308, 25309, 25310, 25311, 25312, 25313, 25314, 25315, 25316, 25317, 25318, 25319, 25320, 25321, 25322, 25323, 25324, 25325, 25326, 25327, 25328, 25329, 25330, 25331, 25332, 25333, 25334, 25335, 25336, 25337, 25338, 25339, 25340, 25341, 25342, 25343, 25344, 25345, 25346, 25347, 25348, 25349, 25350, 25351, 25352, 25353, 25354, 25355, 25356, 25357, 25358, 25359, 25360, 25361, 25362, 25363, 25364, 25365, 25366, 25367, 25368, 25369, 25370, 25371, 25372, 25373, 25374, 25375, 25376, 25377, 25378, 25379, 25380, 25381, 25382, 25383, 25384, 25385, 25386, 25387, 25388, 25389, 25390, 25391, 25392, 25393, 25394, 25395, 25396, 25397, 25398, 25399, 25400, 25401, 25402, 25403, 25404, 25405, 25406, 25407, 25408, 25409, 25410, 25411, 25412, 25413, 25414, 25415, 25416, 25417, 25418, 25419, 25420, 25421, 25422, 25423, 25424, 25425, 25426, 25427, 25428, 25429, 25430, 25431, 25432, 25433, 25434, 25435, 25436, 25437, 25438, 25439, 25440, 25441, 25442, 25443, 25444, 25445, 25446, 25447, 25448, 25449, 25450, 25451, 25452, 25453, 25454, 25455, 25456, 25457, 25458, 25459, 25460, 25461, 25462, 25463, 25464, 25465, 25466, 25467, 25468, 25469, 25470, 25471, 25472, 25473, 25474, 25475, 25476, 25477, 25478, 25479, 25480, 25481, 25482, 25483, 25484, 25485, 25486, 25487, 25488, 25489, 25490, 25491, 25492, 25493, 25494, 25495, 25496, 25497, 25498, 25499, 25500, 25501, 25502, 25503, 25504, 25505, 25506, 25507, 25508, 25509, 25510, 25511, 25512, 25513, 25514, 25515, 25516, 25517, 25518, 25519, 25520, 25521, 25522, 25523, 25524, 25525, 25526, 25527, 25528, 25529, 25530, 25531, 25532, 25533, 25534, 25535, 25536, 25537, 25538, 25539, 25540, 25541, 25542, 25543, 25544, 25545, 25546, 25547, 25548, 25549, 25550, 25551, 25552, 25553, 25554, 25555, 25556, 25557, 25558, 25559, 25560, 25561, 25562, 25563, 25564, 25565, 25566, 25567, 25568, 25569, 25570, 25571, 25572, 25573, 25574, 25575, 25576, 25577, 25578, 25579, 25580, 25581, 25582, 25583, 25584, 25585, 25586, 25587, 25588, 25589, 25590, 25591, 25592, 25593, 25594, 25595, 25596, 25597, 25598, 25599, 25600, 25601, 25602, 25603, 25604, 25605, 25606, 25607, 25608, 25609, 25610, 25611, 25612, 25613, 25614, 25615, 25616, 25617, 25618, 25619, 25620, 25621, 25622, 25623, 25624, 25625, 25626, 25627, 25628, 25629, 25630, 25631, 25632, 25633, 25634, 25635, 25636, 25637, 25638, 25639, 25640, 25641, 25642, 25643, 25644, 25645, 25646, 25647, 25648, 25649, 25650, 25651, 25652, 25653, 25654, 25655, 25656, 25657, 25658, 25659, 25660, 25661, 25662, 25663, 25664, 25665, 25666, 25667, 25668, 25669, 25670, 25671, 25672, 25673, 25674, 25675, 25676, 25677, 25678, 25679, 25680, 25681, 25682, 25683, 25684, 25685, 25686, 25687, 25688, 25689, 25690, 25691, 25692, 25693, 25694, 25695, 25696, 25697, 25698, 25699, 25700, 25701, 25702, 25703, 25704, 25705, 25706, 25707, 25708, 25709, 25710, 25711, 25712, 25713, 25714, 25715, 25716, 25717, 25718, 25719, 25720, 25721, 25722, 25723, 25724, 25725, 25726, 25727, 25728, 25729, 25730, 25731, 25732, 25733, 25734, 25735, 25736, 25737, 25738, 25739, 25740, 25741, 25742, 25743, 25744, 25745, 25746, 25747, 25748, 25749, 25750, 25751, 25752, 25753, 25754, 25755, 25756, 25757, 25758, 25759, 25760, 25761, 25762, 25763, 25764, 25765, 25766, 25767, 25768, 25769, 25770, 25771, 25772, 25773, 25774, 25775, 25776, 25777, 25778, 25779, 25780, 25781, 25782, 25783, 25784, 25785, 25786, 25787, 25788, 25789, 25790, 25791, 25792, 25793, 25794, 25795, 25796, 25797, 25798, 25799, 25800, 25801, 25802, 25803, 25804, 25805, 25806, 25807, 25808, 25809, 25810, 25811, 25812, 25813, 25814, 25815, 25816, 25817, 25818, 25819, 25820, 25821, 25822, 25823, 25824, 25825, 25826, 25827, 25828, 25829, 25830, 25831, 25832, 25833, 25834, 25835, 25836, 25837, 25838, 25839, 25840, 25841, 25842, 25843, 25844, 25845, 25846, 25847, 25848, 25849, 25850, 25851, 25852, 25853, 25854, 25855, 25856, 25857, 25858, 25859, 25860, 25861, 25862, 25863, 25864, 25865, 25866, 25867, 25868, 25869, 25870, 25871, 25872, 25873, 25874, 25875, 25876, 25877, 25878, 25879, 25880, 25881, 25882, 25883, 25884, 25885, 25886, 25887, 25888, 25889, 25890, 25891, 25892, 25893, 25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25903, 25904, 25905, 25906, 25907, 25908, 25909, 25910, 25911, 25912, 25913, 25914, 25915, 25916, 25917, 25918, 25919, 25920, 25921, 25922, 25923, 25924, 25925, 25926, 25927, 25928, 25929, 25930, 25931, 25932, 25933, 25934, 25935, 25936, 25937, 25938, 25939, 25940, 25941, 25942, 25943, 25944, 25945, 25946, 25947, 25948, 25949, 25950, 25951, 25952, 25953, 25954, 25955, 25956, 25957, 25958, 25959, 25960, 25961, 25962, 25963, 25964, 25965, 25966, 25967, 25968, 25969, 25970, 25971, 25972, 25973, 25974, 25975, 25976, 25977, 25978, 25979, 25980, 25981, 25982, 25983, 25984, 25985, 25986, 25987, 25988, 25989, 25990, 25991, 25992, 25993, 25994, 25995, 25996, 25997, 25998, 25999, 26000, 26001, 26002, 26003, 26004, 26005, 26006, 26007, 26008, 26009, 26010, 26011, 26012, 26013, 26014, 26015, 26016, 26017, 26018, 26019, 26020, 26021, 26022, 26023, 26024, 26025, 26026, 26027, 26028, 26029, 26030, 26031, 26032, 26033, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26041, 26042, 26043, 26044, 26045, 26046, 26047, 26048, 26049, 26050, 26051, 26052, 26053, 26054, 26055, 26056, 26057, 26058, 26059, 26060, 26061, 26062, 26063, 26064, 26065, 26066, 26067, 26068, 26069, 26070, 26071, 26072, 26073, 26074, 26075, 26076, 26077, 26078, 26079, 26080, 26081, 26082, 26083, 26084, 26085, 26086, 26087, 26088, 26089, 26090, 26091, 26092, 26093, 26094, 26095, 26096, 26097, 26098, 26099, 26100, 26101, 26102, 26103, 26104, 26105, 26106, 26107, 26108, 26109, 26110, 26111, 26112, 26113, 26114, 26115, 26116, 26117, 26118, 26119, 26120, 26121, 26122, 26123, 26124, 26125, 26126, 26127, 26128, 26129, 26130, 26131, 26132, 26133, 26134, 26135, 26136, 26137, 26138, 26139, 26140, 26141, 26142, 26143, 26144, 26145, 26146, 26147, 26148, 26149, 26150, 26151, 26152, 26153, 26154, 26155, 26156, 26157, 26158, 26159, 26160, 26161, 26162, 26163, 26164, 26165, 26166, 26167, 26168, 26169, 26170, 26171, 26172, 26173, 26174, 26175, 26176, 26177, 26178, 26179, 26180, 26181, 26182, 26183, 26184, 26185, 26186, 26187, 26188, 26189, 26190, 26191, 26192, 26193, 26194, 26195, 26196, 26197, 26198, 26199, 26200, 26201, 26202, 26203, 26204, 26205, 26206, 26207, 26208, 26209, 26210, 26211, 26212, 26213, 26214, 26215, 26216, 26217, 26218, 26219, 26220, 26221, 26222, 26223, 26224, 26225, 26226, 26227, 26228, 26229, 26230, 26231, 26232, 26233, 26234, 26235, 26236, 26237, 26238, 26239, 26240, 26241, 26242, 26243, 26244, 26245, 26246, 26247, 26248, 26249, 26250, 26251, 26252, 26253, 26254, 26255, 26256, 26257, 26258, 26259, 26260, 26261, 26262, 26263, 26264, 26265, 26266, 26267, 26268, 26269, 26270, 26271, 26272, 26273, 26274, 26275, 26276, 26277, 26278, 26279, 26280, 26281, 26282, 26283, 26284, 26285, 26286, 26287, 26288, 26289, 26290, 26291, 26292, 26293, 26294, 26295, 26296, 26297, 26298, 26299, 26300, 26301, 26302, 26303, 26304, 26305, 26306, 26307, 26308, 26309, 26310, 26311, 26312, 26313, 26314, 26315, 26316, 26317, 26318, 26319, 26320, 26321, 26322, 26323, 26324, 26325, 26326, 26327, 26328, 26329, 26330, 26331, 26332, 26333, 26334, 26335, 26336, 26337, 26338, 26339, 26340, 26341, 26342, 26343, 26344, 26345, 26346, 26347, 26348, 26349, 26350, 26351, 26352, 26353, 26354, 26355, 26356, 26357, 26358, 26359, 26360, 26361, 26362, 26363, 26364, 26365, 26366, 26367, 26368, 26369, 26370, 26371, 26372, 26373, 26374, 26375, 26376, 26377, 26378, 26379, 26380, 26381, 26382, 26383, 26384, 26385, 26386, 26387, 26388, 26389, 26390, 26391, 26392, 26393, 26394, 26395, 26396, 26397, 26398, 26399, 26400, 26401, 26402, 26403, 26404, 26405, 26406, 26407, 26408, 26409, 26410, 26411, 26412, 26413, 26414, 26415, 26416, 26417, 26418, 26419, 26420, 26421, 26422, 26423, 26424, 26425, 26426, 26427, 26428, 26429, 26430, 26431, 26432, 26433, 26434, 26435, 26436, 26437, 26438, 26439, 26440, 26441, 26442, 26443, 26444, 26445, 26446, 26447, 26448, 26449, 26450, 26451, 26452, 26453, 26454, 26455, 26456, 26457, 26458, 26459, 26460, 26461, 26462, 26463, 26464, 26465, 26466, 26467, 26468, 26469, 26470, 26471, 26472, 26473, 26474, 26475, 26476, 26477, 26478, 26479, 26480, 26481, 26482, 26483, 26484, 26485, 26486, 26487, 26488, 26489, 26490, 26491, 26492, 26493, 26494, 26495, 26496, 26497, 26498, 26499, 26500, 26501, 26502, 26503, 26504, 26505, 26506, 26507, 26508, 26509, 26510, 26511, 26512, 26513, 26514, 26515, 26516, 26517, 26518, 26519, 26520, 26521, 26522, 26523, 26524, 26525, 26526, 26527, 26528, 26529, 26530, 26531, 26532, 26533, 26534, 26535, 26536, 26537, 26538, 26539, 26540, 26541, 26542, 26543, 26544, 26545, 26546, 26547, 26548, 26549, 26550, 26551, 26552, 26553, 26554, 26555, 26556, 26557, 26558, 26559, 26560, 26561, 26562, 26563, 26564, 26565, 26566, 26567, 26568, 26569, 26570, 26571, 26572, 26573, 26574, 26575, 26576, 26577, 26578, 26579, 26580, 26581, 26582, 26583, 26584, 26585, 26586, 26587, 26588, 26589, 26590, 26591, 26592, 26593, 26594, 26595, 26596, 26597, 26598, 26599, 26600, 26601, 26602, 26603, 26604, 26605, 26606, 26607, 26608, 26609, 26610, 26611, 26612, 26613, 26614, 26615, 26616, 26617, 26618, 26619, 26620, 26621, 26622, 26623, 26624, 26625, 26626, 26627, 26628, 26629, 26630, 26631, 26632, 26633, 26634, 26635, 26636, 26637, 26638, 26639, 26640, 26641, 26642, 26643, 26644, 26645, 26646, 26647, 26648, 26649, 26650, 26651, 26652, 26653, 26654, 26655, 26656, 26657, 26658, 26659, 26660, 26661, 26662, 26663, 26664, 26665, 26666, 26667, 26668, 26669, 26670, 26671, 26672, 26673, 26674, 26675, 26676, 26677, 26678, 26679, 26680, 26681, 26682, 26683, 26684, 26685, 26686, 26687, 26688, 26689, 26690, 26691, 26692, 26693, 26694, 26695, 26696, 26697, 26698, 26699, 26700, 26701, 26702, 26703, 26704, 26705, 26706, 26707, 26708, 26709, 26710, 26711, 26712, 26713, 26714, 26715, 26716, 26717, 26718, 26719, 26720, 26721, 26722, 26723, 26724, 26725, 26726, 26727, 26728, 26729, 26730, 26731, 26732, 26733, 26734, 26735, 26736, 26737, 26738, 26739, 26740, 26741, 26742, 26743, 26744, 26745, 26746, 26747, 26748, 26749, 26750, 26751, 26752, 26753, 26754, 26755, 26756, 26757, 26758, 26759, 26760, 26761, 26762, 26763, 26764, 26765, 26766, 26767, 26768, 26769, 26770, 26771, 26772, 26773, 26774, 26775, 26776, 26777, 26778, 26779, 26780, 26781, 26782, 26783, 26784, 26785, 26786, 26787, 26788, 26789, 26790, 26791, 26792, 26793, 26794, 26795, 26796, 26797, 26798, 26799, 26800, 26801, 26802, 26803, 26804, 26805, 26806, 26807, 26808, 26809, 26810, 26811, 26812, 26813, 26814, 26815, 26816, 26817, 26818, 26819, 26820, 26821, 26822, 26823, 26824, 26825, 26826, 26827, 26828, 26829, 26830, 26831, 26832, 26833, 26834, 26835, 26836, 26837, 26838, 26839, 26840, 26841, 26842, 26843, 26844, 26845, 26846, 26847, 26848, 26849, 26850, 26851, 26852, 26853, 26854, 26855, 26856, 26857, 26858, 26859, 26860, 26861, 26862, 26863, 26864, 26865, 26866, 26867, 26868, 26869, 26870, 26871, 26872, 26873, 26874, 26875, 26876, 26877, 26878, 26879, 26880, 26881, 26882, 26883, 26884, 26885, 26886, 26887, 26888, 26889, 26890, 26891, 26892, 26893, 26894, 26895, 26896, 26897, 26898, 26899, 26900, 26901, 26902, 26903, 26904, 26905, 26906, 26907, 26908, 26909, 26910, 26911, 26912, 26913, 26914, 26915, 26916, 26917, 26918, 26919, 26920, 26921, 26922, 26923, 26924, 26925, 26926, 26927, 26928, 26929, 26930, 26931, 26932, 26933, 26934, 26935, 26936, 26937, 26938, 26939, 26940, 26941, 26942, 26943, 26944, 26945, 26946, 26947, 26948, 26949, 26950, 26951, 26952, 26953, 26954, 26955, 26956, 26957, 26958, 26959, 26960, 26961, 26962, 26963, 26964, 26965, 26966, 26967, 26968, 26969, 26970, 26971, 26972, 26973, 26974, 26975, 26976, 26977, 26978, 26979, 26980, 26981, 26982, 26983, 26984, 26985, 26986, 26987, 26988, 26989, 26990, 26991, 26992, 26993, 26994, 26995, 26996, 26997, 26998, 26999, 27000, 27001, 27002, 27003, 27004, 27005, 27006, 27007, 27008, 27009, 27010, 27011, 27012, 27013, 27014, 27015, 27016, 27017, 27018, 27019, 27020, 27021, 27022, 27023, 27024, 27025, 27026, 27027, 27028, 27029, 27030, 27031, 27032, 27033, 27034, 27035, 27036, 27037, 27038, 27039, 27040, 27041, 27042, 27043, 27044, 27045, 27046, 27047, 27048, 27049, 27050, 27051, 27052, 27053, 27054, 27055, 27056, 27057, 27058, 27059, 27060, 27061, 27062, 27063, 27064, 27065, 27066, 27067, 27068, 27069, 27070, 27071, 27072, 27073, 27074, 27075, 27076, 27077, 27078, 27079, 27080, 27081, 27082, 27083, 27084, 27085, 27086, 27087, 27088, 27089, 27090, 27091, 27092, 27093, 27094, 27095, 27096, 27097, 27098, 27099, 27100, 27101, 27102, 27103, 27104, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27117, 27118, 27119, 27120, 27121, 27122, 27123, 27124, 27125, 27126, 27127, 27128, 27129, 27130, 27131, 27132, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27149, 27150, 27151, 27152, 27153, 27154, 27155, 27156, 27157, 27158, 27159, 27160, 27161, 27162, 27163, 27164, 27165, 27166, 27167, 27168, 27169, 27170, 27171, 27172, 27173, 27174, 27175, 27176, 27177, 27178, 27179, 27180, 27181, 27182, 27183, 27184, 27185, 27186, 27187, 27188, 27189, 27190, 27191, 27192, 27193, 27194, 27195, 27196, 27197, 27198, 27199, 27200, 27201, 27202, 27203, 27204, 27205, 27206, 27207, 27208, 27209, 27210, 27211, 27212, 27213, 27214, 27215, 27216, 27217, 27218, 27219, 27220, 27221, 27222, 27223, 27224, 27225, 27226, 27227, 27228, 27229, 27230, 27231, 27232, 27233, 27234, 27235, 27236, 27237, 27238, 27239, 27240, 27241, 27242, 27243, 27244, 27245, 27246, 27247, 27248, 27249, 27250, 27251, 27252, 27253, 27254, 27255, 27256, 27257, 27258, 27259, 27260, 27261, 27262, 27263, 27264, 27265, 27266, 27267, 27268, 27269, 27270, 27271, 27272, 27273, 27274, 27275, 27276, 27277, 27278, 27279, 27280, 27281, 27282, 27283, 27284, 27285, 27286, 27287, 27288, 27289, 27290, 27291, 27292, 27293, 27294, 27295, 27296, 27297, 27298, 27299, 27300, 27301, 27302, 27303, 27304, 27305, 27306, 27307, 27308, 27309, 27310, 27311, 27312, 27313, 27314, 27315, 27316, 27317, 27318, 27319, 27320, 27321, 27322, 27323, 27324, 27325, 27326, 27327, 27328, 27329, 27330, 27331, 27332, 27333, 27334, 27335, 27336, 27337, 27338, 27339, 27340, 27341, 27342, 27343, 27344, 27345, 27346, 27347, 27348, 27349, 27350, 27351, 27352, 27353, 27354, 27355, 27356, 27357, 27358, 27359, 27360, 27361, 27362, 27363, 27364, 27365, 27366, 27367, 27368, 27369, 27370, 27371, 27372, 27373, 27374, 27375, 27376, 27377, 27378, 27379, 27380, 27381, 27382, 27383, 27384, 27385, 27386, 27387, 27388, 27389, 27390, 27391, 27392, 27393, 27394, 27395, 27396, 27397, 27398, 27399, 27400, 27401, 27402, 27403, 27404, 27405, 27406, 27407, 27408, 27409, 27410, 27411, 27412, 27413, 27414, 27415, 27416, 27417, 27418, 27419, 27420, 27421, 27422, 27423, 27424, 27425, 27426, 27427, 27428, 27429, 27430, 27431, 27432, 27433, 27434, 27435, 27436, 27437, 27438, 27439, 27440, 27441, 27442, 27443, 27444, 27445, 27446, 27447, 27448, 27449, 27450, 27451, 27452, 27453, 27454, 27455, 27456, 27457, 27458, 27459, 27460, 27461, 27462, 27463, 27464, 27465, 27466, 27467, 27468, 27469, 27470, 27471, 27472, 27473, 27474, 27475, 27476, 27477, 27478, 27479, 27480, 27481, 27482, 27483, 27484, 27485, 27486, 27487, 27488, 27489, 27490, 27491, 27492, 27493, 27494, 27495, 27496, 27497, 27498, 27499, 27500, 27501, 27502, 27503, 27504, 27505, 27506, 27507, 27508, 27509, 27510, 27511, 27512, 27513, 27514, 27515, 27516, 27517, 27518, 27519, 27520, 27521, 27522, 27523, 27524, 27525, 27526, 27527, 27528, 27529, 27530, 27531, 27532, 27533, 27534, 27535, 27536, 27537, 27538, 27539, 27540, 27541, 27542, 27543, 27544, 27545, 27546, 27547, 27548, 27549, 27550, 27551, 27552, 27553, 27554, 27555, 27556, 27557, 27558, 27559, 27560, 27561, 27562, 27563, 27564, 27565, 27566, 27567, 27568, 27569, 27570, 27571, 27572, 27573, 27574, 27575, 27576, 27577, 27578, 27579, 27580, 27581, 27582, 27583, 27584, 27585, 27586, 27587, 27588, 27589, 27590, 27591, 27592, 27593, 27594, 27595, 27596, 27597, 27598, 27599, 27600, 27601, 27602, 27603, 27604, 27605, 27606, 27607, 27608, 27609, 27610, 27611, 27612, 27613, 27614, 27615, 27616, 27617, 27618, 27619, 27620, 27621, 27622, 27623, 27624, 27625, 27626, 27627, 27628, 27629, 27630, 27631, 27632, 27633, 27634, 27635, 27636, 27637, 27638, 27639, 27640, 27641, 27642, 27643, 27644, 27645, 27646, 27647, 27648, 27649, 27650, 27651, 27652, 27653, 27654, 27655, 27656, 27657, 27658, 27659, 27660, 27661, 27662, 27663, 27664, 27665, 27666, 27667, 27668, 27669, 27670, 27671, 27672, 27673, 27674, 27675, 27676, 27677, 27678, 27679, 27680, 27681, 27682, 27683, 27684, 27685, 27686, 27687, 27688, 27689, 27690, 27691, 27692, 27693, 27694, 27695, 27696, 27697, 27698, 27699, 27700, 27701, 27702, 27703, 27704, 27705, 27706, 27707, 27708, 27709, 27710, 27711, 27712, 27713, 27714, 27715, 27716, 27717, 27718, 27719, 27720, 27721, 27722, 27723, 27724, 27725, 27726, 27727, 27728, 27729, 27730, 27731, 27732, 27733, 27734, 27735, 27736, 27737, 27738, 27739, 27740, 27741, 27742, 27743, 27744, 27745, 27746, 27747, 27748, 27749, 27750, 27751, 27752, 27753, 27754, 27755, 27756, 27757, 27758, 27759, 27760, 27761, 27762, 27763, 27764, 27765, 27766, 27767, 27768, 27769, 27770, 27771, 27772, 27773, 27774, 27775, 27776, 27777, 27778, 27779, 27780, 27781, 27782, 27783, 27784, 27785, 27786, 27787, 27788, 27789, 27790, 27791, 27792, 27793, 27794, 27795, 27796, 27797, 27798, 27799, 27800, 27801, 27802, 27803, 27804, 27805, 27806, 27807, 27808, 27809, 27810, 27811, 27812, 27813, 27814, 27815, 27816, 27817, 27818, 27819, 27820, 27821, 27822, 27823, 27824, 27825, 27826, 27827, 27828, 27829, 27830, 27831, 27832, 27833, 27834, 27835, 27836, 27837, 27838, 27839, 27840, 27841, 27842, 27843, 27844, 27845, 27846, 27847, 27848, 27849, 27850, 27851, 27852, 27853, 27854, 27855, 27856, 27857, 27858, 27859, 27860, 27861, 27862, 27863, 27864, 27865, 27866, 27867, 27868, 27869, 27870, 27871, 27872, 27873, 27874, 27875, 27876, 27877, 27878, 27879, 27880, 27881, 27882, 27883, 27884, 27885, 27886, 27887, 27888, 27889, 27890, 27891, 27892, 27893, 27894, 27895, 27896, 27897, 27898, 27899, 27900, 27901, 27902, 27903, 27904, 27905, 27906, 27907, 27908, 27909, 27910, 27911, 27912, 27913, 27914, 27915, 27916, 27917, 27918, 27919, 27920, 27921, 27922, 27923, 27924, 27925, 27926, 27927, 27928, 27929, 27930, 27931, 27932, 27933, 27934, 27935, 27936, 27937, 27938, 27939, 27940, 27941, 27942, 27943, 27944, 27945, 27946, 27947, 27948, 27949, 27950, 27951, 27952, 27953, 27954, 27955, 27956, 27957, 27958, 27959, 27960, 27961, 27962, 27963, 27964, 27965, 27966, 27967, 27968, 27969, 27970, 27971, 27972, 27973, 27974, 27975, 27976, 27977, 27978, 27979, 27980, 27981, 27982, 27983, 27984, 27985, 27986, 27987, 27988, 27989, 27990, 27991, 27992, 27993, 27994, 27995, 27996, 27997, 27998, 27999, 28000, 28001, 28002, 28003, 28004, 28005, 28006, 28007, 28008, 28009, 28010, 28011, 28012, 28013, 28014, 28015, 28016, 28017, 28018, 28019, 28020, 28021, 28022, 28023, 28024, 28025, 28026, 28027, 28028, 28029, 28030, 28031, 28032, 28033, 28034, 28035, 28036, 28037, 28038, 28039, 28040, 28041, 28042, 28043, 28044, 28045, 28046, 28047, 28048, 28049, 28050, 28051, 28052, 28053, 28054, 28055, 28056, 28057, 28058, 28059, 28060, 28061, 28062, 28063, 28064, 28065, 28066, 28067, 28068, 28069, 28070, 28071, 28072, 28073, 28074, 28075, 28076, 28077, 28078, 28079, 28080, 28081, 28082, 28083, 28084, 28085, 28086, 28087, 28088, 28089, 28090, 28091, 28092, 28093, 28094, 28095, 28096, 28097, 28098, 28099, 28100, 28101, 28102, 28103, 28104, 28105, 28106, 28107, 28108, 28109, 28110, 28111, 28112, 28113, 28114, 28115, 28116, 28117, 28118, 28119, 28120, 28121, 28122, 28123, 28124, 28125, 28126, 28127, 28128, 28129, 28130, 28131, 28132, 28133, 28134, 28135, 28136, 28137, 28138, 28139, 28140, 28141, 28142, 28143, 28144, 28145, 28146, 28147, 28148, 28149, 28150, 28151, 28152, 28153, 28154, 28155, 28156, 28157, 28158, 28159, 28160, 28161, 28162, 28163, 28164, 28165, 28166, 28167, 28168, 28169, 28170, 28171, 28172, 28173, 28174, 28175, 28176, 28177, 28178, 28179, 28180, 28181, 28182, 28183, 28184, 28185, 28186, 28187, 28188, 28189, 28190, 28191, 28192, 28193, 28194, 28195, 28196, 28197, 28198, 28199, 28200, 28201, 28202, 28203, 28204, 28205, 28206, 28207, 28208, 28209, 28210, 28211, 28212, 28213, 28214, 28215, 28216, 28217, 28218, 28219, 28220, 28221, 28222, 28223, 28224, 28225, 28226, 28227, 28228, 28229, 28230, 28231, 28232, 28233, 28234, 28235, 28236, 28237, 28238, 28239, 28240, 28241, 28242, 28243, 28244, 28245, 28246, 28247, 28248, 28249, 28250, 28251, 28252, 28253, 28254, 28255, 28256, 28257, 28258, 28259, 28260, 28261, 28262, 28263, 28264, 28265, 28266, 28267, 28268, 28269, 28270, 28271, 28272, 28273, 28274, 28275, 28276, 28277, 28278, 28279, 28280, 28281, 28282, 28283, 28284, 28285, 28286, 28287, 28288, 28289, 28290, 28291, 28292, 28293, 28294, 28295, 28296, 28297, 28298, 28299, 28300, 28301, 28302, 28303, 28304, 28305, 28306, 28307, 28308, 28309, 28310, 28311, 28312, 28313, 28314, 28315, 28316, 28317, 28318, 28319, 28320, 28321, 28322, 28323, 28324, 28325, 28326, 28327, 28328, 28329, 28330, 28331, 28332, 28333, 28334, 28335, 28336, 28337, 28338, 28339, 28340, 28341, 28342, 28343, 28344, 28345, 28346, 28347, 28348, 28349, 28350, 28351, 28352, 28353, 28354, 28355, 28356, 28357, 28358, 28359, 28360, 28361, 28362, 28363, 28364, 28365, 28366, 28367, 28368, 28369, 28370, 28371, 28372, 28373, 28374, 28375, 28376, 28377, 28378, 28379, 28380, 28381, 28382, 28383, 28384, 28385, 28386, 28387, 28388, 28389, 28390, 28391, 28392, 28393, 28394, 28395, 28396, 28397, 28398, 28399, 28400, 28401, 28402, 28403, 28404, 28405, 28406, 28407, 28408, 28409, 28410, 28411, 28412, 28413, 28414, 28415, 28416, 28417, 28418, 28419, 28420, 28421, 28422, 28423, 28424, 28425, 28426, 28427, 28428, 28429, 28430, 28431, 28432, 28433, 28434, 28435, 28436, 28437, 28438, 28439, 28440, 28441, 28442, 28443, 28444, 28445, 28446, 28447, 28448, 28449, 28450, 28451, 28452, 28453, 28454, 28455, 28456, 28457, 28458, 28459, 28460, 28461, 28462, 28463, 28464, 28465, 28466, 28467, 28468, 28469, 28470, 28471, 28472, 28473, 28474, 28475, 28476, 28477, 28478, 28479, 28480, 28481, 28482, 28483, 28484, 28485, 28486, 28487, 28488, 28489, 28490, 28491, 28492, 28493, 28494, 28495, 28496, 28497, 28498, 28499, 28500, 28501, 28502, 28503, 28504, 28505, 28506, 28507, 28508, 28509, 28510, 28511, 28512, 28513, 28514, 28515, 28516, 28517, 28518, 28519, 28520, 28521, 28522, 28523, 28524, 28525, 28526, 28527, 28528, 28529, 28530, 28531, 28532, 28533, 28534, 28535, 28536, 28537, 28538, 28539, 28540, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28548, 28549, 28550, 28551, 28552, 28553, 28554, 28555, 28556, 28557, 28558, 28559, 28560, 28561, 28562, 28563, 28564, 28565, 28566, 28567, 28568, 28569, 28570, 28571, 28572, 28573, 28574, 28575, 28576, 28577, 28578, 28579, 28580, 28581, 28582, 28583, 28584, 28585, 28586, 28587, 28588, 28589, 28590, 28591, 28592, 28593, 28594, 28595, 28596, 28597, 28598, 28599, 28600, 28601, 28602, 28603, 28604, 28605, 28606, 28607, 28608, 28609, 28610, 28611, 28612, 28613, 28614, 28615, 28616, 28617, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28625, 28626, 28627, 28628, 28629, 28630, 28631, 28632, 28633, 28634, 28635, 28636, 28637, 28638, 28639, 28640, 28641, 28642, 28643, 28644, 28645, 28646, 28647, 28648, 28649, 28650, 28651, 28652, 28653, 28654, 28655, 28656, 28657, 28658, 28659, 28660, 28661, 28662, 28663, 28664, 28665, 28666, 28667, 28668, 28669, 28670, 28671, 28672, 28673, 28674, 28675, 28676, 28677, 28678, 28679, 28680, 28681, 28682, 28683, 28684, 28685, 28686, 28687, 28688, 28689, 28690, 28691, 28692, 28693, 28694, 28695, 28696, 28697, 28698, 28699, 28700, 28701, 28702, 28703, 28704, 28705, 28706, 28707, 28708, 28709, 28710, 28711, 28712, 28713, 28714, 28715, 28716, 28717, 28718, 28719, 28720, 28721, 28722, 28723, 28724, 28725, 28726, 28727, 28728, 28729, 28730, 28731, 28732, 28733, 28734, 28735, 28736, 28737, 28738, 28739, 28740, 28741, 28742, 28743, 28744, 28745, 28746, 28747, 28748, 28749, 28750, 28751, 28752, 28753, 28754, 28755, 28756, 28757, 28758, 28759, 28760, 28761, 28762, 28763, 28764, 28765, 28766, 28767, 28768, 28769, 28770, 28771, 28772, 28773, 28774, 28775, 28776, 28777, 28778, 28779, 28780, 28781, 28782, 28783, 28784, 28785, 28786, 28787, 28788, 28789, 28790, 28791, 28792, 28793, 28794, 28795, 28796, 28797, 28798, 28799, 28800, 28801, 28802, 28803, 28804, 28805, 28806, 28807, 28808, 28809, 28810, 28811, 28812, 28813, 28814, 28815, 28816, 28817, 28818, 28819, 28820, 28821, 28822, 28823, 28824, 28825, 28826, 28827, 28828, 28829, 28830, 28831, 28832, 28833, 28834, 28835, 28836, 28837, 28838, 28839, 28840, 28841, 28842, 28843, 28844, 28845, 28846, 28847, 28848, 28849, 28850, 28851, 28852, 28853, 28854, 28855, 28856, 28857, 28858, 28859, 28860, 28861, 28862, 28863, 28864, 28865, 28866, 28867, 28868, 28869, 28870, 28871, 28872, 28873, 28874, 28875, 28876, 28877, 28878, 28879, 28880, 28881, 28882, 28883, 28884, 28885, 28886, 28887, 28888, 28889, 28890, 28891, 28892, 28893, 28894, 28895, 28896, 28897, 28898, 28899, 28900, 28901, 28902, 28903, 28904, 28905, 28906, 28907, 28908, 28909, 28910, 28911, 28912, 28913, 28914, 28915, 28916, 28917, 28918, 28919, 28920, 28921, 28922, 28923, 28924, 28925, 28926, 28927, 28928, 28929, 28930, 28931, 28932, 28933, 28934, 28935, 28936, 28937, 28938, 28939, 28940, 28941, 28942, 28943, 28944, 28945, 28946, 28947, 28948, 28949, 28950, 28951, 28952, 28953, 28954, 28955, 28956, 28957, 28958, 28959, 28960, 28961, 28962, 28963, 28964, 28965, 28966, 28967, 28968, 28969, 28970, 28971, 28972, 28973, 28974, 28975, 28976, 28977, 28978, 28979, 28980, 28981, 28982, 28983, 28984, 28985, 28986, 28987, 28988, 28989, 28990, 28991, 28992, 28993, 28994, 28995, 28996, 28997, 28998, 28999, 29000, 29001, 29002, 29003, 29004, 29005, 29006, 29007, 29008, 29009, 29010, 29011, 29012, 29013, 29014, 29015, 29016, 29017, 29018, 29019, 29020, 29021, 29022, 29023, 29024, 29025, 29026, 29027, 29028, 29029, 29030, 29031, 29032, 29033, 29034, 29035, 29036, 29037, 29038, 29039, 29040, 29041, 29042, 29043, 29044, 29045, 29046, 29047, 29048, 29049, 29050, 29051, 29052, 29053, 29054, 29055, 29056, 29057, 29058, 29059, 29060, 29061, 29062, 29063, 29064, 29065, 29066, 29067, 29068, 29069, 29070, 29071, 29072, 29073, 29074, 29075, 29076, 29077, 29078, 29079, 29080, 29081, 29082, 29083, 29084, 29085, 29086, 29087, 29088, 29089, 29090, 29091, 29092, 29093, 29094, 29095, 29096, 29097, 29098, 29099, 29100, 29101, 29102, 29103, 29104, 29105, 29106, 29107, 29108, 29109, 29110, 29111, 29112, 29113, 29114, 29115, 29116, 29117, 29118, 29119, 29120, 29121, 29122, 29123, 29124, 29125, 29126, 29127, 29128, 29129, 29130, 29131, 29132, 29133, 29134, 29135, 29136, 29137, 29138, 29139, 29140, 29141, 29142, 29143, 29144, 29145, 29146, 29147, 29148, 29149, 29150, 29151, 29152, 29153, 29154, 29155, 29156, 29157, 29158, 29159, 29160, 29161, 29162, 29163, 29164, 29165, 29166, 29167, 29168, 29169, 29170, 29171, 29172, 29173, 29174, 29175, 29176, 29177, 29178, 29179, 29180, 29181, 29182, 29183, 29184, 29185, 29186, 29187, 29188, 29189, 29190, 29191, 29192, 29193, 29194, 29195, 29196, 29197, 29198, 29199, 29200, 29201, 29202, 29203, 29204, 29205, 29206, 29207, 29208, 29209, 29210, 29211, 29212, 29213, 29214, 29215, 29216, 29217, 29218, 29219, 29220, 29221, 29222, 29223, 29224, 29225, 29226, 29227, 29228, 29229, 29230, 29231, 29232, 29233, 29234, 29235, 29236, 29237, 29238, 29239, 29240, 29241, 29242, 29243, 29244, 29245, 29246, 29247, 29248, 29249, 29250, 29251, 29252, 29253, 29254, 29255, 29256, 29257, 29258, 29259, 29260, 29261, 29262, 29263, 29264, 29265, 29266, 29267, 29268, 29269, 29270, 29271, 29272, 29273, 29274, 29275, 29276, 29277, 29278, 29279, 29280, 29281, 29282, 29283, 29284, 29285, 29286, 29287, 29288, 29289, 29290, 29291, 29292, 29293, 29294, 29295, 29296, 29297, 29298, 29299, 29300, 29301, 29302, 29303, 29304, 29305, 29306, 29307, 29308, 29309, 29310, 29311, 29312, 29313, 29314, 29315, 29316, 29317, 29318, 29319, 29320, 29321, 29322, 29323, 29324, 29325, 29326, 29327, 29328, 29329, 29330, 29331, 29332, 29333, 29334, 29335, 29336, 29337, 29338, 29339, 29340, 29341, 29342, 29343, 29344, 29345, 29346, 29347, 29348, 29349, 29350, 29351, 29352, 29353, 29354, 29355, 29356, 29357, 29358, 29359, 29360, 29361, 29362, 29363, 29364, 29365, 29366, 29367, 29368, 29369, 29370, 29371, 29372, 29373, 29374, 29375, 29376, 29377, 29378, 29379, 29380, 29381, 29382, 29383, 29384, 29385, 29386, 29387, 29388, 29389, 29390, 29391, 29392, 29393, 29394, 29395, 29396, 29397, 29398, 29399, 29400, 29401, 29402, 29403, 29404, 29405, 29406, 29407, 29408, 29409, 29410, 29411, 29412, 29413, 29414, 29415, 29416, 29417, 29418, 29419, 29420, 29421, 29422, 29423, 29424, 29425, 29426, 29427, 29428, 29429, 29430, 29431, 29432, 29433, 29434, 29435, 29436, 29437, 29438, 29439, 29440, 29441, 29442, 29443, 29444, 29445, 29446, 29447, 29448, 29449, 29450, 29451, 29452, 29453, 29454, 29455, 29456, 29457, 29458, 29459, 29460, 29461, 29462, 29463, 29464, 29465, 29466, 29467, 29468, 29469, 29470, 29471, 29472, 29473, 29474, 29475, 29476, 29477, 29478, 29479, 29480, 29481, 29482, 29483, 29484, 29485, 29486, 29487, 29488, 29489, 29490, 29491, 29492, 29493, 29494, 29495, 29496, 29497, 29498, 29499, 29500, 29501, 29502, 29503, 29504, 29505, 29506, 29507, 29508, 29509, 29510, 29511, 29512, 29513, 29514, 29515, 29516, 29517, 29518, 29519, 29520, 29521, 29522, 29523, 29524, 29525, 29526, 29527, 29528, 29529, 29530, 29531, 29532, 29533, 29534, 29535, 29536, 29537, 29538, 29539, 29540, 29541, 29542, 29543, 29544, 29545, 29546, 29547, 29548, 29549, 29550, 29551, 29552, 29553, 29554, 29555, 29556, 29557, 29558, 29559, 29560, 29561, 29562, 29563, 29564, 29565, 29566, 29567, 29568, 29569, 29570, 29571, 29572, 29573, 29574, 29575, 29576, 29577, 29578, 29579, 29580, 29581, 29582, 29583, 29584, 29585, 29586, 29587, 29588, 29589, 29590, 29591, 29592, 29593, 29594, 29595, 29596, 29597, 29598, 29599, 29600, 29601, 29602, 29603, 29604, 29605, 29606, 29607, 29608, 29609, 29610, 29611, 29612, 29613, 29614, 29615, 29616, 29617, 29618, 29619, 29620, 29621, 29622, 29623, 29624, 29625, 29626, 29627, 29628, 29629, 29630, 29631, 29632, 29633, 29634, 29635, 29636, 29637, 29638, 29639, 29640, 29641, 29642, 29643, 29644, 29645, 29646, 29647, 29648, 29649, 29650, 29651, 29652, 29653, 29654, 29655, 29656, 29657, 29658, 29659, 29660, 29661, 29662, 29663, 29664, 29665, 29666, 29667, 29668, 29669, 29670, 29671, 29672, 29673, 29674, 29675, 29676, 29677, 29678, 29679, 29680, 29681, 29682, 29683, 29684, 29685, 29686, 29687, 29688, 29689, 29690, 29691, 29692, 29693, 29694, 29695, 29696, 29697, 29698, 29699, 29700, 29701, 29702, 29703, 29704, 29705, 29706, 29707, 29708, 29709, 29710, 29711, 29712, 29713, 29714, 29715, 29716, 29717, 29718, 29719, 29720, 29721, 29722, 29723, 29724, 29725, 29726, 29727, 29728, 29729, 29730, 29731, 29732, 29733, 29734, 29735, 29736, 29737, 29738, 29739, 29740, 29741, 29742, 29743, 29744, 29745, 29746, 29747, 29748, 29749, 29750, 29751, 29752, 29753, 29754, 29755, 29756, 29757, 29758, 29759, 29760, 29761, 29762, 29763, 29764, 29765, 29766, 29767, 29768, 29769, 29770, 29771, 29772, 29773, 29774, 29775, 29776, 29777, 29778, 29779, 29780, 29781, 29782, 29783, 29784, 29785, 29786, 29787, 29788, 29789, 29790, 29791, 29792, 29793, 29794, 29795, 29796, 29797, 29798, 29799, 29800, 29801, 29802, 29803, 29804, 29805, 29806, 29807, 29808, 29809, 29810, 29811, 29812, 29813, 29814, 29815, 29816, 29817, 29818, 29819, 29820, 29821, 29822, 29823, 29824, 29825, 29826, 29827, 29828, 29829, 29830, 29831, 29832, 29833, 29834, 29835, 29836, 29837, 29838, 29839, 29840, 29841, 29842, 29843, 29844, 29845, 29846, 29847, 29848, 29849, 29850, 29851, 29852, 29853, 29854, 29855, 29856, 29857, 29858, 29859, 29860, 29861, 29862, 29863, 29864, 29865, 29866, 29867, 29868, 29869, 29870, 29871, 29872, 29873, 29874, 29875, 29876, 29877, 29878, 29879, 29880, 29881, 29882, 29883, 29884, 29885, 29886, 29887, 29888, 29889, 29890, 29891, 29892, 29893, 29894, 29895, 29896, 29897, 29898, 29899, 29900, 29901, 29902, 29903, 29904, 29905, 29906, 29907, 29908, 29909, 29910, 29911, 29912, 29913, 29914, 29915, 29916, 29917, 29918, 29919, 29920, 29921, 29922, 29923, 29924, 29925, 29926, 29927, 29928, 29929, 29930, 29931, 29932, 29933, 29934, 29935, 29936, 29937, 29938, 29939, 29940, 29941, 29942, 29943, 29944, 29945, 29946, 29947, 29948, 29949, 29950, 29951, 29952, 29953, 29954, 29955, 29956, 29957, 29958, 29959, 29960, 29961, 29962, 29963, 29964, 29965, 29966, 29967, 29968, 29969, 29970, 29971, 29972, 29973, 29974, 29975, 29976, 29977, 29978, 29979, 29980, 29981, 29982, 29983, 29984, 29985, 29986, 29987, 29988, 29989, 29990, 29991, 29992, 29993, 29994, 29995, 29996, 29997, 29998, 29999] 30000 TODO -[29999, 29998, 29997, 29996, 29995, 29994, 29993, 29992, 29991, 29990, 29989, 29988, 29987, 29986, 29985, 29984, 29983, 29982, 29981, 29980, 29979, 29978, 29977, 29976, 29975, 29974, 29973, 29972, 29971, 29970, 29969, 29968, 29967, 29966, 29965, 29964, 29963, 29962, 29961, 29960, 29959, 29958, 29957, 29956, 29955, 29954, 29953, 29952, 29951, 29950, 29949, 29948, 29947, 29946, 29945, 29944, 29943, 29942, 29941, 29940, 29939, 29938, 29937, 29936, 29935, 29934, 29933, 29932, 29931, 29930, 29929, 29928, 29927, 29926, 29925, 29924, 29923, 29922, 29921, 29920, 29919, 29918, 29917, 29916, 29915, 29914, 29913, 29912, 29911, 29910, 29909, 29908, 29907, 29906, 29905, 29904, 29903, 29902, 29901, 29900, 29899, 29898, 29897, 29896, 29895, 29894, 29893, 29892, 29891, 29890, 29889, 29888, 29887, 29886, 29885, 29884, 29883, 29882, 29881, 29880, 29879, 29878, 29877, 29876, 29875, 29874, 29873, 29872, 29871, 29870, 29869, 29868, 29867, 29866, 29865, 29864, 29863, 29862, 29861, 29860, 29859, 29858, 29857, 29856, 29855, 29854, 29853, 29852, 29851, 29850, 29849, 29848, 29847, 29846, 29845, 29844, 29843, 29842, 29841, 29840, 29839, 29838, 29837, 29836, 29835, 29834, 29833, 29832, 29831, 29830, 29829, 29828, 29827, 29826, 29825, 29824, 29823, 29822, 29821, 29820, 29819, 29818, 29817, 29816, 29815, 29814, 29813, 29812, 29811, 29810, 29809, 29808, 29807, 29806, 29805, 29804, 29803, 29802, 29801, 29800, 29799, 29798, 29797, 29796, 29795, 29794, 29793, 29792, 29791, 29790, 29789, 29788, 29787, 29786, 29785, 29784, 29783, 29782, 29781, 29780, 29779, 29778, 29777, 29776, 29775, 29774, 29773, 29772, 29771, 29770, 29769, 29768, 29767, 29766, 29765, 29764, 29763, 29762, 29761, 29760, 29759, 29758, 29757, 29756, 29755, 29754, 29753, 29752, 29751, 29750, 29749, 29748, 29747, 29746, 29745, 29744, 29743, 29742, 29741, 29740, 29739, 29738, 29737, 29736, 29735, 29734, 29733, 29732, 29731, 29730, 29729, 29728, 29727, 29726, 29725, 29724, 29723, 29722, 29721, 29720, 29719, 29718, 29717, 29716, 29715, 29714, 29713, 29712, 29711, 29710, 29709, 29708, 29707, 29706, 29705, 29704, 29703, 29702, 29701, 29700, 29699, 29698, 29697, 29696, 29695, 29694, 29693, 29692, 29691, 29690, 29689, 29688, 29687, 29686, 29685, 29684, 29683, 29682, 29681, 29680, 29679, 29678, 29677, 29676, 29675, 29674, 29673, 29672, 29671, 29670, 29669, 29668, 29667, 29666, 29665, 29664, 29663, 29662, 29661, 29660, 29659, 29658, 29657, 29656, 29655, 29654, 29653, 29652, 29651, 29650, 29649, 29648, 29647, 29646, 29645, 29644, 29643, 29642, 29641, 29640, 29639, 29638, 29637, 29636, 29635, 29634, 29633, 29632, 29631, 29630, 29629, 29628, 29627, 29626, 29625, 29624, 29623, 29622, 29621, 29620, 29619, 29618, 29617, 29616, 29615, 29614, 29613, 29612, 29611, 29610, 29609, 29608, 29607, 29606, 29605, 29604, 29603, 29602, 29601, 29600, 29599, 29598, 29597, 29596, 29595, 29594, 29593, 29592, 29591, 29590, 29589, 29588, 29587, 29586, 29585, 29584, 29583, 29582, 29581, 29580, 29579, 29578, 29577, 29576, 29575, 29574, 29573, 29572, 29571, 29570, 29569, 29568, 29567, 29566, 29565, 29564, 29563, 29562, 29561, 29560, 29559, 29558, 29557, 29556, 29555, 29554, 29553, 29552, 29551, 29550, 29549, 29548, 29547, 29546, 29545, 29544, 29543, 29542, 29541, 29540, 29539, 29538, 29537, 29536, 29535, 29534, 29533, 29532, 29531, 29530, 29529, 29528, 29527, 29526, 29525, 29524, 29523, 29522, 29521, 29520, 29519, 29518, 29517, 29516, 29515, 29514, 29513, 29512, 29511, 29510, 29509, 29508, 29507, 29506, 29505, 29504, 29503, 29502, 29501, 29500, 29499, 29498, 29497, 29496, 29495, 29494, 29493, 29492, 29491, 29490, 29489, 29488, 29487, 29486, 29485, 29484, 29483, 29482, 29481, 29480, 29479, 29478, 29477, 29476, 29475, 29474, 29473, 29472, 29471, 29470, 29469, 29468, 29467, 29466, 29465, 29464, 29463, 29462, 29461, 29460, 29459, 29458, 29457, 29456, 29455, 29454, 29453, 29452, 29451, 29450, 29449, 29448, 29447, 29446, 29445, 29444, 29443, 29442, 29441, 29440, 29439, 29438, 29437, 29436, 29435, 29434, 29433, 29432, 29431, 29430, 29429, 29428, 29427, 29426, 29425, 29424, 29423, 29422, 29421, 29420, 29419, 29418, 29417, 29416, 29415, 29414, 29413, 29412, 29411, 29410, 29409, 29408, 29407, 29406, 29405, 29404, 29403, 29402, 29401, 29400, 29399, 29398, 29397, 29396, 29395, 29394, 29393, 29392, 29391, 29390, 29389, 29388, 29387, 29386, 29385, 29384, 29383, 29382, 29381, 29380, 29379, 29378, 29377, 29376, 29375, 29374, 29373, 29372, 29371, 29370, 29369, 29368, 29367, 29366, 29365, 29364, 29363, 29362, 29361, 29360, 29359, 29358, 29357, 29356, 29355, 29354, 29353, 29352, 29351, 29350, 29349, 29348, 29347, 29346, 29345, 29344, 29343, 29342, 29341, 29340, 29339, 29338, 29337, 29336, 29335, 29334, 29333, 29332, 29331, 29330, 29329, 29328, 29327, 29326, 29325, 29324, 29323, 29322, 29321, 29320, 29319, 29318, 29317, 29316, 29315, 29314, 29313, 29312, 29311, 29310, 29309, 29308, 29307, 29306, 29305, 29304, 29303, 29302, 29301, 29300, 29299, 29298, 29297, 29296, 29295, 29294, 29293, 29292, 29291, 29290, 29289, 29288, 29287, 29286, 29285, 29284, 29283, 29282, 29281, 29280, 29279, 29278, 29277, 29276, 29275, 29274, 29273, 29272, 29271, 29270, 29269, 29268, 29267, 29266, 29265, 29264, 29263, 29262, 29261, 29260, 29259, 29258, 29257, 29256, 29255, 29254, 29253, 29252, 29251, 29250, 29249, 29248, 29247, 29246, 29245, 29244, 29243, 29242, 29241, 29240, 29239, 29238, 29237, 29236, 29235, 29234, 29233, 29232, 29231, 29230, 29229, 29228, 29227, 29226, 29225, 29224, 29223, 29222, 29221, 29220, 29219, 29218, 29217, 29216, 29215, 29214, 29213, 29212, 29211, 29210, 29209, 29208, 29207, 29206, 29205, 29204, 29203, 29202, 29201, 29200, 29199, 29198, 29197, 29196, 29195, 29194, 29193, 29192, 29191, 29190, 29189, 29188, 29187, 29186, 29185, 29184, 29183, 29182, 29181, 29180, 29179, 29178, 29177, 29176, 29175, 29174, 29173, 29172, 29171, 29170, 29169, 29168, 29167, 29166, 29165, 29164, 29163, 29162, 29161, 29160, 29159, 29158, 29157, 29156, 29155, 29154, 29153, 29152, 29151, 29150, 29149, 29148, 29147, 29146, 29145, 29144, 29143, 29142, 29141, 29140, 29139, 29138, 29137, 29136, 29135, 29134, 29133, 29132, 29131, 29130, 29129, 29128, 29127, 29126, 29125, 29124, 29123, 29122, 29121, 29120, 29119, 29118, 29117, 29116, 29115, 29114, 29113, 29112, 29111, 29110, 29109, 29108, 29107, 29106, 29105, 29104, 29103, 29102, 29101, 29100, 29099, 29098, 29097, 29096, 29095, 29094, 29093, 29092, 29091, 29090, 29089, 29088, 29087, 29086, 29085, 29084, 29083, 29082, 29081, 29080, 29079, 29078, 29077, 29076, 29075, 29074, 29073, 29072, 29071, 29070, 29069, 29068, 29067, 29066, 29065, 29064, 29063, 29062, 29061, 29060, 29059, 29058, 29057, 29056, 29055, 29054, 29053, 29052, 29051, 29050, 29049, 29048, 29047, 29046, 29045, 29044, 29043, 29042, 29041, 29040, 29039, 29038, 29037, 29036, 29035, 29034, 29033, 29032, 29031, 29030, 29029, 29028, 29027, 29026, 29025, 29024, 29023, 29022, 29021, 29020, 29019, 29018, 29017, 29016, 29015, 29014, 29013, 29012, 29011, 29010, 29009, 29008, 29007, 29006, 29005, 29004, 29003, 29002, 29001, 29000, 28999, 28998, 28997, 28996, 28995, 28994, 28993, 28992, 28991, 28990, 28989, 28988, 28987, 28986, 28985, 28984, 28983, 28982, 28981, 28980, 28979, 28978, 28977, 28976, 28975, 28974, 28973, 28972, 28971, 28970, 28969, 28968, 28967, 28966, 28965, 28964, 28963, 28962, 28961, 28960, 28959, 28958, 28957, 28956, 28955, 28954, 28953, 28952, 28951, 28950, 28949, 28948, 28947, 28946, 28945, 28944, 28943, 28942, 28941, 28940, 28939, 28938, 28937, 28936, 28935, 28934, 28933, 28932, 28931, 28930, 28929, 28928, 28927, 28926, 28925, 28924, 28923, 28922, 28921, 28920, 28919, 28918, 28917, 28916, 28915, 28914, 28913, 28912, 28911, 28910, 28909, 28908, 28907, 28906, 28905, 28904, 28903, 28902, 28901, 28900, 28899, 28898, 28897, 28896, 28895, 28894, 28893, 28892, 28891, 28890, 28889, 28888, 28887, 28886, 28885, 28884, 28883, 28882, 28881, 28880, 28879, 28878, 28877, 28876, 28875, 28874, 28873, 28872, 28871, 28870, 28869, 28868, 28867, 28866, 28865, 28864, 28863, 28862, 28861, 28860, 28859, 28858, 28857, 28856, 28855, 28854, 28853, 28852, 28851, 28850, 28849, 28848, 28847, 28846, 28845, 28844, 28843, 28842, 28841, 28840, 28839, 28838, 28837, 28836, 28835, 28834, 28833, 28832, 28831, 28830, 28829, 28828, 28827, 28826, 28825, 28824, 28823, 28822, 28821, 28820, 28819, 28818, 28817, 28816, 28815, 28814, 28813, 28812, 28811, 28810, 28809, 28808, 28807, 28806, 28805, 28804, 28803, 28802, 28801, 28800, 28799, 28798, 28797, 28796, 28795, 28794, 28793, 28792, 28791, 28790, 28789, 28788, 28787, 28786, 28785, 28784, 28783, 28782, 28781, 28780, 28779, 28778, 28777, 28776, 28775, 28774, 28773, 28772, 28771, 28770, 28769, 28768, 28767, 28766, 28765, 28764, 28763, 28762, 28761, 28760, 28759, 28758, 28757, 28756, 28755, 28754, 28753, 28752, 28751, 28750, 28749, 28748, 28747, 28746, 28745, 28744, 28743, 28742, 28741, 28740, 28739, 28738, 28737, 28736, 28735, 28734, 28733, 28732, 28731, 28730, 28729, 28728, 28727, 28726, 28725, 28724, 28723, 28722, 28721, 28720, 28719, 28718, 28717, 28716, 28715, 28714, 28713, 28712, 28711, 28710, 28709, 28708, 28707, 28706, 28705, 28704, 28703, 28702, 28701, 28700, 28699, 28698, 28697, 28696, 28695, 28694, 28693, 28692, 28691, 28690, 28689, 28688, 28687, 28686, 28685, 28684, 28683, 28682, 28681, 28680, 28679, 28678, 28677, 28676, 28675, 28674, 28673, 28672, 28671, 28670, 28669, 28668, 28667, 28666, 28665, 28664, 28663, 28662, 28661, 28660, 28659, 28658, 28657, 28656, 28655, 28654, 28653, 28652, 28651, 28650, 28649, 28648, 28647, 28646, 28645, 28644, 28643, 28642, 28641, 28640, 28639, 28638, 28637, 28636, 28635, 28634, 28633, 28632, 28631, 28630, 28629, 28628, 28627, 28626, 28625, 28624, 28623, 28622, 28621, 28620, 28619, 28618, 28617, 28616, 28615, 28614, 28613, 28612, 28611, 28610, 28609, 28608, 28607, 28606, 28605, 28604, 28603, 28602, 28601, 28600, 28599, 28598, 28597, 28596, 28595, 28594, 28593, 28592, 28591, 28590, 28589, 28588, 28587, 28586, 28585, 28584, 28583, 28582, 28581, 28580, 28579, 28578, 28577, 28576, 28575, 28574, 28573, 28572, 28571, 28570, 28569, 28568, 28567, 28566, 28565, 28564, 28563, 28562, 28561, 28560, 28559, 28558, 28557, 28556, 28555, 28554, 28553, 28552, 28551, 28550, 28549, 28548, 28547, 28546, 28545, 28544, 28543, 28542, 28541, 28540, 28539, 28538, 28537, 28536, 28535, 28534, 28533, 28532, 28531, 28530, 28529, 28528, 28527, 28526, 28525, 28524, 28523, 28522, 28521, 28520, 28519, 28518, 28517, 28516, 28515, 28514, 28513, 28512, 28511, 28510, 28509, 28508, 28507, 28506, 28505, 28504, 28503, 28502, 28501, 28500, 28499, 28498, 28497, 28496, 28495, 28494, 28493, 28492, 28491, 28490, 28489, 28488, 28487, 28486, 28485, 28484, 28483, 28482, 28481, 28480, 28479, 28478, 28477, 28476, 28475, 28474, 28473, 28472, 28471, 28470, 28469, 28468, 28467, 28466, 28465, 28464, 28463, 28462, 28461, 28460, 28459, 28458, 28457, 28456, 28455, 28454, 28453, 28452, 28451, 28450, 28449, 28448, 28447, 28446, 28445, 28444, 28443, 28442, 28441, 28440, 28439, 28438, 28437, 28436, 28435, 28434, 28433, 28432, 28431, 28430, 28429, 28428, 28427, 28426, 28425, 28424, 28423, 28422, 28421, 28420, 28419, 28418, 28417, 28416, 28415, 28414, 28413, 28412, 28411, 28410, 28409, 28408, 28407, 28406, 28405, 28404, 28403, 28402, 28401, 28400, 28399, 28398, 28397, 28396, 28395, 28394, 28393, 28392, 28391, 28390, 28389, 28388, 28387, 28386, 28385, 28384, 28383, 28382, 28381, 28380, 28379, 28378, 28377, 28376, 28375, 28374, 28373, 28372, 28371, 28370, 28369, 28368, 28367, 28366, 28365, 28364, 28363, 28362, 28361, 28360, 28359, 28358, 28357, 28356, 28355, 28354, 28353, 28352, 28351, 28350, 28349, 28348, 28347, 28346, 28345, 28344, 28343, 28342, 28341, 28340, 28339, 28338, 28337, 28336, 28335, 28334, 28333, 28332, 28331, 28330, 28329, 28328, 28327, 28326, 28325, 28324, 28323, 28322, 28321, 28320, 28319, 28318, 28317, 28316, 28315, 28314, 28313, 28312, 28311, 28310, 28309, 28308, 28307, 28306, 28305, 28304, 28303, 28302, 28301, 28300, 28299, 28298, 28297, 28296, 28295, 28294, 28293, 28292, 28291, 28290, 28289, 28288, 28287, 28286, 28285, 28284, 28283, 28282, 28281, 28280, 28279, 28278, 28277, 28276, 28275, 28274, 28273, 28272, 28271, 28270, 28269, 28268, 28267, 28266, 28265, 28264, 28263, 28262, 28261, 28260, 28259, 28258, 28257, 28256, 28255, 28254, 28253, 28252, 28251, 28250, 28249, 28248, 28247, 28246, 28245, 28244, 28243, 28242, 28241, 28240, 28239, 28238, 28237, 28236, 28235, 28234, 28233, 28232, 28231, 28230, 28229, 28228, 28227, 28226, 28225, 28224, 28223, 28222, 28221, 28220, 28219, 28218, 28217, 28216, 28215, 28214, 28213, 28212, 28211, 28210, 28209, 28208, 28207, 28206, 28205, 28204, 28203, 28202, 28201, 28200, 28199, 28198, 28197, 28196, 28195, 28194, 28193, 28192, 28191, 28190, 28189, 28188, 28187, 28186, 28185, 28184, 28183, 28182, 28181, 28180, 28179, 28178, 28177, 28176, 28175, 28174, 28173, 28172, 28171, 28170, 28169, 28168, 28167, 28166, 28165, 28164, 28163, 28162, 28161, 28160, 28159, 28158, 28157, 28156, 28155, 28154, 28153, 28152, 28151, 28150, 28149, 28148, 28147, 28146, 28145, 28144, 28143, 28142, 28141, 28140, 28139, 28138, 28137, 28136, 28135, 28134, 28133, 28132, 28131, 28130, 28129, 28128, 28127, 28126, 28125, 28124, 28123, 28122, 28121, 28120, 28119, 28118, 28117, 28116, 28115, 28114, 28113, 28112, 28111, 28110, 28109, 28108, 28107, 28106, 28105, 28104, 28103, 28102, 28101, 28100, 28099, 28098, 28097, 28096, 28095, 28094, 28093, 28092, 28091, 28090, 28089, 28088, 28087, 28086, 28085, 28084, 28083, 28082, 28081, 28080, 28079, 28078, 28077, 28076, 28075, 28074, 28073, 28072, 28071, 28070, 28069, 28068, 28067, 28066, 28065, 28064, 28063, 28062, 28061, 28060, 28059, 28058, 28057, 28056, 28055, 28054, 28053, 28052, 28051, 28050, 28049, 28048, 28047, 28046, 28045, 28044, 28043, 28042, 28041, 28040, 28039, 28038, 28037, 28036, 28035, 28034, 28033, 28032, 28031, 28030, 28029, 28028, 28027, 28026, 28025, 28024, 28023, 28022, 28021, 28020, 28019, 28018, 28017, 28016, 28015, 28014, 28013, 28012, 28011, 28010, 28009, 28008, 28007, 28006, 28005, 28004, 28003, 28002, 28001, 28000, 27999, 27998, 27997, 27996, 27995, 27994, 27993, 27992, 27991, 27990, 27989, 27988, 27987, 27986, 27985, 27984, 27983, 27982, 27981, 27980, 27979, 27978, 27977, 27976, 27975, 27974, 27973, 27972, 27971, 27970, 27969, 27968, 27967, 27966, 27965, 27964, 27963, 27962, 27961, 27960, 27959, 27958, 27957, 27956, 27955, 27954, 27953, 27952, 27951, 27950, 27949, 27948, 27947, 27946, 27945, 27944, 27943, 27942, 27941, 27940, 27939, 27938, 27937, 27936, 27935, 27934, 27933, 27932, 27931, 27930, 27929, 27928, 27927, 27926, 27925, 27924, 27923, 27922, 27921, 27920, 27919, 27918, 27917, 27916, 27915, 27914, 27913, 27912, 27911, 27910, 27909, 27908, 27907, 27906, 27905, 27904, 27903, 27902, 27901, 27900, 27899, 27898, 27897, 27896, 27895, 27894, 27893, 27892, 27891, 27890, 27889, 27888, 27887, 27886, 27885, 27884, 27883, 27882, 27881, 27880, 27879, 27878, 27877, 27876, 27875, 27874, 27873, 27872, 27871, 27870, 27869, 27868, 27867, 27866, 27865, 27864, 27863, 27862, 27861, 27860, 27859, 27858, 27857, 27856, 27855, 27854, 27853, 27852, 27851, 27850, 27849, 27848, 27847, 27846, 27845, 27844, 27843, 27842, 27841, 27840, 27839, 27838, 27837, 27836, 27835, 27834, 27833, 27832, 27831, 27830, 27829, 27828, 27827, 27826, 27825, 27824, 27823, 27822, 27821, 27820, 27819, 27818, 27817, 27816, 27815, 27814, 27813, 27812, 27811, 27810, 27809, 27808, 27807, 27806, 27805, 27804, 27803, 27802, 27801, 27800, 27799, 27798, 27797, 27796, 27795, 27794, 27793, 27792, 27791, 27790, 27789, 27788, 27787, 27786, 27785, 27784, 27783, 27782, 27781, 27780, 27779, 27778, 27777, 27776, 27775, 27774, 27773, 27772, 27771, 27770, 27769, 27768, 27767, 27766, 27765, 27764, 27763, 27762, 27761, 27760, 27759, 27758, 27757, 27756, 27755, 27754, 27753, 27752, 27751, 27750, 27749, 27748, 27747, 27746, 27745, 27744, 27743, 27742, 27741, 27740, 27739, 27738, 27737, 27736, 27735, 27734, 27733, 27732, 27731, 27730, 27729, 27728, 27727, 27726, 27725, 27724, 27723, 27722, 27721, 27720, 27719, 27718, 27717, 27716, 27715, 27714, 27713, 27712, 27711, 27710, 27709, 27708, 27707, 27706, 27705, 27704, 27703, 27702, 27701, 27700, 27699, 27698, 27697, 27696, 27695, 27694, 27693, 27692, 27691, 27690, 27689, 27688, 27687, 27686, 27685, 27684, 27683, 27682, 27681, 27680, 27679, 27678, 27677, 27676, 27675, 27674, 27673, 27672, 27671, 27670, 27669, 27668, 27667, 27666, 27665, 27664, 27663, 27662, 27661, 27660, 27659, 27658, 27657, 27656, 27655, 27654, 27653, 27652, 27651, 27650, 27649, 27648, 27647, 27646, 27645, 27644, 27643, 27642, 27641, 27640, 27639, 27638, 27637, 27636, 27635, 27634, 27633, 27632, 27631, 27630, 27629, 27628, 27627, 27626, 27625, 27624, 27623, 27622, 27621, 27620, 27619, 27618, 27617, 27616, 27615, 27614, 27613, 27612, 27611, 27610, 27609, 27608, 27607, 27606, 27605, 27604, 27603, 27602, 27601, 27600, 27599, 27598, 27597, 27596, 27595, 27594, 27593, 27592, 27591, 27590, 27589, 27588, 27587, 27586, 27585, 27584, 27583, 27582, 27581, 27580, 27579, 27578, 27577, 27576, 27575, 27574, 27573, 27572, 27571, 27570, 27569, 27568, 27567, 27566, 27565, 27564, 27563, 27562, 27561, 27560, 27559, 27558, 27557, 27556, 27555, 27554, 27553, 27552, 27551, 27550, 27549, 27548, 27547, 27546, 27545, 27544, 27543, 27542, 27541, 27540, 27539, 27538, 27537, 27536, 27535, 27534, 27533, 27532, 27531, 27530, 27529, 27528, 27527, 27526, 27525, 27524, 27523, 27522, 27521, 27520, 27519, 27518, 27517, 27516, 27515, 27514, 27513, 27512, 27511, 27510, 27509, 27508, 27507, 27506, 27505, 27504, 27503, 27502, 27501, 27500, 27499, 27498, 27497, 27496, 27495, 27494, 27493, 27492, 27491, 27490, 27489, 27488, 27487, 27486, 27485, 27484, 27483, 27482, 27481, 27480, 27479, 27478, 27477, 27476, 27475, 27474, 27473, 27472, 27471, 27470, 27469, 27468, 27467, 27466, 27465, 27464, 27463, 27462, 27461, 27460, 27459, 27458, 27457, 27456, 27455, 27454, 27453, 27452, 27451, 27450, 27449, 27448, 27447, 27446, 27445, 27444, 27443, 27442, 27441, 27440, 27439, 27438, 27437, 27436, 27435, 27434, 27433, 27432, 27431, 27430, 27429, 27428, 27427, 27426, 27425, 27424, 27423, 27422, 27421, 27420, 27419, 27418, 27417, 27416, 27415, 27414, 27413, 27412, 27411, 27410, 27409, 27408, 27407, 27406, 27405, 27404, 27403, 27402, 27401, 27400, 27399, 27398, 27397, 27396, 27395, 27394, 27393, 27392, 27391, 27390, 27389, 27388, 27387, 27386, 27385, 27384, 27383, 27382, 27381, 27380, 27379, 27378, 27377, 27376, 27375, 27374, 27373, 27372, 27371, 27370, 27369, 27368, 27367, 27366, 27365, 27364, 27363, 27362, 27361, 27360, 27359, 27358, 27357, 27356, 27355, 27354, 27353, 27352, 27351, 27350, 27349, 27348, 27347, 27346, 27345, 27344, 27343, 27342, 27341, 27340, 27339, 27338, 27337, 27336, 27335, 27334, 27333, 27332, 27331, 27330, 27329, 27328, 27327, 27326, 27325, 27324, 27323, 27322, 27321, 27320, 27319, 27318, 27317, 27316, 27315, 27314, 27313, 27312, 27311, 27310, 27309, 27308, 27307, 27306, 27305, 27304, 27303, 27302, 27301, 27300, 27299, 27298, 27297, 27296, 27295, 27294, 27293, 27292, 27291, 27290, 27289, 27288, 27287, 27286, 27285, 27284, 27283, 27282, 27281, 27280, 27279, 27278, 27277, 27276, 27275, 27274, 27273, 27272, 27271, 27270, 27269, 27268, 27267, 27266, 27265, 27264, 27263, 27262, 27261, 27260, 27259, 27258, 27257, 27256, 27255, 27254, 27253, 27252, 27251, 27250, 27249, 27248, 27247, 27246, 27245, 27244, 27243, 27242, 27241, 27240, 27239, 27238, 27237, 27236, 27235, 27234, 27233, 27232, 27231, 27230, 27229, 27228, 27227, 27226, 27225, 27224, 27223, 27222, 27221, 27220, 27219, 27218, 27217, 27216, 27215, 27214, 27213, 27212, 27211, 27210, 27209, 27208, 27207, 27206, 27205, 27204, 27203, 27202, 27201, 27200, 27199, 27198, 27197, 27196, 27195, 27194, 27193, 27192, 27191, 27190, 27189, 27188, 27187, 27186, 27185, 27184, 27183, 27182, 27181, 27180, 27179, 27178, 27177, 27176, 27175, 27174, 27173, 27172, 27171, 27170, 27169, 27168, 27167, 27166, 27165, 27164, 27163, 27162, 27161, 27160, 27159, 27158, 27157, 27156, 27155, 27154, 27153, 27152, 27151, 27150, 27149, 27148, 27147, 27146, 27145, 27144, 27143, 27142, 27141, 27140, 27139, 27138, 27137, 27136, 27135, 27134, 27133, 27132, 27131, 27130, 27129, 27128, 27127, 27126, 27125, 27124, 27123, 27122, 27121, 27120, 27119, 27118, 27117, 27116, 27115, 27114, 27113, 27112, 27111, 27110, 27109, 27108, 27107, 27106, 27105, 27104, 27103, 27102, 27101, 27100, 27099, 27098, 27097, 27096, 27095, 27094, 27093, 27092, 27091, 27090, 27089, 27088, 27087, 27086, 27085, 27084, 27083, 27082, 27081, 27080, 27079, 27078, 27077, 27076, 27075, 27074, 27073, 27072, 27071, 27070, 27069, 27068, 27067, 27066, 27065, 27064, 27063, 27062, 27061, 27060, 27059, 27058, 27057, 27056, 27055, 27054, 27053, 27052, 27051, 27050, 27049, 27048, 27047, 27046, 27045, 27044, 27043, 27042, 27041, 27040, 27039, 27038, 27037, 27036, 27035, 27034, 27033, 27032, 27031, 27030, 27029, 27028, 27027, 27026, 27025, 27024, 27023, 27022, 27021, 27020, 27019, 27018, 27017, 27016, 27015, 27014, 27013, 27012, 27011, 27010, 27009, 27008, 27007, 27006, 27005, 27004, 27003, 27002, 27001, 27000, 26999, 26998, 26997, 26996, 26995, 26994, 26993, 26992, 26991, 26990, 26989, 26988, 26987, 26986, 26985, 26984, 26983, 26982, 26981, 26980, 26979, 26978, 26977, 26976, 26975, 26974, 26973, 26972, 26971, 26970, 26969, 26968, 26967, 26966, 26965, 26964, 26963, 26962, 26961, 26960, 26959, 26958, 26957, 26956, 26955, 26954, 26953, 26952, 26951, 26950, 26949, 26948, 26947, 26946, 26945, 26944, 26943, 26942, 26941, 26940, 26939, 26938, 26937, 26936, 26935, 26934, 26933, 26932, 26931, 26930, 26929, 26928, 26927, 26926, 26925, 26924, 26923, 26922, 26921, 26920, 26919, 26918, 26917, 26916, 26915, 26914, 26913, 26912, 26911, 26910, 26909, 26908, 26907, 26906, 26905, 26904, 26903, 26902, 26901, 26900, 26899, 26898, 26897, 26896, 26895, 26894, 26893, 26892, 26891, 26890, 26889, 26888, 26887, 26886, 26885, 26884, 26883, 26882, 26881, 26880, 26879, 26878, 26877, 26876, 26875, 26874, 26873, 26872, 26871, 26870, 26869, 26868, 26867, 26866, 26865, 26864, 26863, 26862, 26861, 26860, 26859, 26858, 26857, 26856, 26855, 26854, 26853, 26852, 26851, 26850, 26849, 26848, 26847, 26846, 26845, 26844, 26843, 26842, 26841, 26840, 26839, 26838, 26837, 26836, 26835, 26834, 26833, 26832, 26831, 26830, 26829, 26828, 26827, 26826, 26825, 26824, 26823, 26822, 26821, 26820, 26819, 26818, 26817, 26816, 26815, 26814, 26813, 26812, 26811, 26810, 26809, 26808, 26807, 26806, 26805, 26804, 26803, 26802, 26801, 26800, 26799, 26798, 26797, 26796, 26795, 26794, 26793, 26792, 26791, 26790, 26789, 26788, 26787, 26786, 26785, 26784, 26783, 26782, 26781, 26780, 26779, 26778, 26777, 26776, 26775, 26774, 26773, 26772, 26771, 26770, 26769, 26768, 26767, 26766, 26765, 26764, 26763, 26762, 26761, 26760, 26759, 26758, 26757, 26756, 26755, 26754, 26753, 26752, 26751, 26750, 26749, 26748, 26747, 26746, 26745, 26744, 26743, 26742, 26741, 26740, 26739, 26738, 26737, 26736, 26735, 26734, 26733, 26732, 26731, 26730, 26729, 26728, 26727, 26726, 26725, 26724, 26723, 26722, 26721, 26720, 26719, 26718, 26717, 26716, 26715, 26714, 26713, 26712, 26711, 26710, 26709, 26708, 26707, 26706, 26705, 26704, 26703, 26702, 26701, 26700, 26699, 26698, 26697, 26696, 26695, 26694, 26693, 26692, 26691, 26690, 26689, 26688, 26687, 26686, 26685, 26684, 26683, 26682, 26681, 26680, 26679, 26678, 26677, 26676, 26675, 26674, 26673, 26672, 26671, 26670, 26669, 26668, 26667, 26666, 26665, 26664, 26663, 26662, 26661, 26660, 26659, 26658, 26657, 26656, 26655, 26654, 26653, 26652, 26651, 26650, 26649, 26648, 26647, 26646, 26645, 26644, 26643, 26642, 26641, 26640, 26639, 26638, 26637, 26636, 26635, 26634, 26633, 26632, 26631, 26630, 26629, 26628, 26627, 26626, 26625, 26624, 26623, 26622, 26621, 26620, 26619, 26618, 26617, 26616, 26615, 26614, 26613, 26612, 26611, 26610, 26609, 26608, 26607, 26606, 26605, 26604, 26603, 26602, 26601, 26600, 26599, 26598, 26597, 26596, 26595, 26594, 26593, 26592, 26591, 26590, 26589, 26588, 26587, 26586, 26585, 26584, 26583, 26582, 26581, 26580, 26579, 26578, 26577, 26576, 26575, 26574, 26573, 26572, 26571, 26570, 26569, 26568, 26567, 26566, 26565, 26564, 26563, 26562, 26561, 26560, 26559, 26558, 26557, 26556, 26555, 26554, 26553, 26552, 26551, 26550, 26549, 26548, 26547, 26546, 26545, 26544, 26543, 26542, 26541, 26540, 26539, 26538, 26537, 26536, 26535, 26534, 26533, 26532, 26531, 26530, 26529, 26528, 26527, 26526, 26525, 26524, 26523, 26522, 26521, 26520, 26519, 26518, 26517, 26516, 26515, 26514, 26513, 26512, 26511, 26510, 26509, 26508, 26507, 26506, 26505, 26504, 26503, 26502, 26501, 26500, 26499, 26498, 26497, 26496, 26495, 26494, 26493, 26492, 26491, 26490, 26489, 26488, 26487, 26486, 26485, 26484, 26483, 26482, 26481, 26480, 26479, 26478, 26477, 26476, 26475, 26474, 26473, 26472, 26471, 26470, 26469, 26468, 26467, 26466, 26465, 26464, 26463, 26462, 26461, 26460, 26459, 26458, 26457, 26456, 26455, 26454, 26453, 26452, 26451, 26450, 26449, 26448, 26447, 26446, 26445, 26444, 26443, 26442, 26441, 26440, 26439, 26438, 26437, 26436, 26435, 26434, 26433, 26432, 26431, 26430, 26429, 26428, 26427, 26426, 26425, 26424, 26423, 26422, 26421, 26420, 26419, 26418, 26417, 26416, 26415, 26414, 26413, 26412, 26411, 26410, 26409, 26408, 26407, 26406, 26405, 26404, 26403, 26402, 26401, 26400, 26399, 26398, 26397, 26396, 26395, 26394, 26393, 26392, 26391, 26390, 26389, 26388, 26387, 26386, 26385, 26384, 26383, 26382, 26381, 26380, 26379, 26378, 26377, 26376, 26375, 26374, 26373, 26372, 26371, 26370, 26369, 26368, 26367, 26366, 26365, 26364, 26363, 26362, 26361, 26360, 26359, 26358, 26357, 26356, 26355, 26354, 26353, 26352, 26351, 26350, 26349, 26348, 26347, 26346, 26345, 26344, 26343, 26342, 26341, 26340, 26339, 26338, 26337, 26336, 26335, 26334, 26333, 26332, 26331, 26330, 26329, 26328, 26327, 26326, 26325, 26324, 26323, 26322, 26321, 26320, 26319, 26318, 26317, 26316, 26315, 26314, 26313, 26312, 26311, 26310, 26309, 26308, 26307, 26306, 26305, 26304, 26303, 26302, 26301, 26300, 26299, 26298, 26297, 26296, 26295, 26294, 26293, 26292, 26291, 26290, 26289, 26288, 26287, 26286, 26285, 26284, 26283, 26282, 26281, 26280, 26279, 26278, 26277, 26276, 26275, 26274, 26273, 26272, 26271, 26270, 26269, 26268, 26267, 26266, 26265, 26264, 26263, 26262, 26261, 26260, 26259, 26258, 26257, 26256, 26255, 26254, 26253, 26252, 26251, 26250, 26249, 26248, 26247, 26246, 26245, 26244, 26243, 26242, 26241, 26240, 26239, 26238, 26237, 26236, 26235, 26234, 26233, 26232, 26231, 26230, 26229, 26228, 26227, 26226, 26225, 26224, 26223, 26222, 26221, 26220, 26219, 26218, 26217, 26216, 26215, 26214, 26213, 26212, 26211, 26210, 26209, 26208, 26207, 26206, 26205, 26204, 26203, 26202, 26201, 26200, 26199, 26198, 26197, 26196, 26195, 26194, 26193, 26192, 26191, 26190, 26189, 26188, 26187, 26186, 26185, 26184, 26183, 26182, 26181, 26180, 26179, 26178, 26177, 26176, 26175, 26174, 26173, 26172, 26171, 26170, 26169, 26168, 26167, 26166, 26165, 26164, 26163, 26162, 26161, 26160, 26159, 26158, 26157, 26156, 26155, 26154, 26153, 26152, 26151, 26150, 26149, 26148, 26147, 26146, 26145, 26144, 26143, 26142, 26141, 26140, 26139, 26138, 26137, 26136, 26135, 26134, 26133, 26132, 26131, 26130, 26129, 26128, 26127, 26126, 26125, 26124, 26123, 26122, 26121, 26120, 26119, 26118, 26117, 26116, 26115, 26114, 26113, 26112, 26111, 26110, 26109, 26108, 26107, 26106, 26105, 26104, 26103, 26102, 26101, 26100, 26099, 26098, 26097, 26096, 26095, 26094, 26093, 26092, 26091, 26090, 26089, 26088, 26087, 26086, 26085, 26084, 26083, 26082, 26081, 26080, 26079, 26078, 26077, 26076, 26075, 26074, 26073, 26072, 26071, 26070, 26069, 26068, 26067, 26066, 26065, 26064, 26063, 26062, 26061, 26060, 26059, 26058, 26057, 26056, 26055, 26054, 26053, 26052, 26051, 26050, 26049, 26048, 26047, 26046, 26045, 26044, 26043, 26042, 26041, 26040, 26039, 26038, 26037, 26036, 26035, 26034, 26033, 26032, 26031, 26030, 26029, 26028, 26027, 26026, 26025, 26024, 26023, 26022, 26021, 26020, 26019, 26018, 26017, 26016, 26015, 26014, 26013, 26012, 26011, 26010, 26009, 26008, 26007, 26006, 26005, 26004, 26003, 26002, 26001, 26000, 25999, 25998, 25997, 25996, 25995, 25994, 25993, 25992, 25991, 25990, 25989, 25988, 25987, 25986, 25985, 25984, 25983, 25982, 25981, 25980, 25979, 25978, 25977, 25976, 25975, 25974, 25973, 25972, 25971, 25970, 25969, 25968, 25967, 25966, 25965, 25964, 25963, 25962, 25961, 25960, 25959, 25958, 25957, 25956, 25955, 25954, 25953, 25952, 25951, 25950, 25949, 25948, 25947, 25946, 25945, 25944, 25943, 25942, 25941, 25940, 25939, 25938, 25937, 25936, 25935, 25934, 25933, 25932, 25931, 25930, 25929, 25928, 25927, 25926, 25925, 25924, 25923, 25922, 25921, 25920, 25919, 25918, 25917, 25916, 25915, 25914, 25913, 25912, 25911, 25910, 25909, 25908, 25907, 25906, 25905, 25904, 25903, 25902, 25901, 25900, 25899, 25898, 25897, 25896, 25895, 25894, 25893, 25892, 25891, 25890, 25889, 25888, 25887, 25886, 25885, 25884, 25883, 25882, 25881, 25880, 25879, 25878, 25877, 25876, 25875, 25874, 25873, 25872, 25871, 25870, 25869, 25868, 25867, 25866, 25865, 25864, 25863, 25862, 25861, 25860, 25859, 25858, 25857, 25856, 25855, 25854, 25853, 25852, 25851, 25850, 25849, 25848, 25847, 25846, 25845, 25844, 25843, 25842, 25841, 25840, 25839, 25838, 25837, 25836, 25835, 25834, 25833, 25832, 25831, 25830, 25829, 25828, 25827, 25826, 25825, 25824, 25823, 25822, 25821, 25820, 25819, 25818, 25817, 25816, 25815, 25814, 25813, 25812, 25811, 25810, 25809, 25808, 25807, 25806, 25805, 25804, 25803, 25802, 25801, 25800, 25799, 25798, 25797, 25796, 25795, 25794, 25793, 25792, 25791, 25790, 25789, 25788, 25787, 25786, 25785, 25784, 25783, 25782, 25781, 25780, 25779, 25778, 25777, 25776, 25775, 25774, 25773, 25772, 25771, 25770, 25769, 25768, 25767, 25766, 25765, 25764, 25763, 25762, 25761, 25760, 25759, 25758, 25757, 25756, 25755, 25754, 25753, 25752, 25751, 25750, 25749, 25748, 25747, 25746, 25745, 25744, 25743, 25742, 25741, 25740, 25739, 25738, 25737, 25736, 25735, 25734, 25733, 25732, 25731, 25730, 25729, 25728, 25727, 25726, 25725, 25724, 25723, 25722, 25721, 25720, 25719, 25718, 25717, 25716, 25715, 25714, 25713, 25712, 25711, 25710, 25709, 25708, 25707, 25706, 25705, 25704, 25703, 25702, 25701, 25700, 25699, 25698, 25697, 25696, 25695, 25694, 25693, 25692, 25691, 25690, 25689, 25688, 25687, 25686, 25685, 25684, 25683, 25682, 25681, 25680, 25679, 25678, 25677, 25676, 25675, 25674, 25673, 25672, 25671, 25670, 25669, 25668, 25667, 25666, 25665, 25664, 25663, 25662, 25661, 25660, 25659, 25658, 25657, 25656, 25655, 25654, 25653, 25652, 25651, 25650, 25649, 25648, 25647, 25646, 25645, 25644, 25643, 25642, 25641, 25640, 25639, 25638, 25637, 25636, 25635, 25634, 25633, 25632, 25631, 25630, 25629, 25628, 25627, 25626, 25625, 25624, 25623, 25622, 25621, 25620, 25619, 25618, 25617, 25616, 25615, 25614, 25613, 25612, 25611, 25610, 25609, 25608, 25607, 25606, 25605, 25604, 25603, 25602, 25601, 25600, 25599, 25598, 25597, 25596, 25595, 25594, 25593, 25592, 25591, 25590, 25589, 25588, 25587, 25586, 25585, 25584, 25583, 25582, 25581, 25580, 25579, 25578, 25577, 25576, 25575, 25574, 25573, 25572, 25571, 25570, 25569, 25568, 25567, 25566, 25565, 25564, 25563, 25562, 25561, 25560, 25559, 25558, 25557, 25556, 25555, 25554, 25553, 25552, 25551, 25550, 25549, 25548, 25547, 25546, 25545, 25544, 25543, 25542, 25541, 25540, 25539, 25538, 25537, 25536, 25535, 25534, 25533, 25532, 25531, 25530, 25529, 25528, 25527, 25526, 25525, 25524, 25523, 25522, 25521, 25520, 25519, 25518, 25517, 25516, 25515, 25514, 25513, 25512, 25511, 25510, 25509, 25508, 25507, 25506, 25505, 25504, 25503, 25502, 25501, 25500, 25499, 25498, 25497, 25496, 25495, 25494, 25493, 25492, 25491, 25490, 25489, 25488, 25487, 25486, 25485, 25484, 25483, 25482, 25481, 25480, 25479, 25478, 25477, 25476, 25475, 25474, 25473, 25472, 25471, 25470, 25469, 25468, 25467, 25466, 25465, 25464, 25463, 25462, 25461, 25460, 25459, 25458, 25457, 25456, 25455, 25454, 25453, 25452, 25451, 25450, 25449, 25448, 25447, 25446, 25445, 25444, 25443, 25442, 25441, 25440, 25439, 25438, 25437, 25436, 25435, 25434, 25433, 25432, 25431, 25430, 25429, 25428, 25427, 25426, 25425, 25424, 25423, 25422, 25421, 25420, 25419, 25418, 25417, 25416, 25415, 25414, 25413, 25412, 25411, 25410, 25409, 25408, 25407, 25406, 25405, 25404, 25403, 25402, 25401, 25400, 25399, 25398, 25397, 25396, 25395, 25394, 25393, 25392, 25391, 25390, 25389, 25388, 25387, 25386, 25385, 25384, 25383, 25382, 25381, 25380, 25379, 25378, 25377, 25376, 25375, 25374, 25373, 25372, 25371, 25370, 25369, 25368, 25367, 25366, 25365, 25364, 25363, 25362, 25361, 25360, 25359, 25358, 25357, 25356, 25355, 25354, 25353, 25352, 25351, 25350, 25349, 25348, 25347, 25346, 25345, 25344, 25343, 25342, 25341, 25340, 25339, 25338, 25337, 25336, 25335, 25334, 25333, 25332, 25331, 25330, 25329, 25328, 25327, 25326, 25325, 25324, 25323, 25322, 25321, 25320, 25319, 25318, 25317, 25316, 25315, 25314, 25313, 25312, 25311, 25310, 25309, 25308, 25307, 25306, 25305, 25304, 25303, 25302, 25301, 25300, 25299, 25298, 25297, 25296, 25295, 25294, 25293, 25292, 25291, 25290, 25289, 25288, 25287, 25286, 25285, 25284, 25283, 25282, 25281, 25280, 25279, 25278, 25277, 25276, 25275, 25274, 25273, 25272, 25271, 25270, 25269, 25268, 25267, 25266, 25265, 25264, 25263, 25262, 25261, 25260, 25259, 25258, 25257, 25256, 25255, 25254, 25253, 25252, 25251, 25250, 25249, 25248, 25247, 25246, 25245, 25244, 25243, 25242, 25241, 25240, 25239, 25238, 25237, 25236, 25235, 25234, 25233, 25232, 25231, 25230, 25229, 25228, 25227, 25226, 25225, 25224, 25223, 25222, 25221, 25220, 25219, 25218, 25217, 25216, 25215, 25214, 25213, 25212, 25211, 25210, 25209, 25208, 25207, 25206, 25205, 25204, 25203, 25202, 25201, 25200, 25199, 25198, 25197, 25196, 25195, 25194, 25193, 25192, 25191, 25190, 25189, 25188, 25187, 25186, 25185, 25184, 25183, 25182, 25181, 25180, 25179, 25178, 25177, 25176, 25175, 25174, 25173, 25172, 25171, 25170, 25169, 25168, 25167, 25166, 25165, 25164, 25163, 25162, 25161, 25160, 25159, 25158, 25157, 25156, 25155, 25154, 25153, 25152, 25151, 25150, 25149, 25148, 25147, 25146, 25145, 25144, 25143, 25142, 25141, 25140, 25139, 25138, 25137, 25136, 25135, 25134, 25133, 25132, 25131, 25130, 25129, 25128, 25127, 25126, 25125, 25124, 25123, 25122, 25121, 25120, 25119, 25118, 25117, 25116, 25115, 25114, 25113, 25112, 25111, 25110, 25109, 25108, 25107, 25106, 25105, 25104, 25103, 25102, 25101, 25100, 25099, 25098, 25097, 25096, 25095, 25094, 25093, 25092, 25091, 25090, 25089, 25088, 25087, 25086, 25085, 25084, 25083, 25082, 25081, 25080, 25079, 25078, 25077, 25076, 25075, 25074, 25073, 25072, 25071, 25070, 25069, 25068, 25067, 25066, 25065, 25064, 25063, 25062, 25061, 25060, 25059, 25058, 25057, 25056, 25055, 25054, 25053, 25052, 25051, 25050, 25049, 25048, 25047, 25046, 25045, 25044, 25043, 25042, 25041, 25040, 25039, 25038, 25037, 25036, 25035, 25034, 25033, 25032, 25031, 25030, 25029, 25028, 25027, 25026, 25025, 25024, 25023, 25022, 25021, 25020, 25019, 25018, 25017, 25016, 25015, 25014, 25013, 25012, 25011, 25010, 25009, 25008, 25007, 25006, 25005, 25004, 25003, 25002, 25001, 25000, 24999, 24998, 24997, 24996, 24995, 24994, 24993, 24992, 24991, 24990, 24989, 24988, 24987, 24986, 24985, 24984, 24983, 24982, 24981, 24980, 24979, 24978, 24977, 24976, 24975, 24974, 24973, 24972, 24971, 24970, 24969, 24968, 24967, 24966, 24965, 24964, 24963, 24962, 24961, 24960, 24959, 24958, 24957, 24956, 24955, 24954, 24953, 24952, 24951, 24950, 24949, 24948, 24947, 24946, 24945, 24944, 24943, 24942, 24941, 24940, 24939, 24938, 24937, 24936, 24935, 24934, 24933, 24932, 24931, 24930, 24929, 24928, 24927, 24926, 24925, 24924, 24923, 24922, 24921, 24920, 24919, 24918, 24917, 24916, 24915, 24914, 24913, 24912, 24911, 24910, 24909, 24908, 24907, 24906, 24905, 24904, 24903, 24902, 24901, 24900, 24899, 24898, 24897, 24896, 24895, 24894, 24893, 24892, 24891, 24890, 24889, 24888, 24887, 24886, 24885, 24884, 24883, 24882, 24881, 24880, 24879, 24878, 24877, 24876, 24875, 24874, 24873, 24872, 24871, 24870, 24869, 24868, 24867, 24866, 24865, 24864, 24863, 24862, 24861, 24860, 24859, 24858, 24857, 24856, 24855, 24854, 24853, 24852, 24851, 24850, 24849, 24848, 24847, 24846, 24845, 24844, 24843, 24842, 24841, 24840, 24839, 24838, 24837, 24836, 24835, 24834, 24833, 24832, 24831, 24830, 24829, 24828, 24827, 24826, 24825, 24824, 24823, 24822, 24821, 24820, 24819, 24818, 24817, 24816, 24815, 24814, 24813, 24812, 24811, 24810, 24809, 24808, 24807, 24806, 24805, 24804, 24803, 24802, 24801, 24800, 24799, 24798, 24797, 24796, 24795, 24794, 24793, 24792, 24791, 24790, 24789, 24788, 24787, 24786, 24785, 24784, 24783, 24782, 24781, 24780, 24779, 24778, 24777, 24776, 24775, 24774, 24773, 24772, 24771, 24770, 24769, 24768, 24767, 24766, 24765, 24764, 24763, 24762, 24761, 24760, 24759, 24758, 24757, 24756, 24755, 24754, 24753, 24752, 24751, 24750, 24749, 24748, 24747, 24746, 24745, 24744, 24743, 24742, 24741, 24740, 24739, 24738, 24737, 24736, 24735, 24734, 24733, 24732, 24731, 24730, 24729, 24728, 24727, 24726, 24725, 24724, 24723, 24722, 24721, 24720, 24719, 24718, 24717, 24716, 24715, 24714, 24713, 24712, 24711, 24710, 24709, 24708, 24707, 24706, 24705, 24704, 24703, 24702, 24701, 24700, 24699, 24698, 24697, 24696, 24695, 24694, 24693, 24692, 24691, 24690, 24689, 24688, 24687, 24686, 24685, 24684, 24683, 24682, 24681, 24680, 24679, 24678, 24677, 24676, 24675, 24674, 24673, 24672, 24671, 24670, 24669, 24668, 24667, 24666, 24665, 24664, 24663, 24662, 24661, 24660, 24659, 24658, 24657, 24656, 24655, 24654, 24653, 24652, 24651, 24650, 24649, 24648, 24647, 24646, 24645, 24644, 24643, 24642, 24641, 24640, 24639, 24638, 24637, 24636, 24635, 24634, 24633, 24632, 24631, 24630, 24629, 24628, 24627, 24626, 24625, 24624, 24623, 24622, 24621, 24620, 24619, 24618, 24617, 24616, 24615, 24614, 24613, 24612, 24611, 24610, 24609, 24608, 24607, 24606, 24605, 24604, 24603, 24602, 24601, 24600, 24599, 24598, 24597, 24596, 24595, 24594, 24593, 24592, 24591, 24590, 24589, 24588, 24587, 24586, 24585, 24584, 24583, 24582, 24581, 24580, 24579, 24578, 24577, 24576, 24575, 24574, 24573, 24572, 24571, 24570, 24569, 24568, 24567, 24566, 24565, 24564, 24563, 24562, 24561, 24560, 24559, 24558, 24557, 24556, 24555, 24554, 24553, 24552, 24551, 24550, 24549, 24548, 24547, 24546, 24545, 24544, 24543, 24542, 24541, 24540, 24539, 24538, 24537, 24536, 24535, 24534, 24533, 24532, 24531, 24530, 24529, 24528, 24527, 24526, 24525, 24524, 24523, 24522, 24521, 24520, 24519, 24518, 24517, 24516, 24515, 24514, 24513, 24512, 24511, 24510, 24509, 24508, 24507, 24506, 24505, 24504, 24503, 24502, 24501, 24500, 24499, 24498, 24497, 24496, 24495, 24494, 24493, 24492, 24491, 24490, 24489, 24488, 24487, 24486, 24485, 24484, 24483, 24482, 24481, 24480, 24479, 24478, 24477, 24476, 24475, 24474, 24473, 24472, 24471, 24470, 24469, 24468, 24467, 24466, 24465, 24464, 24463, 24462, 24461, 24460, 24459, 24458, 24457, 24456, 24455, 24454, 24453, 24452, 24451, 24450, 24449, 24448, 24447, 24446, 24445, 24444, 24443, 24442, 24441, 24440, 24439, 24438, 24437, 24436, 24435, 24434, 24433, 24432, 24431, 24430, 24429, 24428, 24427, 24426, 24425, 24424, 24423, 24422, 24421, 24420, 24419, 24418, 24417, 24416, 24415, 24414, 24413, 24412, 24411, 24410, 24409, 24408, 24407, 24406, 24405, 24404, 24403, 24402, 24401, 24400, 24399, 24398, 24397, 24396, 24395, 24394, 24393, 24392, 24391, 24390, 24389, 24388, 24387, 24386, 24385, 24384, 24383, 24382, 24381, 24380, 24379, 24378, 24377, 24376, 24375, 24374, 24373, 24372, 24371, 24370, 24369, 24368, 24367, 24366, 24365, 24364, 24363, 24362, 24361, 24360, 24359, 24358, 24357, 24356, 24355, 24354, 24353, 24352, 24351, 24350, 24349, 24348, 24347, 24346, 24345, 24344, 24343, 24342, 24341, 24340, 24339, 24338, 24337, 24336, 24335, 24334, 24333, 24332, 24331, 24330, 24329, 24328, 24327, 24326, 24325, 24324, 24323, 24322, 24321, 24320, 24319, 24318, 24317, 24316, 24315, 24314, 24313, 24312, 24311, 24310, 24309, 24308, 24307, 24306, 24305, 24304, 24303, 24302, 24301, 24300, 24299, 24298, 24297, 24296, 24295, 24294, 24293, 24292, 24291, 24290, 24289, 24288, 24287, 24286, 24285, 24284, 24283, 24282, 24281, 24280, 24279, 24278, 24277, 24276, 24275, 24274, 24273, 24272, 24271, 24270, 24269, 24268, 24267, 24266, 24265, 24264, 24263, 24262, 24261, 24260, 24259, 24258, 24257, 24256, 24255, 24254, 24253, 24252, 24251, 24250, 24249, 24248, 24247, 24246, 24245, 24244, 24243, 24242, 24241, 24240, 24239, 24238, 24237, 24236, 24235, 24234, 24233, 24232, 24231, 24230, 24229, 24228, 24227, 24226, 24225, 24224, 24223, 24222, 24221, 24220, 24219, 24218, 24217, 24216, 24215, 24214, 24213, 24212, 24211, 24210, 24209, 24208, 24207, 24206, 24205, 24204, 24203, 24202, 24201, 24200, 24199, 24198, 24197, 24196, 24195, 24194, 24193, 24192, 24191, 24190, 24189, 24188, 24187, 24186, 24185, 24184, 24183, 24182, 24181, 24180, 24179, 24178, 24177, 24176, 24175, 24174, 24173, 24172, 24171, 24170, 24169, 24168, 24167, 24166, 24165, 24164, 24163, 24162, 24161, 24160, 24159, 24158, 24157, 24156, 24155, 24154, 24153, 24152, 24151, 24150, 24149, 24148, 24147, 24146, 24145, 24144, 24143, 24142, 24141, 24140, 24139, 24138, 24137, 24136, 24135, 24134, 24133, 24132, 24131, 24130, 24129, 24128, 24127, 24126, 24125, 24124, 24123, 24122, 24121, 24120, 24119, 24118, 24117, 24116, 24115, 24114, 24113, 24112, 24111, 24110, 24109, 24108, 24107, 24106, 24105, 24104, 24103, 24102, 24101, 24100, 24099, 24098, 24097, 24096, 24095, 24094, 24093, 24092, 24091, 24090, 24089, 24088, 24087, 24086, 24085, 24084, 24083, 24082, 24081, 24080, 24079, 24078, 24077, 24076, 24075, 24074, 24073, 24072, 24071, 24070, 24069, 24068, 24067, 24066, 24065, 24064, 24063, 24062, 24061, 24060, 24059, 24058, 24057, 24056, 24055, 24054, 24053, 24052, 24051, 24050, 24049, 24048, 24047, 24046, 24045, 24044, 24043, 24042, 24041, 24040, 24039, 24038, 24037, 24036, 24035, 24034, 24033, 24032, 24031, 24030, 24029, 24028, 24027, 24026, 24025, 24024, 24023, 24022, 24021, 24020, 24019, 24018, 24017, 24016, 24015, 24014, 24013, 24012, 24011, 24010, 24009, 24008, 24007, 24006, 24005, 24004, 24003, 24002, 24001, 24000, 23999, 23998, 23997, 23996, 23995, 23994, 23993, 23992, 23991, 23990, 23989, 23988, 23987, 23986, 23985, 23984, 23983, 23982, 23981, 23980, 23979, 23978, 23977, 23976, 23975, 23974, 23973, 23972, 23971, 23970, 23969, 23968, 23967, 23966, 23965, 23964, 23963, 23962, 23961, 23960, 23959, 23958, 23957, 23956, 23955, 23954, 23953, 23952, 23951, 23950, 23949, 23948, 23947, 23946, 23945, 23944, 23943, 23942, 23941, 23940, 23939, 23938, 23937, 23936, 23935, 23934, 23933, 23932, 23931, 23930, 23929, 23928, 23927, 23926, 23925, 23924, 23923, 23922, 23921, 23920, 23919, 23918, 23917, 23916, 23915, 23914, 23913, 23912, 23911, 23910, 23909, 23908, 23907, 23906, 23905, 23904, 23903, 23902, 23901, 23900, 23899, 23898, 23897, 23896, 23895, 23894, 23893, 23892, 23891, 23890, 23889, 23888, 23887, 23886, 23885, 23884, 23883, 23882, 23881, 23880, 23879, 23878, 23877, 23876, 23875, 23874, 23873, 23872, 23871, 23870, 23869, 23868, 23867, 23866, 23865, 23864, 23863, 23862, 23861, 23860, 23859, 23858, 23857, 23856, 23855, 23854, 23853, 23852, 23851, 23850, 23849, 23848, 23847, 23846, 23845, 23844, 23843, 23842, 23841, 23840, 23839, 23838, 23837, 23836, 23835, 23834, 23833, 23832, 23831, 23830, 23829, 23828, 23827, 23826, 23825, 23824, 23823, 23822, 23821, 23820, 23819, 23818, 23817, 23816, 23815, 23814, 23813, 23812, 23811, 23810, 23809, 23808, 23807, 23806, 23805, 23804, 23803, 23802, 23801, 23800, 23799, 23798, 23797, 23796, 23795, 23794, 23793, 23792, 23791, 23790, 23789, 23788, 23787, 23786, 23785, 23784, 23783, 23782, 23781, 23780, 23779, 23778, 23777, 23776, 23775, 23774, 23773, 23772, 23771, 23770, 23769, 23768, 23767, 23766, 23765, 23764, 23763, 23762, 23761, 23760, 23759, 23758, 23757, 23756, 23755, 23754, 23753, 23752, 23751, 23750, 23749, 23748, 23747, 23746, 23745, 23744, 23743, 23742, 23741, 23740, 23739, 23738, 23737, 23736, 23735, 23734, 23733, 23732, 23731, 23730, 23729, 23728, 23727, 23726, 23725, 23724, 23723, 23722, 23721, 23720, 23719, 23718, 23717, 23716, 23715, 23714, 23713, 23712, 23711, 23710, 23709, 23708, 23707, 23706, 23705, 23704, 23703, 23702, 23701, 23700, 23699, 23698, 23697, 23696, 23695, 23694, 23693, 23692, 23691, 23690, 23689, 23688, 23687, 23686, 23685, 23684, 23683, 23682, 23681, 23680, 23679, 23678, 23677, 23676, 23675, 23674, 23673, 23672, 23671, 23670, 23669, 23668, 23667, 23666, 23665, 23664, 23663, 23662, 23661, 23660, 23659, 23658, 23657, 23656, 23655, 23654, 23653, 23652, 23651, 23650, 23649, 23648, 23647, 23646, 23645, 23644, 23643, 23642, 23641, 23640, 23639, 23638, 23637, 23636, 23635, 23634, 23633, 23632, 23631, 23630, 23629, 23628, 23627, 23626, 23625, 23624, 23623, 23622, 23621, 23620, 23619, 23618, 23617, 23616, 23615, 23614, 23613, 23612, 23611, 23610, 23609, 23608, 23607, 23606, 23605, 23604, 23603, 23602, 23601, 23600, 23599, 23598, 23597, 23596, 23595, 23594, 23593, 23592, 23591, 23590, 23589, 23588, 23587, 23586, 23585, 23584, 23583, 23582, 23581, 23580, 23579, 23578, 23577, 23576, 23575, 23574, 23573, 23572, 23571, 23570, 23569, 23568, 23567, 23566, 23565, 23564, 23563, 23562, 23561, 23560, 23559, 23558, 23557, 23556, 23555, 23554, 23553, 23552, 23551, 23550, 23549, 23548, 23547, 23546, 23545, 23544, 23543, 23542, 23541, 23540, 23539, 23538, 23537, 23536, 23535, 23534, 23533, 23532, 23531, 23530, 23529, 23528, 23527, 23526, 23525, 23524, 23523, 23522, 23521, 23520, 23519, 23518, 23517, 23516, 23515, 23514, 23513, 23512, 23511, 23510, 23509, 23508, 23507, 23506, 23505, 23504, 23503, 23502, 23501, 23500, 23499, 23498, 23497, 23496, 23495, 23494, 23493, 23492, 23491, 23490, 23489, 23488, 23487, 23486, 23485, 23484, 23483, 23482, 23481, 23480, 23479, 23478, 23477, 23476, 23475, 23474, 23473, 23472, 23471, 23470, 23469, 23468, 23467, 23466, 23465, 23464, 23463, 23462, 23461, 23460, 23459, 23458, 23457, 23456, 23455, 23454, 23453, 23452, 23451, 23450, 23449, 23448, 23447, 23446, 23445, 23444, 23443, 23442, 23441, 23440, 23439, 23438, 23437, 23436, 23435, 23434, 23433, 23432, 23431, 23430, 23429, 23428, 23427, 23426, 23425, 23424, 23423, 23422, 23421, 23420, 23419, 23418, 23417, 23416, 23415, 23414, 23413, 23412, 23411, 23410, 23409, 23408, 23407, 23406, 23405, 23404, 23403, 23402, 23401, 23400, 23399, 23398, 23397, 23396, 23395, 23394, 23393, 23392, 23391, 23390, 23389, 23388, 23387, 23386, 23385, 23384, 23383, 23382, 23381, 23380, 23379, 23378, 23377, 23376, 23375, 23374, 23373, 23372, 23371, 23370, 23369, 23368, 23367, 23366, 23365, 23364, 23363, 23362, 23361, 23360, 23359, 23358, 23357, 23356, 23355, 23354, 23353, 23352, 23351, 23350, 23349, 23348, 23347, 23346, 23345, 23344, 23343, 23342, 23341, 23340, 23339, 23338, 23337, 23336, 23335, 23334, 23333, 23332, 23331, 23330, 23329, 23328, 23327, 23326, 23325, 23324, 23323, 23322, 23321, 23320, 23319, 23318, 23317, 23316, 23315, 23314, 23313, 23312, 23311, 23310, 23309, 23308, 23307, 23306, 23305, 23304, 23303, 23302, 23301, 23300, 23299, 23298, 23297, 23296, 23295, 23294, 23293, 23292, 23291, 23290, 23289, 23288, 23287, 23286, 23285, 23284, 23283, 23282, 23281, 23280, 23279, 23278, 23277, 23276, 23275, 23274, 23273, 23272, 23271, 23270, 23269, 23268, 23267, 23266, 23265, 23264, 23263, 23262, 23261, 23260, 23259, 23258, 23257, 23256, 23255, 23254, 23253, 23252, 23251, 23250, 23249, 23248, 23247, 23246, 23245, 23244, 23243, 23242, 23241, 23240, 23239, 23238, 23237, 23236, 23235, 23234, 23233, 23232, 23231, 23230, 23229, 23228, 23227, 23226, 23225, 23224, 23223, 23222, 23221, 23220, 23219, 23218, 23217, 23216, 23215, 23214, 23213, 23212, 23211, 23210, 23209, 23208, 23207, 23206, 23205, 23204, 23203, 23202, 23201, 23200, 23199, 23198, 23197, 23196, 23195, 23194, 23193, 23192, 23191, 23190, 23189, 23188, 23187, 23186, 23185, 23184, 23183, 23182, 23181, 23180, 23179, 23178, 23177, 23176, 23175, 23174, 23173, 23172, 23171, 23170, 23169, 23168, 23167, 23166, 23165, 23164, 23163, 23162, 23161, 23160, 23159, 23158, 23157, 23156, 23155, 23154, 23153, 23152, 23151, 23150, 23149, 23148, 23147, 23146, 23145, 23144, 23143, 23142, 23141, 23140, 23139, 23138, 23137, 23136, 23135, 23134, 23133, 23132, 23131, 23130, 23129, 23128, 23127, 23126, 23125, 23124, 23123, 23122, 23121, 23120, 23119, 23118, 23117, 23116, 23115, 23114, 23113, 23112, 23111, 23110, 23109, 23108, 23107, 23106, 23105, 23104, 23103, 23102, 23101, 23100, 23099, 23098, 23097, 23096, 23095, 23094, 23093, 23092, 23091, 23090, 23089, 23088, 23087, 23086, 23085, 23084, 23083, 23082, 23081, 23080, 23079, 23078, 23077, 23076, 23075, 23074, 23073, 23072, 23071, 23070, 23069, 23068, 23067, 23066, 23065, 23064, 23063, 23062, 23061, 23060, 23059, 23058, 23057, 23056, 23055, 23054, 23053, 23052, 23051, 23050, 23049, 23048, 23047, 23046, 23045, 23044, 23043, 23042, 23041, 23040, 23039, 23038, 23037, 23036, 23035, 23034, 23033, 23032, 23031, 23030, 23029, 23028, 23027, 23026, 23025, 23024, 23023, 23022, 23021, 23020, 23019, 23018, 23017, 23016, 23015, 23014, 23013, 23012, 23011, 23010, 23009, 23008, 23007, 23006, 23005, 23004, 23003, 23002, 23001, 23000, 22999, 22998, 22997, 22996, 22995, 22994, 22993, 22992, 22991, 22990, 22989, 22988, 22987, 22986, 22985, 22984, 22983, 22982, 22981, 22980, 22979, 22978, 22977, 22976, 22975, 22974, 22973, 22972, 22971, 22970, 22969, 22968, 22967, 22966, 22965, 22964, 22963, 22962, 22961, 22960, 22959, 22958, 22957, 22956, 22955, 22954, 22953, 22952, 22951, 22950, 22949, 22948, 22947, 22946, 22945, 22944, 22943, 22942, 22941, 22940, 22939, 22938, 22937, 22936, 22935, 22934, 22933, 22932, 22931, 22930, 22929, 22928, 22927, 22926, 22925, 22924, 22923, 22922, 22921, 22920, 22919, 22918, 22917, 22916, 22915, 22914, 22913, 22912, 22911, 22910, 22909, 22908, 22907, 22906, 22905, 22904, 22903, 22902, 22901, 22900, 22899, 22898, 22897, 22896, 22895, 22894, 22893, 22892, 22891, 22890, 22889, 22888, 22887, 22886, 22885, 22884, 22883, 22882, 22881, 22880, 22879, 22878, 22877, 22876, 22875, 22874, 22873, 22872, 22871, 22870, 22869, 22868, 22867, 22866, 22865, 22864, 22863, 22862, 22861, 22860, 22859, 22858, 22857, 22856, 22855, 22854, 22853, 22852, 22851, 22850, 22849, 22848, 22847, 22846, 22845, 22844, 22843, 22842, 22841, 22840, 22839, 22838, 22837, 22836, 22835, 22834, 22833, 22832, 22831, 22830, 22829, 22828, 22827, 22826, 22825, 22824, 22823, 22822, 22821, 22820, 22819, 22818, 22817, 22816, 22815, 22814, 22813, 22812, 22811, 22810, 22809, 22808, 22807, 22806, 22805, 22804, 22803, 22802, 22801, 22800, 22799, 22798, 22797, 22796, 22795, 22794, 22793, 22792, 22791, 22790, 22789, 22788, 22787, 22786, 22785, 22784, 22783, 22782, 22781, 22780, 22779, 22778, 22777, 22776, 22775, 22774, 22773, 22772, 22771, 22770, 22769, 22768, 22767, 22766, 22765, 22764, 22763, 22762, 22761, 22760, 22759, 22758, 22757, 22756, 22755, 22754, 22753, 22752, 22751, 22750, 22749, 22748, 22747, 22746, 22745, 22744, 22743, 22742, 22741, 22740, 22739, 22738, 22737, 22736, 22735, 22734, 22733, 22732, 22731, 22730, 22729, 22728, 22727, 22726, 22725, 22724, 22723, 22722, 22721, 22720, 22719, 22718, 22717, 22716, 22715, 22714, 22713, 22712, 22711, 22710, 22709, 22708, 22707, 22706, 22705, 22704, 22703, 22702, 22701, 22700, 22699, 22698, 22697, 22696, 22695, 22694, 22693, 22692, 22691, 22690, 22689, 22688, 22687, 22686, 22685, 22684, 22683, 22682, 22681, 22680, 22679, 22678, 22677, 22676, 22675, 22674, 22673, 22672, 22671, 22670, 22669, 22668, 22667, 22666, 22665, 22664, 22663, 22662, 22661, 22660, 22659, 22658, 22657, 22656, 22655, 22654, 22653, 22652, 22651, 22650, 22649, 22648, 22647, 22646, 22645, 22644, 22643, 22642, 22641, 22640, 22639, 22638, 22637, 22636, 22635, 22634, 22633, 22632, 22631, 22630, 22629, 22628, 22627, 22626, 22625, 22624, 22623, 22622, 22621, 22620, 22619, 22618, 22617, 22616, 22615, 22614, 22613, 22612, 22611, 22610, 22609, 22608, 22607, 22606, 22605, 22604, 22603, 22602, 22601, 22600, 22599, 22598, 22597, 22596, 22595, 22594, 22593, 22592, 22591, 22590, 22589, 22588, 22587, 22586, 22585, 22584, 22583, 22582, 22581, 22580, 22579, 22578, 22577, 22576, 22575, 22574, 22573, 22572, 22571, 22570, 22569, 22568, 22567, 22566, 22565, 22564, 22563, 22562, 22561, 22560, 22559, 22558, 22557, 22556, 22555, 22554, 22553, 22552, 22551, 22550, 22549, 22548, 22547, 22546, 22545, 22544, 22543, 22542, 22541, 22540, 22539, 22538, 22537, 22536, 22535, 22534, 22533, 22532, 22531, 22530, 22529, 22528, 22527, 22526, 22525, 22524, 22523, 22522, 22521, 22520, 22519, 22518, 22517, 22516, 22515, 22514, 22513, 22512, 22511, 22510, 22509, 22508, 22507, 22506, 22505, 22504, 22503, 22502, 22501, 22500, 22499, 22498, 22497, 22496, 22495, 22494, 22493, 22492, 22491, 22490, 22489, 22488, 22487, 22486, 22485, 22484, 22483, 22482, 22481, 22480, 22479, 22478, 22477, 22476, 22475, 22474, 22473, 22472, 22471, 22470, 22469, 22468, 22467, 22466, 22465, 22464, 22463, 22462, 22461, 22460, 22459, 22458, 22457, 22456, 22455, 22454, 22453, 22452, 22451, 22450, 22449, 22448, 22447, 22446, 22445, 22444, 22443, 22442, 22441, 22440, 22439, 22438, 22437, 22436, 22435, 22434, 22433, 22432, 22431, 22430, 22429, 22428, 22427, 22426, 22425, 22424, 22423, 22422, 22421, 22420, 22419, 22418, 22417, 22416, 22415, 22414, 22413, 22412, 22411, 22410, 22409, 22408, 22407, 22406, 22405, 22404, 22403, 22402, 22401, 22400, 22399, 22398, 22397, 22396, 22395, 22394, 22393, 22392, 22391, 22390, 22389, 22388, 22387, 22386, 22385, 22384, 22383, 22382, 22381, 22380, 22379, 22378, 22377, 22376, 22375, 22374, 22373, 22372, 22371, 22370, 22369, 22368, 22367, 22366, 22365, 22364, 22363, 22362, 22361, 22360, 22359, 22358, 22357, 22356, 22355, 22354, 22353, 22352, 22351, 22350, 22349, 22348, 22347, 22346, 22345, 22344, 22343, 22342, 22341, 22340, 22339, 22338, 22337, 22336, 22335, 22334, 22333, 22332, 22331, 22330, 22329, 22328, 22327, 22326, 22325, 22324, 22323, 22322, 22321, 22320, 22319, 22318, 22317, 22316, 22315, 22314, 22313, 22312, 22311, 22310, 22309, 22308, 22307, 22306, 22305, 22304, 22303, 22302, 22301, 22300, 22299, 22298, 22297, 22296, 22295, 22294, 22293, 22292, 22291, 22290, 22289, 22288, 22287, 22286, 22285, 22284, 22283, 22282, 22281, 22280, 22279, 22278, 22277, 22276, 22275, 22274, 22273, 22272, 22271, 22270, 22269, 22268, 22267, 22266, 22265, 22264, 22263, 22262, 22261, 22260, 22259, 22258, 22257, 22256, 22255, 22254, 22253, 22252, 22251, 22250, 22249, 22248, 22247, 22246, 22245, 22244, 22243, 22242, 22241, 22240, 22239, 22238, 22237, 22236, 22235, 22234, 22233, 22232, 22231, 22230, 22229, 22228, 22227, 22226, 22225, 22224, 22223, 22222, 22221, 22220, 22219, 22218, 22217, 22216, 22215, 22214, 22213, 22212, 22211, 22210, 22209, 22208, 22207, 22206, 22205, 22204, 22203, 22202, 22201, 22200, 22199, 22198, 22197, 22196, 22195, 22194, 22193, 22192, 22191, 22190, 22189, 22188, 22187, 22186, 22185, 22184, 22183, 22182, 22181, 22180, 22179, 22178, 22177, 22176, 22175, 22174, 22173, 22172, 22171, 22170, 22169, 22168, 22167, 22166, 22165, 22164, 22163, 22162, 22161, 22160, 22159, 22158, 22157, 22156, 22155, 22154, 22153, 22152, 22151, 22150, 22149, 22148, 22147, 22146, 22145, 22144, 22143, 22142, 22141, 22140, 22139, 22138, 22137, 22136, 22135, 22134, 22133, 22132, 22131, 22130, 22129, 22128, 22127, 22126, 22125, 22124, 22123, 22122, 22121, 22120, 22119, 22118, 22117, 22116, 22115, 22114, 22113, 22112, 22111, 22110, 22109, 22108, 22107, 22106, 22105, 22104, 22103, 22102, 22101, 22100, 22099, 22098, 22097, 22096, 22095, 22094, 22093, 22092, 22091, 22090, 22089, 22088, 22087, 22086, 22085, 22084, 22083, 22082, 22081, 22080, 22079, 22078, 22077, 22076, 22075, 22074, 22073, 22072, 22071, 22070, 22069, 22068, 22067, 22066, 22065, 22064, 22063, 22062, 22061, 22060, 22059, 22058, 22057, 22056, 22055, 22054, 22053, 22052, 22051, 22050, 22049, 22048, 22047, 22046, 22045, 22044, 22043, 22042, 22041, 22040, 22039, 22038, 22037, 22036, 22035, 22034, 22033, 22032, 22031, 22030, 22029, 22028, 22027, 22026, 22025, 22024, 22023, 22022, 22021, 22020, 22019, 22018, 22017, 22016, 22015, 22014, 22013, 22012, 22011, 22010, 22009, 22008, 22007, 22006, 22005, 22004, 22003, 22002, 22001, 22000, 21999, 21998, 21997, 21996, 21995, 21994, 21993, 21992, 21991, 21990, 21989, 21988, 21987, 21986, 21985, 21984, 21983, 21982, 21981, 21980, 21979, 21978, 21977, 21976, 21975, 21974, 21973, 21972, 21971, 21970, 21969, 21968, 21967, 21966, 21965, 21964, 21963, 21962, 21961, 21960, 21959, 21958, 21957, 21956, 21955, 21954, 21953, 21952, 21951, 21950, 21949, 21948, 21947, 21946, 21945, 21944, 21943, 21942, 21941, 21940, 21939, 21938, 21937, 21936, 21935, 21934, 21933, 21932, 21931, 21930, 21929, 21928, 21927, 21926, 21925, 21924, 21923, 21922, 21921, 21920, 21919, 21918, 21917, 21916, 21915, 21914, 21913, 21912, 21911, 21910, 21909, 21908, 21907, 21906, 21905, 21904, 21903, 21902, 21901, 21900, 21899, 21898, 21897, 21896, 21895, 21894, 21893, 21892, 21891, 21890, 21889, 21888, 21887, 21886, 21885, 21884, 21883, 21882, 21881, 21880, 21879, 21878, 21877, 21876, 21875, 21874, 21873, 21872, 21871, 21870, 21869, 21868, 21867, 21866, 21865, 21864, 21863, 21862, 21861, 21860, 21859, 21858, 21857, 21856, 21855, 21854, 21853, 21852, 21851, 21850, 21849, 21848, 21847, 21846, 21845, 21844, 21843, 21842, 21841, 21840, 21839, 21838, 21837, 21836, 21835, 21834, 21833, 21832, 21831, 21830, 21829, 21828, 21827, 21826, 21825, 21824, 21823, 21822, 21821, 21820, 21819, 21818, 21817, 21816, 21815, 21814, 21813, 21812, 21811, 21810, 21809, 21808, 21807, 21806, 21805, 21804, 21803, 21802, 21801, 21800, 21799, 21798, 21797, 21796, 21795, 21794, 21793, 21792, 21791, 21790, 21789, 21788, 21787, 21786, 21785, 21784, 21783, 21782, 21781, 21780, 21779, 21778, 21777, 21776, 21775, 21774, 21773, 21772, 21771, 21770, 21769, 21768, 21767, 21766, 21765, 21764, 21763, 21762, 21761, 21760, 21759, 21758, 21757, 21756, 21755, 21754, 21753, 21752, 21751, 21750, 21749, 21748, 21747, 21746, 21745, 21744, 21743, 21742, 21741, 21740, 21739, 21738, 21737, 21736, 21735, 21734, 21733, 21732, 21731, 21730, 21729, 21728, 21727, 21726, 21725, 21724, 21723, 21722, 21721, 21720, 21719, 21718, 21717, 21716, 21715, 21714, 21713, 21712, 21711, 21710, 21709, 21708, 21707, 21706, 21705, 21704, 21703, 21702, 21701, 21700, 21699, 21698, 21697, 21696, 21695, 21694, 21693, 21692, 21691, 21690, 21689, 21688, 21687, 21686, 21685, 21684, 21683, 21682, 21681, 21680, 21679, 21678, 21677, 21676, 21675, 21674, 21673, 21672, 21671, 21670, 21669, 21668, 21667, 21666, 21665, 21664, 21663, 21662, 21661, 21660, 21659, 21658, 21657, 21656, 21655, 21654, 21653, 21652, 21651, 21650, 21649, 21648, 21647, 21646, 21645, 21644, 21643, 21642, 21641, 21640, 21639, 21638, 21637, 21636, 21635, 21634, 21633, 21632, 21631, 21630, 21629, 21628, 21627, 21626, 21625, 21624, 21623, 21622, 21621, 21620, 21619, 21618, 21617, 21616, 21615, 21614, 21613, 21612, 21611, 21610, 21609, 21608, 21607, 21606, 21605, 21604, 21603, 21602, 21601, 21600, 21599, 21598, 21597, 21596, 21595, 21594, 21593, 21592, 21591, 21590, 21589, 21588, 21587, 21586, 21585, 21584, 21583, 21582, 21581, 21580, 21579, 21578, 21577, 21576, 21575, 21574, 21573, 21572, 21571, 21570, 21569, 21568, 21567, 21566, 21565, 21564, 21563, 21562, 21561, 21560, 21559, 21558, 21557, 21556, 21555, 21554, 21553, 21552, 21551, 21550, 21549, 21548, 21547, 21546, 21545, 21544, 21543, 21542, 21541, 21540, 21539, 21538, 21537, 21536, 21535, 21534, 21533, 21532, 21531, 21530, 21529, 21528, 21527, 21526, 21525, 21524, 21523, 21522, 21521, 21520, 21519, 21518, 21517, 21516, 21515, 21514, 21513, 21512, 21511, 21510, 21509, 21508, 21507, 21506, 21505, 21504, 21503, 21502, 21501, 21500, 21499, 21498, 21497, 21496, 21495, 21494, 21493, 21492, 21491, 21490, 21489, 21488, 21487, 21486, 21485, 21484, 21483, 21482, 21481, 21480, 21479, 21478, 21477, 21476, 21475, 21474, 21473, 21472, 21471, 21470, 21469, 21468, 21467, 21466, 21465, 21464, 21463, 21462, 21461, 21460, 21459, 21458, 21457, 21456, 21455, 21454, 21453, 21452, 21451, 21450, 21449, 21448, 21447, 21446, 21445, 21444, 21443, 21442, 21441, 21440, 21439, 21438, 21437, 21436, 21435, 21434, 21433, 21432, 21431, 21430, 21429, 21428, 21427, 21426, 21425, 21424, 21423, 21422, 21421, 21420, 21419, 21418, 21417, 21416, 21415, 21414, 21413, 21412, 21411, 21410, 21409, 21408, 21407, 21406, 21405, 21404, 21403, 21402, 21401, 21400, 21399, 21398, 21397, 21396, 21395, 21394, 21393, 21392, 21391, 21390, 21389, 21388, 21387, 21386, 21385, 21384, 21383, 21382, 21381, 21380, 21379, 21378, 21377, 21376, 21375, 21374, 21373, 21372, 21371, 21370, 21369, 21368, 21367, 21366, 21365, 21364, 21363, 21362, 21361, 21360, 21359, 21358, 21357, 21356, 21355, 21354, 21353, 21352, 21351, 21350, 21349, 21348, 21347, 21346, 21345, 21344, 21343, 21342, 21341, 21340, 21339, 21338, 21337, 21336, 21335, 21334, 21333, 21332, 21331, 21330, 21329, 21328, 21327, 21326, 21325, 21324, 21323, 21322, 21321, 21320, 21319, 21318, 21317, 21316, 21315, 21314, 21313, 21312, 21311, 21310, 21309, 21308, 21307, 21306, 21305, 21304, 21303, 21302, 21301, 21300, 21299, 21298, 21297, 21296, 21295, 21294, 21293, 21292, 21291, 21290, 21289, 21288, 21287, 21286, 21285, 21284, 21283, 21282, 21281, 21280, 21279, 21278, 21277, 21276, 21275, 21274, 21273, 21272, 21271, 21270, 21269, 21268, 21267, 21266, 21265, 21264, 21263, 21262, 21261, 21260, 21259, 21258, 21257, 21256, 21255, 21254, 21253, 21252, 21251, 21250, 21249, 21248, 21247, 21246, 21245, 21244, 21243, 21242, 21241, 21240, 21239, 21238, 21237, 21236, 21235, 21234, 21233, 21232, 21231, 21230, 21229, 21228, 21227, 21226, 21225, 21224, 21223, 21222, 21221, 21220, 21219, 21218, 21217, 21216, 21215, 21214, 21213, 21212, 21211, 21210, 21209, 21208, 21207, 21206, 21205, 21204, 21203, 21202, 21201, 21200, 21199, 21198, 21197, 21196, 21195, 21194, 21193, 21192, 21191, 21190, 21189, 21188, 21187, 21186, 21185, 21184, 21183, 21182, 21181, 21180, 21179, 21178, 21177, 21176, 21175, 21174, 21173, 21172, 21171, 21170, 21169, 21168, 21167, 21166, 21165, 21164, 21163, 21162, 21161, 21160, 21159, 21158, 21157, 21156, 21155, 21154, 21153, 21152, 21151, 21150, 21149, 21148, 21147, 21146, 21145, 21144, 21143, 21142, 21141, 21140, 21139, 21138, 21137, 21136, 21135, 21134, 21133, 21132, 21131, 21130, 21129, 21128, 21127, 21126, 21125, 21124, 21123, 21122, 21121, 21120, 21119, 21118, 21117, 21116, 21115, 21114, 21113, 21112, 21111, 21110, 21109, 21108, 21107, 21106, 21105, 21104, 21103, 21102, 21101, 21100, 21099, 21098, 21097, 21096, 21095, 21094, 21093, 21092, 21091, 21090, 21089, 21088, 21087, 21086, 21085, 21084, 21083, 21082, 21081, 21080, 21079, 21078, 21077, 21076, 21075, 21074, 21073, 21072, 21071, 21070, 21069, 21068, 21067, 21066, 21065, 21064, 21063, 21062, 21061, 21060, 21059, 21058, 21057, 21056, 21055, 21054, 21053, 21052, 21051, 21050, 21049, 21048, 21047, 21046, 21045, 21044, 21043, 21042, 21041, 21040, 21039, 21038, 21037, 21036, 21035, 21034, 21033, 21032, 21031, 21030, 21029, 21028, 21027, 21026, 21025, 21024, 21023, 21022, 21021, 21020, 21019, 21018, 21017, 21016, 21015, 21014, 21013, 21012, 21011, 21010, 21009, 21008, 21007, 21006, 21005, 21004, 21003, 21002, 21001, 21000, 20999, 20998, 20997, 20996, 20995, 20994, 20993, 20992, 20991, 20990, 20989, 20988, 20987, 20986, 20985, 20984, 20983, 20982, 20981, 20980, 20979, 20978, 20977, 20976, 20975, 20974, 20973, 20972, 20971, 20970, 20969, 20968, 20967, 20966, 20965, 20964, 20963, 20962, 20961, 20960, 20959, 20958, 20957, 20956, 20955, 20954, 20953, 20952, 20951, 20950, 20949, 20948, 20947, 20946, 20945, 20944, 20943, 20942, 20941, 20940, 20939, 20938, 20937, 20936, 20935, 20934, 20933, 20932, 20931, 20930, 20929, 20928, 20927, 20926, 20925, 20924, 20923, 20922, 20921, 20920, 20919, 20918, 20917, 20916, 20915, 20914, 20913, 20912, 20911, 20910, 20909, 20908, 20907, 20906, 20905, 20904, 20903, 20902, 20901, 20900, 20899, 20898, 20897, 20896, 20895, 20894, 20893, 20892, 20891, 20890, 20889, 20888, 20887, 20886, 20885, 20884, 20883, 20882, 20881, 20880, 20879, 20878, 20877, 20876, 20875, 20874, 20873, 20872, 20871, 20870, 20869, 20868, 20867, 20866, 20865, 20864, 20863, 20862, 20861, 20860, 20859, 20858, 20857, 20856, 20855, 20854, 20853, 20852, 20851, 20850, 20849, 20848, 20847, 20846, 20845, 20844, 20843, 20842, 20841, 20840, 20839, 20838, 20837, 20836, 20835, 20834, 20833, 20832, 20831, 20830, 20829, 20828, 20827, 20826, 20825, 20824, 20823, 20822, 20821, 20820, 20819, 20818, 20817, 20816, 20815, 20814, 20813, 20812, 20811, 20810, 20809, 20808, 20807, 20806, 20805, 20804, 20803, 20802, 20801, 20800, 20799, 20798, 20797, 20796, 20795, 20794, 20793, 20792, 20791, 20790, 20789, 20788, 20787, 20786, 20785, 20784, 20783, 20782, 20781, 20780, 20779, 20778, 20777, 20776, 20775, 20774, 20773, 20772, 20771, 20770, 20769, 20768, 20767, 20766, 20765, 20764, 20763, 20762, 20761, 20760, 20759, 20758, 20757, 20756, 20755, 20754, 20753, 20752, 20751, 20750, 20749, 20748, 20747, 20746, 20745, 20744, 20743, 20742, 20741, 20740, 20739, 20738, 20737, 20736, 20735, 20734, 20733, 20732, 20731, 20730, 20729, 20728, 20727, 20726, 20725, 20724, 20723, 20722, 20721, 20720, 20719, 20718, 20717, 20716, 20715, 20714, 20713, 20712, 20711, 20710, 20709, 20708, 20707, 20706, 20705, 20704, 20703, 20702, 20701, 20700, 20699, 20698, 20697, 20696, 20695, 20694, 20693, 20692, 20691, 20690, 20689, 20688, 20687, 20686, 20685, 20684, 20683, 20682, 20681, 20680, 20679, 20678, 20677, 20676, 20675, 20674, 20673, 20672, 20671, 20670, 20669, 20668, 20667, 20666, 20665, 20664, 20663, 20662, 20661, 20660, 20659, 20658, 20657, 20656, 20655, 20654, 20653, 20652, 20651, 20650, 20649, 20648, 20647, 20646, 20645, 20644, 20643, 20642, 20641, 20640, 20639, 20638, 20637, 20636, 20635, 20634, 20633, 20632, 20631, 20630, 20629, 20628, 20627, 20626, 20625, 20624, 20623, 20622, 20621, 20620, 20619, 20618, 20617, 20616, 20615, 20614, 20613, 20612, 20611, 20610, 20609, 20608, 20607, 20606, 20605, 20604, 20603, 20602, 20601, 20600, 20599, 20598, 20597, 20596, 20595, 20594, 20593, 20592, 20591, 20590, 20589, 20588, 20587, 20586, 20585, 20584, 20583, 20582, 20581, 20580, 20579, 20578, 20577, 20576, 20575, 20574, 20573, 20572, 20571, 20570, 20569, 20568, 20567, 20566, 20565, 20564, 20563, 20562, 20561, 20560, 20559, 20558, 20557, 20556, 20555, 20554, 20553, 20552, 20551, 20550, 20549, 20548, 20547, 20546, 20545, 20544, 20543, 20542, 20541, 20540, 20539, 20538, 20537, 20536, 20535, 20534, 20533, 20532, 20531, 20530, 20529, 20528, 20527, 20526, 20525, 20524, 20523, 20522, 20521, 20520, 20519, 20518, 20517, 20516, 20515, 20514, 20513, 20512, 20511, 20510, 20509, 20508, 20507, 20506, 20505, 20504, 20503, 20502, 20501, 20500, 20499, 20498, 20497, 20496, 20495, 20494, 20493, 20492, 20491, 20490, 20489, 20488, 20487, 20486, 20485, 20484, 20483, 20482, 20481, 20480, 20479, 20478, 20477, 20476, 20475, 20474, 20473, 20472, 20471, 20470, 20469, 20468, 20467, 20466, 20465, 20464, 20463, 20462, 20461, 20460, 20459, 20458, 20457, 20456, 20455, 20454, 20453, 20452, 20451, 20450, 20449, 20448, 20447, 20446, 20445, 20444, 20443, 20442, 20441, 20440, 20439, 20438, 20437, 20436, 20435, 20434, 20433, 20432, 20431, 20430, 20429, 20428, 20427, 20426, 20425, 20424, 20423, 20422, 20421, 20420, 20419, 20418, 20417, 20416, 20415, 20414, 20413, 20412, 20411, 20410, 20409, 20408, 20407, 20406, 20405, 20404, 20403, 20402, 20401, 20400, 20399, 20398, 20397, 20396, 20395, 20394, 20393, 20392, 20391, 20390, 20389, 20388, 20387, 20386, 20385, 20384, 20383, 20382, 20381, 20380, 20379, 20378, 20377, 20376, 20375, 20374, 20373, 20372, 20371, 20370, 20369, 20368, 20367, 20366, 20365, 20364, 20363, 20362, 20361, 20360, 20359, 20358, 20357, 20356, 20355, 20354, 20353, 20352, 20351, 20350, 20349, 20348, 20347, 20346, 20345, 20344, 20343, 20342, 20341, 20340, 20339, 20338, 20337, 20336, 20335, 20334, 20333, 20332, 20331, 20330, 20329, 20328, 20327, 20326, 20325, 20324, 20323, 20322, 20321, 20320, 20319, 20318, 20317, 20316, 20315, 20314, 20313, 20312, 20311, 20310, 20309, 20308, 20307, 20306, 20305, 20304, 20303, 20302, 20301, 20300, 20299, 20298, 20297, 20296, 20295, 20294, 20293, 20292, 20291, 20290, 20289, 20288, 20287, 20286, 20285, 20284, 20283, 20282, 20281, 20280, 20279, 20278, 20277, 20276, 20275, 20274, 20273, 20272, 20271, 20270, 20269, 20268, 20267, 20266, 20265, 20264, 20263, 20262, 20261, 20260, 20259, 20258, 20257, 20256, 20255, 20254, 20253, 20252, 20251, 20250, 20249, 20248, 20247, 20246, 20245, 20244, 20243, 20242, 20241, 20240, 20239, 20238, 20237, 20236, 20235, 20234, 20233, 20232, 20231, 20230, 20229, 20228, 20227, 20226, 20225, 20224, 20223, 20222, 20221, 20220, 20219, 20218, 20217, 20216, 20215, 20214, 20213, 20212, 20211, 20210, 20209, 20208, 20207, 20206, 20205, 20204, 20203, 20202, 20201, 20200, 20199, 20198, 20197, 20196, 20195, 20194, 20193, 20192, 20191, 20190, 20189, 20188, 20187, 20186, 20185, 20184, 20183, 20182, 20181, 20180, 20179, 20178, 20177, 20176, 20175, 20174, 20173, 20172, 20171, 20170, 20169, 20168, 20167, 20166, 20165, 20164, 20163, 20162, 20161, 20160, 20159, 20158, 20157, 20156, 20155, 20154, 20153, 20152, 20151, 20150, 20149, 20148, 20147, 20146, 20145, 20144, 20143, 20142, 20141, 20140, 20139, 20138, 20137, 20136, 20135, 20134, 20133, 20132, 20131, 20130, 20129, 20128, 20127, 20126, 20125, 20124, 20123, 20122, 20121, 20120, 20119, 20118, 20117, 20116, 20115, 20114, 20113, 20112, 20111, 20110, 20109, 20108, 20107, 20106, 20105, 20104, 20103, 20102, 20101, 20100, 20099, 20098, 20097, 20096, 20095, 20094, 20093, 20092, 20091, 20090, 20089, 20088, 20087, 20086, 20085, 20084, 20083, 20082, 20081, 20080, 20079, 20078, 20077, 20076, 20075, 20074, 20073, 20072, 20071, 20070, 20069, 20068, 20067, 20066, 20065, 20064, 20063, 20062, 20061, 20060, 20059, 20058, 20057, 20056, 20055, 20054, 20053, 20052, 20051, 20050, 20049, 20048, 20047, 20046, 20045, 20044, 20043, 20042, 20041, 20040, 20039, 20038, 20037, 20036, 20035, 20034, 20033, 20032, 20031, 20030, 20029, 20028, 20027, 20026, 20025, 20024, 20023, 20022, 20021, 20020, 20019, 20018, 20017, 20016, 20015, 20014, 20013, 20012, 20011, 20010, 20009, 20008, 20007, 20006, 20005, 20004, 20003, 20002, 20001, 20000, 19999, 19998, 19997, 19996, 19995, 19994, 19993, 19992, 19991, 19990, 19989, 19988, 19987, 19986, 19985, 19984, 19983, 19982, 19981, 19980, 19979, 19978, 19977, 19976, 19975, 19974, 19973, 19972, 19971, 19970, 19969, 19968, 19967, 19966, 19965, 19964, 19963, 19962, 19961, 19960, 19959, 19958, 19957, 19956, 19955, 19954, 19953, 19952, 19951, 19950, 19949, 19948, 19947, 19946, 19945, 19944, 19943, 19942, 19941, 19940, 19939, 19938, 19937, 19936, 19935, 19934, 19933, 19932, 19931, 19930, 19929, 19928, 19927, 19926, 19925, 19924, 19923, 19922, 19921, 19920, 19919, 19918, 19917, 19916, 19915, 19914, 19913, 19912, 19911, 19910, 19909, 19908, 19907, 19906, 19905, 19904, 19903, 19902, 19901, 19900, 19899, 19898, 19897, 19896, 19895, 19894, 19893, 19892, 19891, 19890, 19889, 19888, 19887, 19886, 19885, 19884, 19883, 19882, 19881, 19880, 19879, 19878, 19877, 19876, 19875, 19874, 19873, 19872, 19871, 19870, 19869, 19868, 19867, 19866, 19865, 19864, 19863, 19862, 19861, 19860, 19859, 19858, 19857, 19856, 19855, 19854, 19853, 19852, 19851, 19850, 19849, 19848, 19847, 19846, 19845, 19844, 19843, 19842, 19841, 19840, 19839, 19838, 19837, 19836, 19835, 19834, 19833, 19832, 19831, 19830, 19829, 19828, 19827, 19826, 19825, 19824, 19823, 19822, 19821, 19820, 19819, 19818, 19817, 19816, 19815, 19814, 19813, 19812, 19811, 19810, 19809, 19808, 19807, 19806, 19805, 19804, 19803, 19802, 19801, 19800, 19799, 19798, 19797, 19796, 19795, 19794, 19793, 19792, 19791, 19790, 19789, 19788, 19787, 19786, 19785, 19784, 19783, 19782, 19781, 19780, 19779, 19778, 19777, 19776, 19775, 19774, 19773, 19772, 19771, 19770, 19769, 19768, 19767, 19766, 19765, 19764, 19763, 19762, 19761, 19760, 19759, 19758, 19757, 19756, 19755, 19754, 19753, 19752, 19751, 19750, 19749, 19748, 19747, 19746, 19745, 19744, 19743, 19742, 19741, 19740, 19739, 19738, 19737, 19736, 19735, 19734, 19733, 19732, 19731, 19730, 19729, 19728, 19727, 19726, 19725, 19724, 19723, 19722, 19721, 19720, 19719, 19718, 19717, 19716, 19715, 19714, 19713, 19712, 19711, 19710, 19709, 19708, 19707, 19706, 19705, 19704, 19703, 19702, 19701, 19700, 19699, 19698, 19697, 19696, 19695, 19694, 19693, 19692, 19691, 19690, 19689, 19688, 19687, 19686, 19685, 19684, 19683, 19682, 19681, 19680, 19679, 19678, 19677, 19676, 19675, 19674, 19673, 19672, 19671, 19670, 19669, 19668, 19667, 19666, 19665, 19664, 19663, 19662, 19661, 19660, 19659, 19658, 19657, 19656, 19655, 19654, 19653, 19652, 19651, 19650, 19649, 19648, 19647, 19646, 19645, 19644, 19643, 19642, 19641, 19640, 19639, 19638, 19637, 19636, 19635, 19634, 19633, 19632, 19631, 19630, 19629, 19628, 19627, 19626, 19625, 19624, 19623, 19622, 19621, 19620, 19619, 19618, 19617, 19616, 19615, 19614, 19613, 19612, 19611, 19610, 19609, 19608, 19607, 19606, 19605, 19604, 19603, 19602, 19601, 19600, 19599, 19598, 19597, 19596, 19595, 19594, 19593, 19592, 19591, 19590, 19589, 19588, 19587, 19586, 19585, 19584, 19583, 19582, 19581, 19580, 19579, 19578, 19577, 19576, 19575, 19574, 19573, 19572, 19571, 19570, 19569, 19568, 19567, 19566, 19565, 19564, 19563, 19562, 19561, 19560, 19559, 19558, 19557, 19556, 19555, 19554, 19553, 19552, 19551, 19550, 19549, 19548, 19547, 19546, 19545, 19544, 19543, 19542, 19541, 19540, 19539, 19538, 19537, 19536, 19535, 19534, 19533, 19532, 19531, 19530, 19529, 19528, 19527, 19526, 19525, 19524, 19523, 19522, 19521, 19520, 19519, 19518, 19517, 19516, 19515, 19514, 19513, 19512, 19511, 19510, 19509, 19508, 19507, 19506, 19505, 19504, 19503, 19502, 19501, 19500, 19499, 19498, 19497, 19496, 19495, 19494, 19493, 19492, 19491, 19490, 19489, 19488, 19487, 19486, 19485, 19484, 19483, 19482, 19481, 19480, 19479, 19478, 19477, 19476, 19475, 19474, 19473, 19472, 19471, 19470, 19469, 19468, 19467, 19466, 19465, 19464, 19463, 19462, 19461, 19460, 19459, 19458, 19457, 19456, 19455, 19454, 19453, 19452, 19451, 19450, 19449, 19448, 19447, 19446, 19445, 19444, 19443, 19442, 19441, 19440, 19439, 19438, 19437, 19436, 19435, 19434, 19433, 19432, 19431, 19430, 19429, 19428, 19427, 19426, 19425, 19424, 19423, 19422, 19421, 19420, 19419, 19418, 19417, 19416, 19415, 19414, 19413, 19412, 19411, 19410, 19409, 19408, 19407, 19406, 19405, 19404, 19403, 19402, 19401, 19400, 19399, 19398, 19397, 19396, 19395, 19394, 19393, 19392, 19391, 19390, 19389, 19388, 19387, 19386, 19385, 19384, 19383, 19382, 19381, 19380, 19379, 19378, 19377, 19376, 19375, 19374, 19373, 19372, 19371, 19370, 19369, 19368, 19367, 19366, 19365, 19364, 19363, 19362, 19361, 19360, 19359, 19358, 19357, 19356, 19355, 19354, 19353, 19352, 19351, 19350, 19349, 19348, 19347, 19346, 19345, 19344, 19343, 19342, 19341, 19340, 19339, 19338, 19337, 19336, 19335, 19334, 19333, 19332, 19331, 19330, 19329, 19328, 19327, 19326, 19325, 19324, 19323, 19322, 19321, 19320, 19319, 19318, 19317, 19316, 19315, 19314, 19313, 19312, 19311, 19310, 19309, 19308, 19307, 19306, 19305, 19304, 19303, 19302, 19301, 19300, 19299, 19298, 19297, 19296, 19295, 19294, 19293, 19292, 19291, 19290, 19289, 19288, 19287, 19286, 19285, 19284, 19283, 19282, 19281, 19280, 19279, 19278, 19277, 19276, 19275, 19274, 19273, 19272, 19271, 19270, 19269, 19268, 19267, 19266, 19265, 19264, 19263, 19262, 19261, 19260, 19259, 19258, 19257, 19256, 19255, 19254, 19253, 19252, 19251, 19250, 19249, 19248, 19247, 19246, 19245, 19244, 19243, 19242, 19241, 19240, 19239, 19238, 19237, 19236, 19235, 19234, 19233, 19232, 19231, 19230, 19229, 19228, 19227, 19226, 19225, 19224, 19223, 19222, 19221, 19220, 19219, 19218, 19217, 19216, 19215, 19214, 19213, 19212, 19211, 19210, 19209, 19208, 19207, 19206, 19205, 19204, 19203, 19202, 19201, 19200, 19199, 19198, 19197, 19196, 19195, 19194, 19193, 19192, 19191, 19190, 19189, 19188, 19187, 19186, 19185, 19184, 19183, 19182, 19181, 19180, 19179, 19178, 19177, 19176, 19175, 19174, 19173, 19172, 19171, 19170, 19169, 19168, 19167, 19166, 19165, 19164, 19163, 19162, 19161, 19160, 19159, 19158, 19157, 19156, 19155, 19154, 19153, 19152, 19151, 19150, 19149, 19148, 19147, 19146, 19145, 19144, 19143, 19142, 19141, 19140, 19139, 19138, 19137, 19136, 19135, 19134, 19133, 19132, 19131, 19130, 19129, 19128, 19127, 19126, 19125, 19124, 19123, 19122, 19121, 19120, 19119, 19118, 19117, 19116, 19115, 19114, 19113, 19112, 19111, 19110, 19109, 19108, 19107, 19106, 19105, 19104, 19103, 19102, 19101, 19100, 19099, 19098, 19097, 19096, 19095, 19094, 19093, 19092, 19091, 19090, 19089, 19088, 19087, 19086, 19085, 19084, 19083, 19082, 19081, 19080, 19079, 19078, 19077, 19076, 19075, 19074, 19073, 19072, 19071, 19070, 19069, 19068, 19067, 19066, 19065, 19064, 19063, 19062, 19061, 19060, 19059, 19058, 19057, 19056, 19055, 19054, 19053, 19052, 19051, 19050, 19049, 19048, 19047, 19046, 19045, 19044, 19043, 19042, 19041, 19040, 19039, 19038, 19037, 19036, 19035, 19034, 19033, 19032, 19031, 19030, 19029, 19028, 19027, 19026, 19025, 19024, 19023, 19022, 19021, 19020, 19019, 19018, 19017, 19016, 19015, 19014, 19013, 19012, 19011, 19010, 19009, 19008, 19007, 19006, 19005, 19004, 19003, 19002, 19001, 19000, 18999, 18998, 18997, 18996, 18995, 18994, 18993, 18992, 18991, 18990, 18989, 18988, 18987, 18986, 18985, 18984, 18983, 18982, 18981, 18980, 18979, 18978, 18977, 18976, 18975, 18974, 18973, 18972, 18971, 18970, 18969, 18968, 18967, 18966, 18965, 18964, 18963, 18962, 18961, 18960, 18959, 18958, 18957, 18956, 18955, 18954, 18953, 18952, 18951, 18950, 18949, 18948, 18947, 18946, 18945, 18944, 18943, 18942, 18941, 18940, 18939, 18938, 18937, 18936, 18935, 18934, 18933, 18932, 18931, 18930, 18929, 18928, 18927, 18926, 18925, 18924, 18923, 18922, 18921, 18920, 18919, 18918, 18917, 18916, 18915, 18914, 18913, 18912, 18911, 18910, 18909, 18908, 18907, 18906, 18905, 18904, 18903, 18902, 18901, 18900, 18899, 18898, 18897, 18896, 18895, 18894, 18893, 18892, 18891, 18890, 18889, 18888, 18887, 18886, 18885, 18884, 18883, 18882, 18881, 18880, 18879, 18878, 18877, 18876, 18875, 18874, 18873, 18872, 18871, 18870, 18869, 18868, 18867, 18866, 18865, 18864, 18863, 18862, 18861, 18860, 18859, 18858, 18857, 18856, 18855, 18854, 18853, 18852, 18851, 18850, 18849, 18848, 18847, 18846, 18845, 18844, 18843, 18842, 18841, 18840, 18839, 18838, 18837, 18836, 18835, 18834, 18833, 18832, 18831, 18830, 18829, 18828, 18827, 18826, 18825, 18824, 18823, 18822, 18821, 18820, 18819, 18818, 18817, 18816, 18815, 18814, 18813, 18812, 18811, 18810, 18809, 18808, 18807, 18806, 18805, 18804, 18803, 18802, 18801, 18800, 18799, 18798, 18797, 18796, 18795, 18794, 18793, 18792, 18791, 18790, 18789, 18788, 18787, 18786, 18785, 18784, 18783, 18782, 18781, 18780, 18779, 18778, 18777, 18776, 18775, 18774, 18773, 18772, 18771, 18770, 18769, 18768, 18767, 18766, 18765, 18764, 18763, 18762, 18761, 18760, 18759, 18758, 18757, 18756, 18755, 18754, 18753, 18752, 18751, 18750, 18749, 18748, 18747, 18746, 18745, 18744, 18743, 18742, 18741, 18740, 18739, 18738, 18737, 18736, 18735, 18734, 18733, 18732, 18731, 18730, 18729, 18728, 18727, 18726, 18725, 18724, 18723, 18722, 18721, 18720, 18719, 18718, 18717, 18716, 18715, 18714, 18713, 18712, 18711, 18710, 18709, 18708, 18707, 18706, 18705, 18704, 18703, 18702, 18701, 18700, 18699, 18698, 18697, 18696, 18695, 18694, 18693, 18692, 18691, 18690, 18689, 18688, 18687, 18686, 18685, 18684, 18683, 18682, 18681, 18680, 18679, 18678, 18677, 18676, 18675, 18674, 18673, 18672, 18671, 18670, 18669, 18668, 18667, 18666, 18665, 18664, 18663, 18662, 18661, 18660, 18659, 18658, 18657, 18656, 18655, 18654, 18653, 18652, 18651, 18650, 18649, 18648, 18647, 18646, 18645, 18644, 18643, 18642, 18641, 18640, 18639, 18638, 18637, 18636, 18635, 18634, 18633, 18632, 18631, 18630, 18629, 18628, 18627, 18626, 18625, 18624, 18623, 18622, 18621, 18620, 18619, 18618, 18617, 18616, 18615, 18614, 18613, 18612, 18611, 18610, 18609, 18608, 18607, 18606, 18605, 18604, 18603, 18602, 18601, 18600, 18599, 18598, 18597, 18596, 18595, 18594, 18593, 18592, 18591, 18590, 18589, 18588, 18587, 18586, 18585, 18584, 18583, 18582, 18581, 18580, 18579, 18578, 18577, 18576, 18575, 18574, 18573, 18572, 18571, 18570, 18569, 18568, 18567, 18566, 18565, 18564, 18563, 18562, 18561, 18560, 18559, 18558, 18557, 18556, 18555, 18554, 18553, 18552, 18551, 18550, 18549, 18548, 18547, 18546, 18545, 18544, 18543, 18542, 18541, 18540, 18539, 18538, 18537, 18536, 18535, 18534, 18533, 18532, 18531, 18530, 18529, 18528, 18527, 18526, 18525, 18524, 18523, 18522, 18521, 18520, 18519, 18518, 18517, 18516, 18515, 18514, 18513, 18512, 18511, 18510, 18509, 18508, 18507, 18506, 18505, 18504, 18503, 18502, 18501, 18500, 18499, 18498, 18497, 18496, 18495, 18494, 18493, 18492, 18491, 18490, 18489, 18488, 18487, 18486, 18485, 18484, 18483, 18482, 18481, 18480, 18479, 18478, 18477, 18476, 18475, 18474, 18473, 18472, 18471, 18470, 18469, 18468, 18467, 18466, 18465, 18464, 18463, 18462, 18461, 18460, 18459, 18458, 18457, 18456, 18455, 18454, 18453, 18452, 18451, 18450, 18449, 18448, 18447, 18446, 18445, 18444, 18443, 18442, 18441, 18440, 18439, 18438, 18437, 18436, 18435, 18434, 18433, 18432, 18431, 18430, 18429, 18428, 18427, 18426, 18425, 18424, 18423, 18422, 18421, 18420, 18419, 18418, 18417, 18416, 18415, 18414, 18413, 18412, 18411, 18410, 18409, 18408, 18407, 18406, 18405, 18404, 18403, 18402, 18401, 18400, 18399, 18398, 18397, 18396, 18395, 18394, 18393, 18392, 18391, 18390, 18389, 18388, 18387, 18386, 18385, 18384, 18383, 18382, 18381, 18380, 18379, 18378, 18377, 18376, 18375, 18374, 18373, 18372, 18371, 18370, 18369, 18368, 18367, 18366, 18365, 18364, 18363, 18362, 18361, 18360, 18359, 18358, 18357, 18356, 18355, 18354, 18353, 18352, 18351, 18350, 18349, 18348, 18347, 18346, 18345, 18344, 18343, 18342, 18341, 18340, 18339, 18338, 18337, 18336, 18335, 18334, 18333, 18332, 18331, 18330, 18329, 18328, 18327, 18326, 18325, 18324, 18323, 18322, 18321, 18320, 18319, 18318, 18317, 18316, 18315, 18314, 18313, 18312, 18311, 18310, 18309, 18308, 18307, 18306, 18305, 18304, 18303, 18302, 18301, 18300, 18299, 18298, 18297, 18296, 18295, 18294, 18293, 18292, 18291, 18290, 18289, 18288, 18287, 18286, 18285, 18284, 18283, 18282, 18281, 18280, 18279, 18278, 18277, 18276, 18275, 18274, 18273, 18272, 18271, 18270, 18269, 18268, 18267, 18266, 18265, 18264, 18263, 18262, 18261, 18260, 18259, 18258, 18257, 18256, 18255, 18254, 18253, 18252, 18251, 18250, 18249, 18248, 18247, 18246, 18245, 18244, 18243, 18242, 18241, 18240, 18239, 18238, 18237, 18236, 18235, 18234, 18233, 18232, 18231, 18230, 18229, 18228, 18227, 18226, 18225, 18224, 18223, 18222, 18221, 18220, 18219, 18218, 18217, 18216, 18215, 18214, 18213, 18212, 18211, 18210, 18209, 18208, 18207, 18206, 18205, 18204, 18203, 18202, 18201, 18200, 18199, 18198, 18197, 18196, 18195, 18194, 18193, 18192, 18191, 18190, 18189, 18188, 18187, 18186, 18185, 18184, 18183, 18182, 18181, 18180, 18179, 18178, 18177, 18176, 18175, 18174, 18173, 18172, 18171, 18170, 18169, 18168, 18167, 18166, 18165, 18164, 18163, 18162, 18161, 18160, 18159, 18158, 18157, 18156, 18155, 18154, 18153, 18152, 18151, 18150, 18149, 18148, 18147, 18146, 18145, 18144, 18143, 18142, 18141, 18140, 18139, 18138, 18137, 18136, 18135, 18134, 18133, 18132, 18131, 18130, 18129, 18128, 18127, 18126, 18125, 18124, 18123, 18122, 18121, 18120, 18119, 18118, 18117, 18116, 18115, 18114, 18113, 18112, 18111, 18110, 18109, 18108, 18107, 18106, 18105, 18104, 18103, 18102, 18101, 18100, 18099, 18098, 18097, 18096, 18095, 18094, 18093, 18092, 18091, 18090, 18089, 18088, 18087, 18086, 18085, 18084, 18083, 18082, 18081, 18080, 18079, 18078, 18077, 18076, 18075, 18074, 18073, 18072, 18071, 18070, 18069, 18068, 18067, 18066, 18065, 18064, 18063, 18062, 18061, 18060, 18059, 18058, 18057, 18056, 18055, 18054, 18053, 18052, 18051, 18050, 18049, 18048, 18047, 18046, 18045, 18044, 18043, 18042, 18041, 18040, 18039, 18038, 18037, 18036, 18035, 18034, 18033, 18032, 18031, 18030, 18029, 18028, 18027, 18026, 18025, 18024, 18023, 18022, 18021, 18020, 18019, 18018, 18017, 18016, 18015, 18014, 18013, 18012, 18011, 18010, 18009, 18008, 18007, 18006, 18005, 18004, 18003, 18002, 18001, 18000, 17999, 17998, 17997, 17996, 17995, 17994, 17993, 17992, 17991, 17990, 17989, 17988, 17987, 17986, 17985, 17984, 17983, 17982, 17981, 17980, 17979, 17978, 17977, 17976, 17975, 17974, 17973, 17972, 17971, 17970, 17969, 17968, 17967, 17966, 17965, 17964, 17963, 17962, 17961, 17960, 17959, 17958, 17957, 17956, 17955, 17954, 17953, 17952, 17951, 17950, 17949, 17948, 17947, 17946, 17945, 17944, 17943, 17942, 17941, 17940, 17939, 17938, 17937, 17936, 17935, 17934, 17933, 17932, 17931, 17930, 17929, 17928, 17927, 17926, 17925, 17924, 17923, 17922, 17921, 17920, 17919, 17918, 17917, 17916, 17915, 17914, 17913, 17912, 17911, 17910, 17909, 17908, 17907, 17906, 17905, 17904, 17903, 17902, 17901, 17900, 17899, 17898, 17897, 17896, 17895, 17894, 17893, 17892, 17891, 17890, 17889, 17888, 17887, 17886, 17885, 17884, 17883, 17882, 17881, 17880, 17879, 17878, 17877, 17876, 17875, 17874, 17873, 17872, 17871, 17870, 17869, 17868, 17867, 17866, 17865, 17864, 17863, 17862, 17861, 17860, 17859, 17858, 17857, 17856, 17855, 17854, 17853, 17852, 17851, 17850, 17849, 17848, 17847, 17846, 17845, 17844, 17843, 17842, 17841, 17840, 17839, 17838, 17837, 17836, 17835, 17834, 17833, 17832, 17831, 17830, 17829, 17828, 17827, 17826, 17825, 17824, 17823, 17822, 17821, 17820, 17819, 17818, 17817, 17816, 17815, 17814, 17813, 17812, 17811, 17810, 17809, 17808, 17807, 17806, 17805, 17804, 17803, 17802, 17801, 17800, 17799, 17798, 17797, 17796, 17795, 17794, 17793, 17792, 17791, 17790, 17789, 17788, 17787, 17786, 17785, 17784, 17783, 17782, 17781, 17780, 17779, 17778, 17777, 17776, 17775, 17774, 17773, 17772, 17771, 17770, 17769, 17768, 17767, 17766, 17765, 17764, 17763, 17762, 17761, 17760, 17759, 17758, 17757, 17756, 17755, 17754, 17753, 17752, 17751, 17750, 17749, 17748, 17747, 17746, 17745, 17744, 17743, 17742, 17741, 17740, 17739, 17738, 17737, 17736, 17735, 17734, 17733, 17732, 17731, 17730, 17729, 17728, 17727, 17726, 17725, 17724, 17723, 17722, 17721, 17720, 17719, 17718, 17717, 17716, 17715, 17714, 17713, 17712, 17711, 17710, 17709, 17708, 17707, 17706, 17705, 17704, 17703, 17702, 17701, 17700, 17699, 17698, 17697, 17696, 17695, 17694, 17693, 17692, 17691, 17690, 17689, 17688, 17687, 17686, 17685, 17684, 17683, 17682, 17681, 17680, 17679, 17678, 17677, 17676, 17675, 17674, 17673, 17672, 17671, 17670, 17669, 17668, 17667, 17666, 17665, 17664, 17663, 17662, 17661, 17660, 17659, 17658, 17657, 17656, 17655, 17654, 17653, 17652, 17651, 17650, 17649, 17648, 17647, 17646, 17645, 17644, 17643, 17642, 17641, 17640, 17639, 17638, 17637, 17636, 17635, 17634, 17633, 17632, 17631, 17630, 17629, 17628, 17627, 17626, 17625, 17624, 17623, 17622, 17621, 17620, 17619, 17618, 17617, 17616, 17615, 17614, 17613, 17612, 17611, 17610, 17609, 17608, 17607, 17606, 17605, 17604, 17603, 17602, 17601, 17600, 17599, 17598, 17597, 17596, 17595, 17594, 17593, 17592, 17591, 17590, 17589, 17588, 17587, 17586, 17585, 17584, 17583, 17582, 17581, 17580, 17579, 17578, 17577, 17576, 17575, 17574, 17573, 17572, 17571, 17570, 17569, 17568, 17567, 17566, 17565, 17564, 17563, 17562, 17561, 17560, 17559, 17558, 17557, 17556, 17555, 17554, 17553, 17552, 17551, 17550, 17549, 17548, 17547, 17546, 17545, 17544, 17543, 17542, 17541, 17540, 17539, 17538, 17537, 17536, 17535, 17534, 17533, 17532, 17531, 17530, 17529, 17528, 17527, 17526, 17525, 17524, 17523, 17522, 17521, 17520, 17519, 17518, 17517, 17516, 17515, 17514, 17513, 17512, 17511, 17510, 17509, 17508, 17507, 17506, 17505, 17504, 17503, 17502, 17501, 17500, 17499, 17498, 17497, 17496, 17495, 17494, 17493, 17492, 17491, 17490, 17489, 17488, 17487, 17486, 17485, 17484, 17483, 17482, 17481, 17480, 17479, 17478, 17477, 17476, 17475, 17474, 17473, 17472, 17471, 17470, 17469, 17468, 17467, 17466, 17465, 17464, 17463, 17462, 17461, 17460, 17459, 17458, 17457, 17456, 17455, 17454, 17453, 17452, 17451, 17450, 17449, 17448, 17447, 17446, 17445, 17444, 17443, 17442, 17441, 17440, 17439, 17438, 17437, 17436, 17435, 17434, 17433, 17432, 17431, 17430, 17429, 17428, 17427, 17426, 17425, 17424, 17423, 17422, 17421, 17420, 17419, 17418, 17417, 17416, 17415, 17414, 17413, 17412, 17411, 17410, 17409, 17408, 17407, 17406, 17405, 17404, 17403, 17402, 17401, 17400, 17399, 17398, 17397, 17396, 17395, 17394, 17393, 17392, 17391, 17390, 17389, 17388, 17387, 17386, 17385, 17384, 17383, 17382, 17381, 17380, 17379, 17378, 17377, 17376, 17375, 17374, 17373, 17372, 17371, 17370, 17369, 17368, 17367, 17366, 17365, 17364, 17363, 17362, 17361, 17360, 17359, 17358, 17357, 17356, 17355, 17354, 17353, 17352, 17351, 17350, 17349, 17348, 17347, 17346, 17345, 17344, 17343, 17342, 17341, 17340, 17339, 17338, 17337, 17336, 17335, 17334, 17333, 17332, 17331, 17330, 17329, 17328, 17327, 17326, 17325, 17324, 17323, 17322, 17321, 17320, 17319, 17318, 17317, 17316, 17315, 17314, 17313, 17312, 17311, 17310, 17309, 17308, 17307, 17306, 17305, 17304, 17303, 17302, 17301, 17300, 17299, 17298, 17297, 17296, 17295, 17294, 17293, 17292, 17291, 17290, 17289, 17288, 17287, 17286, 17285, 17284, 17283, 17282, 17281, 17280, 17279, 17278, 17277, 17276, 17275, 17274, 17273, 17272, 17271, 17270, 17269, 17268, 17267, 17266, 17265, 17264, 17263, 17262, 17261, 17260, 17259, 17258, 17257, 17256, 17255, 17254, 17253, 17252, 17251, 17250, 17249, 17248, 17247, 17246, 17245, 17244, 17243, 17242, 17241, 17240, 17239, 17238, 17237, 17236, 17235, 17234, 17233, 17232, 17231, 17230, 17229, 17228, 17227, 17226, 17225, 17224, 17223, 17222, 17221, 17220, 17219, 17218, 17217, 17216, 17215, 17214, 17213, 17212, 17211, 17210, 17209, 17208, 17207, 17206, 17205, 17204, 17203, 17202, 17201, 17200, 17199, 17198, 17197, 17196, 17195, 17194, 17193, 17192, 17191, 17190, 17189, 17188, 17187, 17186, 17185, 17184, 17183, 17182, 17181, 17180, 17179, 17178, 17177, 17176, 17175, 17174, 17173, 17172, 17171, 17170, 17169, 17168, 17167, 17166, 17165, 17164, 17163, 17162, 17161, 17160, 17159, 17158, 17157, 17156, 17155, 17154, 17153, 17152, 17151, 17150, 17149, 17148, 17147, 17146, 17145, 17144, 17143, 17142, 17141, 17140, 17139, 17138, 17137, 17136, 17135, 17134, 17133, 17132, 17131, 17130, 17129, 17128, 17127, 17126, 17125, 17124, 17123, 17122, 17121, 17120, 17119, 17118, 17117, 17116, 17115, 17114, 17113, 17112, 17111, 17110, 17109, 17108, 17107, 17106, 17105, 17104, 17103, 17102, 17101, 17100, 17099, 17098, 17097, 17096, 17095, 17094, 17093, 17092, 17091, 17090, 17089, 17088, 17087, 17086, 17085, 17084, 17083, 17082, 17081, 17080, 17079, 17078, 17077, 17076, 17075, 17074, 17073, 17072, 17071, 17070, 17069, 17068, 17067, 17066, 17065, 17064, 17063, 17062, 17061, 17060, 17059, 17058, 17057, 17056, 17055, 17054, 17053, 17052, 17051, 17050, 17049, 17048, 17047, 17046, 17045, 17044, 17043, 17042, 17041, 17040, 17039, 17038, 17037, 17036, 17035, 17034, 17033, 17032, 17031, 17030, 17029, 17028, 17027, 17026, 17025, 17024, 17023, 17022, 17021, 17020, 17019, 17018, 17017, 17016, 17015, 17014, 17013, 17012, 17011, 17010, 17009, 17008, 17007, 17006, 17005, 17004, 17003, 17002, 17001, 17000, 16999, 16998, 16997, 16996, 16995, 16994, 16993, 16992, 16991, 16990, 16989, 16988, 16987, 16986, 16985, 16984, 16983, 16982, 16981, 16980, 16979, 16978, 16977, 16976, 16975, 16974, 16973, 16972, 16971, 16970, 16969, 16968, 16967, 16966, 16965, 16964, 16963, 16962, 16961, 16960, 16959, 16958, 16957, 16956, 16955, 16954, 16953, 16952, 16951, 16950, 16949, 16948, 16947, 16946, 16945, 16944, 16943, 16942, 16941, 16940, 16939, 16938, 16937, 16936, 16935, 16934, 16933, 16932, 16931, 16930, 16929, 16928, 16927, 16926, 16925, 16924, 16923, 16922, 16921, 16920, 16919, 16918, 16917, 16916, 16915, 16914, 16913, 16912, 16911, 16910, 16909, 16908, 16907, 16906, 16905, 16904, 16903, 16902, 16901, 16900, 16899, 16898, 16897, 16896, 16895, 16894, 16893, 16892, 16891, 16890, 16889, 16888, 16887, 16886, 16885, 16884, 16883, 16882, 16881, 16880, 16879, 16878, 16877, 16876, 16875, 16874, 16873, 16872, 16871, 16870, 16869, 16868, 16867, 16866, 16865, 16864, 16863, 16862, 16861, 16860, 16859, 16858, 16857, 16856, 16855, 16854, 16853, 16852, 16851, 16850, 16849, 16848, 16847, 16846, 16845, 16844, 16843, 16842, 16841, 16840, 16839, 16838, 16837, 16836, 16835, 16834, 16833, 16832, 16831, 16830, 16829, 16828, 16827, 16826, 16825, 16824, 16823, 16822, 16821, 16820, 16819, 16818, 16817, 16816, 16815, 16814, 16813, 16812, 16811, 16810, 16809, 16808, 16807, 16806, 16805, 16804, 16803, 16802, 16801, 16800, 16799, 16798, 16797, 16796, 16795, 16794, 16793, 16792, 16791, 16790, 16789, 16788, 16787, 16786, 16785, 16784, 16783, 16782, 16781, 16780, 16779, 16778, 16777, 16776, 16775, 16774, 16773, 16772, 16771, 16770, 16769, 16768, 16767, 16766, 16765, 16764, 16763, 16762, 16761, 16760, 16759, 16758, 16757, 16756, 16755, 16754, 16753, 16752, 16751, 16750, 16749, 16748, 16747, 16746, 16745, 16744, 16743, 16742, 16741, 16740, 16739, 16738, 16737, 16736, 16735, 16734, 16733, 16732, 16731, 16730, 16729, 16728, 16727, 16726, 16725, 16724, 16723, 16722, 16721, 16720, 16719, 16718, 16717, 16716, 16715, 16714, 16713, 16712, 16711, 16710, 16709, 16708, 16707, 16706, 16705, 16704, 16703, 16702, 16701, 16700, 16699, 16698, 16697, 16696, 16695, 16694, 16693, 16692, 16691, 16690, 16689, 16688, 16687, 16686, 16685, 16684, 16683, 16682, 16681, 16680, 16679, 16678, 16677, 16676, 16675, 16674, 16673, 16672, 16671, 16670, 16669, 16668, 16667, 16666, 16665, 16664, 16663, 16662, 16661, 16660, 16659, 16658, 16657, 16656, 16655, 16654, 16653, 16652, 16651, 16650, 16649, 16648, 16647, 16646, 16645, 16644, 16643, 16642, 16641, 16640, 16639, 16638, 16637, 16636, 16635, 16634, 16633, 16632, 16631, 16630, 16629, 16628, 16627, 16626, 16625, 16624, 16623, 16622, 16621, 16620, 16619, 16618, 16617, 16616, 16615, 16614, 16613, 16612, 16611, 16610, 16609, 16608, 16607, 16606, 16605, 16604, 16603, 16602, 16601, 16600, 16599, 16598, 16597, 16596, 16595, 16594, 16593, 16592, 16591, 16590, 16589, 16588, 16587, 16586, 16585, 16584, 16583, 16582, 16581, 16580, 16579, 16578, 16577, 16576, 16575, 16574, 16573, 16572, 16571, 16570, 16569, 16568, 16567, 16566, 16565, 16564, 16563, 16562, 16561, 16560, 16559, 16558, 16557, 16556, 16555, 16554, 16553, 16552, 16551, 16550, 16549, 16548, 16547, 16546, 16545, 16544, 16543, 16542, 16541, 16540, 16539, 16538, 16537, 16536, 16535, 16534, 16533, 16532, 16531, 16530, 16529, 16528, 16527, 16526, 16525, 16524, 16523, 16522, 16521, 16520, 16519, 16518, 16517, 16516, 16515, 16514, 16513, 16512, 16511, 16510, 16509, 16508, 16507, 16506, 16505, 16504, 16503, 16502, 16501, 16500, 16499, 16498, 16497, 16496, 16495, 16494, 16493, 16492, 16491, 16490, 16489, 16488, 16487, 16486, 16485, 16484, 16483, 16482, 16481, 16480, 16479, 16478, 16477, 16476, 16475, 16474, 16473, 16472, 16471, 16470, 16469, 16468, 16467, 16466, 16465, 16464, 16463, 16462, 16461, 16460, 16459, 16458, 16457, 16456, 16455, 16454, 16453, 16452, 16451, 16450, 16449, 16448, 16447, 16446, 16445, 16444, 16443, 16442, 16441, 16440, 16439, 16438, 16437, 16436, 16435, 16434, 16433, 16432, 16431, 16430, 16429, 16428, 16427, 16426, 16425, 16424, 16423, 16422, 16421, 16420, 16419, 16418, 16417, 16416, 16415, 16414, 16413, 16412, 16411, 16410, 16409, 16408, 16407, 16406, 16405, 16404, 16403, 16402, 16401, 16400, 16399, 16398, 16397, 16396, 16395, 16394, 16393, 16392, 16391, 16390, 16389, 16388, 16387, 16386, 16385, 16384, 16383, 16382, 16381, 16380, 16379, 16378, 16377, 16376, 16375, 16374, 16373, 16372, 16371, 16370, 16369, 16368, 16367, 16366, 16365, 16364, 16363, 16362, 16361, 16360, 16359, 16358, 16357, 16356, 16355, 16354, 16353, 16352, 16351, 16350, 16349, 16348, 16347, 16346, 16345, 16344, 16343, 16342, 16341, 16340, 16339, 16338, 16337, 16336, 16335, 16334, 16333, 16332, 16331, 16330, 16329, 16328, 16327, 16326, 16325, 16324, 16323, 16322, 16321, 16320, 16319, 16318, 16317, 16316, 16315, 16314, 16313, 16312, 16311, 16310, 16309, 16308, 16307, 16306, 16305, 16304, 16303, 16302, 16301, 16300, 16299, 16298, 16297, 16296, 16295, 16294, 16293, 16292, 16291, 16290, 16289, 16288, 16287, 16286, 16285, 16284, 16283, 16282, 16281, 16280, 16279, 16278, 16277, 16276, 16275, 16274, 16273, 16272, 16271, 16270, 16269, 16268, 16267, 16266, 16265, 16264, 16263, 16262, 16261, 16260, 16259, 16258, 16257, 16256, 16255, 16254, 16253, 16252, 16251, 16250, 16249, 16248, 16247, 16246, 16245, 16244, 16243, 16242, 16241, 16240, 16239, 16238, 16237, 16236, 16235, 16234, 16233, 16232, 16231, 16230, 16229, 16228, 16227, 16226, 16225, 16224, 16223, 16222, 16221, 16220, 16219, 16218, 16217, 16216, 16215, 16214, 16213, 16212, 16211, 16210, 16209, 16208, 16207, 16206, 16205, 16204, 16203, 16202, 16201, 16200, 16199, 16198, 16197, 16196, 16195, 16194, 16193, 16192, 16191, 16190, 16189, 16188, 16187, 16186, 16185, 16184, 16183, 16182, 16181, 16180, 16179, 16178, 16177, 16176, 16175, 16174, 16173, 16172, 16171, 16170, 16169, 16168, 16167, 16166, 16165, 16164, 16163, 16162, 16161, 16160, 16159, 16158, 16157, 16156, 16155, 16154, 16153, 16152, 16151, 16150, 16149, 16148, 16147, 16146, 16145, 16144, 16143, 16142, 16141, 16140, 16139, 16138, 16137, 16136, 16135, 16134, 16133, 16132, 16131, 16130, 16129, 16128, 16127, 16126, 16125, 16124, 16123, 16122, 16121, 16120, 16119, 16118, 16117, 16116, 16115, 16114, 16113, 16112, 16111, 16110, 16109, 16108, 16107, 16106, 16105, 16104, 16103, 16102, 16101, 16100, 16099, 16098, 16097, 16096, 16095, 16094, 16093, 16092, 16091, 16090, 16089, 16088, 16087, 16086, 16085, 16084, 16083, 16082, 16081, 16080, 16079, 16078, 16077, 16076, 16075, 16074, 16073, 16072, 16071, 16070, 16069, 16068, 16067, 16066, 16065, 16064, 16063, 16062, 16061, 16060, 16059, 16058, 16057, 16056, 16055, 16054, 16053, 16052, 16051, 16050, 16049, 16048, 16047, 16046, 16045, 16044, 16043, 16042, 16041, 16040, 16039, 16038, 16037, 16036, 16035, 16034, 16033, 16032, 16031, 16030, 16029, 16028, 16027, 16026, 16025, 16024, 16023, 16022, 16021, 16020, 16019, 16018, 16017, 16016, 16015, 16014, 16013, 16012, 16011, 16010, 16009, 16008, 16007, 16006, 16005, 16004, 16003, 16002, 16001, 16000, 15999, 15998, 15997, 15996, 15995, 15994, 15993, 15992, 15991, 15990, 15989, 15988, 15987, 15986, 15985, 15984, 15983, 15982, 15981, 15980, 15979, 15978, 15977, 15976, 15975, 15974, 15973, 15972, 15971, 15970, 15969, 15968, 15967, 15966, 15965, 15964, 15963, 15962, 15961, 15960, 15959, 15958, 15957, 15956, 15955, 15954, 15953, 15952, 15951, 15950, 15949, 15948, 15947, 15946, 15945, 15944, 15943, 15942, 15941, 15940, 15939, 15938, 15937, 15936, 15935, 15934, 15933, 15932, 15931, 15930, 15929, 15928, 15927, 15926, 15925, 15924, 15923, 15922, 15921, 15920, 15919, 15918, 15917, 15916, 15915, 15914, 15913, 15912, 15911, 15910, 15909, 15908, 15907, 15906, 15905, 15904, 15903, 15902, 15901, 15900, 15899, 15898, 15897, 15896, 15895, 15894, 15893, 15892, 15891, 15890, 15889, 15888, 15887, 15886, 15885, 15884, 15883, 15882, 15881, 15880, 15879, 15878, 15877, 15876, 15875, 15874, 15873, 15872, 15871, 15870, 15869, 15868, 15867, 15866, 15865, 15864, 15863, 15862, 15861, 15860, 15859, 15858, 15857, 15856, 15855, 15854, 15853, 15852, 15851, 15850, 15849, 15848, 15847, 15846, 15845, 15844, 15843, 15842, 15841, 15840, 15839, 15838, 15837, 15836, 15835, 15834, 15833, 15832, 15831, 15830, 15829, 15828, 15827, 15826, 15825, 15824, 15823, 15822, 15821, 15820, 15819, 15818, 15817, 15816, 15815, 15814, 15813, 15812, 15811, 15810, 15809, 15808, 15807, 15806, 15805, 15804, 15803, 15802, 15801, 15800, 15799, 15798, 15797, 15796, 15795, 15794, 15793, 15792, 15791, 15790, 15789, 15788, 15787, 15786, 15785, 15784, 15783, 15782, 15781, 15780, 15779, 15778, 15777, 15776, 15775, 15774, 15773, 15772, 15771, 15770, 15769, 15768, 15767, 15766, 15765, 15764, 15763, 15762, 15761, 15760, 15759, 15758, 15757, 15756, 15755, 15754, 15753, 15752, 15751, 15750, 15749, 15748, 15747, 15746, 15745, 15744, 15743, 15742, 15741, 15740, 15739, 15738, 15737, 15736, 15735, 15734, 15733, 15732, 15731, 15730, 15729, 15728, 15727, 15726, 15725, 15724, 15723, 15722, 15721, 15720, 15719, 15718, 15717, 15716, 15715, 15714, 15713, 15712, 15711, 15710, 15709, 15708, 15707, 15706, 15705, 15704, 15703, 15702, 15701, 15700, 15699, 15698, 15697, 15696, 15695, 15694, 15693, 15692, 15691, 15690, 15689, 15688, 15687, 15686, 15685, 15684, 15683, 15682, 15681, 15680, 15679, 15678, 15677, 15676, 15675, 15674, 15673, 15672, 15671, 15670, 15669, 15668, 15667, 15666, 15665, 15664, 15663, 15662, 15661, 15660, 15659, 15658, 15657, 15656, 15655, 15654, 15653, 15652, 15651, 15650, 15649, 15648, 15647, 15646, 15645, 15644, 15643, 15642, 15641, 15640, 15639, 15638, 15637, 15636, 15635, 15634, 15633, 15632, 15631, 15630, 15629, 15628, 15627, 15626, 15625, 15624, 15623, 15622, 15621, 15620, 15619, 15618, 15617, 15616, 15615, 15614, 15613, 15612, 15611, 15610, 15609, 15608, 15607, 15606, 15605, 15604, 15603, 15602, 15601, 15600, 15599, 15598, 15597, 15596, 15595, 15594, 15593, 15592, 15591, 15590, 15589, 15588, 15587, 15586, 15585, 15584, 15583, 15582, 15581, 15580, 15579, 15578, 15577, 15576, 15575, 15574, 15573, 15572, 15571, 15570, 15569, 15568, 15567, 15566, 15565, 15564, 15563, 15562, 15561, 15560, 15559, 15558, 15557, 15556, 15555, 15554, 15553, 15552, 15551, 15550, 15549, 15548, 15547, 15546, 15545, 15544, 15543, 15542, 15541, 15540, 15539, 15538, 15537, 15536, 15535, 15534, 15533, 15532, 15531, 15530, 15529, 15528, 15527, 15526, 15525, 15524, 15523, 15522, 15521, 15520, 15519, 15518, 15517, 15516, 15515, 15514, 15513, 15512, 15511, 15510, 15509, 15508, 15507, 15506, 15505, 15504, 15503, 15502, 15501, 15500, 15499, 15498, 15497, 15496, 15495, 15494, 15493, 15492, 15491, 15490, 15489, 15488, 15487, 15486, 15485, 15484, 15483, 15482, 15481, 15480, 15479, 15478, 15477, 15476, 15475, 15474, 15473, 15472, 15471, 15470, 15469, 15468, 15467, 15466, 15465, 15464, 15463, 15462, 15461, 15460, 15459, 15458, 15457, 15456, 15455, 15454, 15453, 15452, 15451, 15450, 15449, 15448, 15447, 15446, 15445, 15444, 15443, 15442, 15441, 15440, 15439, 15438, 15437, 15436, 15435, 15434, 15433, 15432, 15431, 15430, 15429, 15428, 15427, 15426, 15425, 15424, 15423, 15422, 15421, 15420, 15419, 15418, 15417, 15416, 15415, 15414, 15413, 15412, 15411, 15410, 15409, 15408, 15407, 15406, 15405, 15404, 15403, 15402, 15401, 15400, 15399, 15398, 15397, 15396, 15395, 15394, 15393, 15392, 15391, 15390, 15389, 15388, 15387, 15386, 15385, 15384, 15383, 15382, 15381, 15380, 15379, 15378, 15377, 15376, 15375, 15374, 15373, 15372, 15371, 15370, 15369, 15368, 15367, 15366, 15365, 15364, 15363, 15362, 15361, 15360, 15359, 15358, 15357, 15356, 15355, 15354, 15353, 15352, 15351, 15350, 15349, 15348, 15347, 15346, 15345, 15344, 15343, 15342, 15341, 15340, 15339, 15338, 15337, 15336, 15335, 15334, 15333, 15332, 15331, 15330, 15329, 15328, 15327, 15326, 15325, 15324, 15323, 15322, 15321, 15320, 15319, 15318, 15317, 15316, 15315, 15314, 15313, 15312, 15311, 15310, 15309, 15308, 15307, 15306, 15305, 15304, 15303, 15302, 15301, 15300, 15299, 15298, 15297, 15296, 15295, 15294, 15293, 15292, 15291, 15290, 15289, 15288, 15287, 15286, 15285, 15284, 15283, 15282, 15281, 15280, 15279, 15278, 15277, 15276, 15275, 15274, 15273, 15272, 15271, 15270, 15269, 15268, 15267, 15266, 15265, 15264, 15263, 15262, 15261, 15260, 15259, 15258, 15257, 15256, 15255, 15254, 15253, 15252, 15251, 15250, 15249, 15248, 15247, 15246, 15245, 15244, 15243, 15242, 15241, 15240, 15239, 15238, 15237, 15236, 15235, 15234, 15233, 15232, 15231, 15230, 15229, 15228, 15227, 15226, 15225, 15224, 15223, 15222, 15221, 15220, 15219, 15218, 15217, 15216, 15215, 15214, 15213, 15212, 15211, 15210, 15209, 15208, 15207, 15206, 15205, 15204, 15203, 15202, 15201, 15200, 15199, 15198, 15197, 15196, 15195, 15194, 15193, 15192, 15191, 15190, 15189, 15188, 15187, 15186, 15185, 15184, 15183, 15182, 15181, 15180, 15179, 15178, 15177, 15176, 15175, 15174, 15173, 15172, 15171, 15170, 15169, 15168, 15167, 15166, 15165, 15164, 15163, 15162, 15161, 15160, 15159, 15158, 15157, 15156, 15155, 15154, 15153, 15152, 15151, 15150, 15149, 15148, 15147, 15146, 15145, 15144, 15143, 15142, 15141, 15140, 15139, 15138, 15137, 15136, 15135, 15134, 15133, 15132, 15131, 15130, 15129, 15128, 15127, 15126, 15125, 15124, 15123, 15122, 15121, 15120, 15119, 15118, 15117, 15116, 15115, 15114, 15113, 15112, 15111, 15110, 15109, 15108, 15107, 15106, 15105, 15104, 15103, 15102, 15101, 15100, 15099, 15098, 15097, 15096, 15095, 15094, 15093, 15092, 15091, 15090, 15089, 15088, 15087, 15086, 15085, 15084, 15083, 15082, 15081, 15080, 15079, 15078, 15077, 15076, 15075, 15074, 15073, 15072, 15071, 15070, 15069, 15068, 15067, 15066, 15065, 15064, 15063, 15062, 15061, 15060, 15059, 15058, 15057, 15056, 15055, 15054, 15053, 15052, 15051, 15050, 15049, 15048, 15047, 15046, 15045, 15044, 15043, 15042, 15041, 15040, 15039, 15038, 15037, 15036, 15035, 15034, 15033, 15032, 15031, 15030, 15029, 15028, 15027, 15026, 15025, 15024, 15023, 15022, 15021, 15020, 15019, 15018, 15017, 15016, 15015, 15014, 15013, 15012, 15011, 15010, 15009, 15008, 15007, 15006, 15005, 15004, 15003, 15002, 15001, 15000, 14999, 14998, 14997, 14996, 14995, 14994, 14993, 14992, 14991, 14990, 14989, 14988, 14987, 14986, 14985, 14984, 14983, 14982, 14981, 14980, 14979, 14978, 14977, 14976, 14975, 14974, 14973, 14972, 14971, 14970, 14969, 14968, 14967, 14966, 14965, 14964, 14963, 14962, 14961, 14960, 14959, 14958, 14957, 14956, 14955, 14954, 14953, 14952, 14951, 14950, 14949, 14948, 14947, 14946, 14945, 14944, 14943, 14942, 14941, 14940, 14939, 14938, 14937, 14936, 14935, 14934, 14933, 14932, 14931, 14930, 14929, 14928, 14927, 14926, 14925, 14924, 14923, 14922, 14921, 14920, 14919, 14918, 14917, 14916, 14915, 14914, 14913, 14912, 14911, 14910, 14909, 14908, 14907, 14906, 14905, 14904, 14903, 14902, 14901, 14900, 14899, 14898, 14897, 14896, 14895, 14894, 14893, 14892, 14891, 14890, 14889, 14888, 14887, 14886, 14885, 14884, 14883, 14882, 14881, 14880, 14879, 14878, 14877, 14876, 14875, 14874, 14873, 14872, 14871, 14870, 14869, 14868, 14867, 14866, 14865, 14864, 14863, 14862, 14861, 14860, 14859, 14858, 14857, 14856, 14855, 14854, 14853, 14852, 14851, 14850, 14849, 14848, 14847, 14846, 14845, 14844, 14843, 14842, 14841, 14840, 14839, 14838, 14837, 14836, 14835, 14834, 14833, 14832, 14831, 14830, 14829, 14828, 14827, 14826, 14825, 14824, 14823, 14822, 14821, 14820, 14819, 14818, 14817, 14816, 14815, 14814, 14813, 14812, 14811, 14810, 14809, 14808, 14807, 14806, 14805, 14804, 14803, 14802, 14801, 14800, 14799, 14798, 14797, 14796, 14795, 14794, 14793, 14792, 14791, 14790, 14789, 14788, 14787, 14786, 14785, 14784, 14783, 14782, 14781, 14780, 14779, 14778, 14777, 14776, 14775, 14774, 14773, 14772, 14771, 14770, 14769, 14768, 14767, 14766, 14765, 14764, 14763, 14762, 14761, 14760, 14759, 14758, 14757, 14756, 14755, 14754, 14753, 14752, 14751, 14750, 14749, 14748, 14747, 14746, 14745, 14744, 14743, 14742, 14741, 14740, 14739, 14738, 14737, 14736, 14735, 14734, 14733, 14732, 14731, 14730, 14729, 14728, 14727, 14726, 14725, 14724, 14723, 14722, 14721, 14720, 14719, 14718, 14717, 14716, 14715, 14714, 14713, 14712, 14711, 14710, 14709, 14708, 14707, 14706, 14705, 14704, 14703, 14702, 14701, 14700, 14699, 14698, 14697, 14696, 14695, 14694, 14693, 14692, 14691, 14690, 14689, 14688, 14687, 14686, 14685, 14684, 14683, 14682, 14681, 14680, 14679, 14678, 14677, 14676, 14675, 14674, 14673, 14672, 14671, 14670, 14669, 14668, 14667, 14666, 14665, 14664, 14663, 14662, 14661, 14660, 14659, 14658, 14657, 14656, 14655, 14654, 14653, 14652, 14651, 14650, 14649, 14648, 14647, 14646, 14645, 14644, 14643, 14642, 14641, 14640, 14639, 14638, 14637, 14636, 14635, 14634, 14633, 14632, 14631, 14630, 14629, 14628, 14627, 14626, 14625, 14624, 14623, 14622, 14621, 14620, 14619, 14618, 14617, 14616, 14615, 14614, 14613, 14612, 14611, 14610, 14609, 14608, 14607, 14606, 14605, 14604, 14603, 14602, 14601, 14600, 14599, 14598, 14597, 14596, 14595, 14594, 14593, 14592, 14591, 14590, 14589, 14588, 14587, 14586, 14585, 14584, 14583, 14582, 14581, 14580, 14579, 14578, 14577, 14576, 14575, 14574, 14573, 14572, 14571, 14570, 14569, 14568, 14567, 14566, 14565, 14564, 14563, 14562, 14561, 14560, 14559, 14558, 14557, 14556, 14555, 14554, 14553, 14552, 14551, 14550, 14549, 14548, 14547, 14546, 14545, 14544, 14543, 14542, 14541, 14540, 14539, 14538, 14537, 14536, 14535, 14534, 14533, 14532, 14531, 14530, 14529, 14528, 14527, 14526, 14525, 14524, 14523, 14522, 14521, 14520, 14519, 14518, 14517, 14516, 14515, 14514, 14513, 14512, 14511, 14510, 14509, 14508, 14507, 14506, 14505, 14504, 14503, 14502, 14501, 14500, 14499, 14498, 14497, 14496, 14495, 14494, 14493, 14492, 14491, 14490, 14489, 14488, 14487, 14486, 14485, 14484, 14483, 14482, 14481, 14480, 14479, 14478, 14477, 14476, 14475, 14474, 14473, 14472, 14471, 14470, 14469, 14468, 14467, 14466, 14465, 14464, 14463, 14462, 14461, 14460, 14459, 14458, 14457, 14456, 14455, 14454, 14453, 14452, 14451, 14450, 14449, 14448, 14447, 14446, 14445, 14444, 14443, 14442, 14441, 14440, 14439, 14438, 14437, 14436, 14435, 14434, 14433, 14432, 14431, 14430, 14429, 14428, 14427, 14426, 14425, 14424, 14423, 14422, 14421, 14420, 14419, 14418, 14417, 14416, 14415, 14414, 14413, 14412, 14411, 14410, 14409, 14408, 14407, 14406, 14405, 14404, 14403, 14402, 14401, 14400, 14399, 14398, 14397, 14396, 14395, 14394, 14393, 14392, 14391, 14390, 14389, 14388, 14387, 14386, 14385, 14384, 14383, 14382, 14381, 14380, 14379, 14378, 14377, 14376, 14375, 14374, 14373, 14372, 14371, 14370, 14369, 14368, 14367, 14366, 14365, 14364, 14363, 14362, 14361, 14360, 14359, 14358, 14357, 14356, 14355, 14354, 14353, 14352, 14351, 14350, 14349, 14348, 14347, 14346, 14345, 14344, 14343, 14342, 14341, 14340, 14339, 14338, 14337, 14336, 14335, 14334, 14333, 14332, 14331, 14330, 14329, 14328, 14327, 14326, 14325, 14324, 14323, 14322, 14321, 14320, 14319, 14318, 14317, 14316, 14315, 14314, 14313, 14312, 14311, 14310, 14309, 14308, 14307, 14306, 14305, 14304, 14303, 14302, 14301, 14300, 14299, 14298, 14297, 14296, 14295, 14294, 14293, 14292, 14291, 14290, 14289, 14288, 14287, 14286, 14285, 14284, 14283, 14282, 14281, 14280, 14279, 14278, 14277, 14276, 14275, 14274, 14273, 14272, 14271, 14270, 14269, 14268, 14267, 14266, 14265, 14264, 14263, 14262, 14261, 14260, 14259, 14258, 14257, 14256, 14255, 14254, 14253, 14252, 14251, 14250, 14249, 14248, 14247, 14246, 14245, 14244, 14243, 14242, 14241, 14240, 14239, 14238, 14237, 14236, 14235, 14234, 14233, 14232, 14231, 14230, 14229, 14228, 14227, 14226, 14225, 14224, 14223, 14222, 14221, 14220, 14219, 14218, 14217, 14216, 14215, 14214, 14213, 14212, 14211, 14210, 14209, 14208, 14207, 14206, 14205, 14204, 14203, 14202, 14201, 14200, 14199, 14198, 14197, 14196, 14195, 14194, 14193, 14192, 14191, 14190, 14189, 14188, 14187, 14186, 14185, 14184, 14183, 14182, 14181, 14180, 14179, 14178, 14177, 14176, 14175, 14174, 14173, 14172, 14171, 14170, 14169, 14168, 14167, 14166, 14165, 14164, 14163, 14162, 14161, 14160, 14159, 14158, 14157, 14156, 14155, 14154, 14153, 14152, 14151, 14150, 14149, 14148, 14147, 14146, 14145, 14144, 14143, 14142, 14141, 14140, 14139, 14138, 14137, 14136, 14135, 14134, 14133, 14132, 14131, 14130, 14129, 14128, 14127, 14126, 14125, 14124, 14123, 14122, 14121, 14120, 14119, 14118, 14117, 14116, 14115, 14114, 14113, 14112, 14111, 14110, 14109, 14108, 14107, 14106, 14105, 14104, 14103, 14102, 14101, 14100, 14099, 14098, 14097, 14096, 14095, 14094, 14093, 14092, 14091, 14090, 14089, 14088, 14087, 14086, 14085, 14084, 14083, 14082, 14081, 14080, 14079, 14078, 14077, 14076, 14075, 14074, 14073, 14072, 14071, 14070, 14069, 14068, 14067, 14066, 14065, 14064, 14063, 14062, 14061, 14060, 14059, 14058, 14057, 14056, 14055, 14054, 14053, 14052, 14051, 14050, 14049, 14048, 14047, 14046, 14045, 14044, 14043, 14042, 14041, 14040, 14039, 14038, 14037, 14036, 14035, 14034, 14033, 14032, 14031, 14030, 14029, 14028, 14027, 14026, 14025, 14024, 14023, 14022, 14021, 14020, 14019, 14018, 14017, 14016, 14015, 14014, 14013, 14012, 14011, 14010, 14009, 14008, 14007, 14006, 14005, 14004, 14003, 14002, 14001, 14000, 13999, 13998, 13997, 13996, 13995, 13994, 13993, 13992, 13991, 13990, 13989, 13988, 13987, 13986, 13985, 13984, 13983, 13982, 13981, 13980, 13979, 13978, 13977, 13976, 13975, 13974, 13973, 13972, 13971, 13970, 13969, 13968, 13967, 13966, 13965, 13964, 13963, 13962, 13961, 13960, 13959, 13958, 13957, 13956, 13955, 13954, 13953, 13952, 13951, 13950, 13949, 13948, 13947, 13946, 13945, 13944, 13943, 13942, 13941, 13940, 13939, 13938, 13937, 13936, 13935, 13934, 13933, 13932, 13931, 13930, 13929, 13928, 13927, 13926, 13925, 13924, 13923, 13922, 13921, 13920, 13919, 13918, 13917, 13916, 13915, 13914, 13913, 13912, 13911, 13910, 13909, 13908, 13907, 13906, 13905, 13904, 13903, 13902, 13901, 13900, 13899, 13898, 13897, 13896, 13895, 13894, 13893, 13892, 13891, 13890, 13889, 13888, 13887, 13886, 13885, 13884, 13883, 13882, 13881, 13880, 13879, 13878, 13877, 13876, 13875, 13874, 13873, 13872, 13871, 13870, 13869, 13868, 13867, 13866, 13865, 13864, 13863, 13862, 13861, 13860, 13859, 13858, 13857, 13856, 13855, 13854, 13853, 13852, 13851, 13850, 13849, 13848, 13847, 13846, 13845, 13844, 13843, 13842, 13841, 13840, 13839, 13838, 13837, 13836, 13835, 13834, 13833, 13832, 13831, 13830, 13829, 13828, 13827, 13826, 13825, 13824, 13823, 13822, 13821, 13820, 13819, 13818, 13817, 13816, 13815, 13814, 13813, 13812, 13811, 13810, 13809, 13808, 13807, 13806, 13805, 13804, 13803, 13802, 13801, 13800, 13799, 13798, 13797, 13796, 13795, 13794, 13793, 13792, 13791, 13790, 13789, 13788, 13787, 13786, 13785, 13784, 13783, 13782, 13781, 13780, 13779, 13778, 13777, 13776, 13775, 13774, 13773, 13772, 13771, 13770, 13769, 13768, 13767, 13766, 13765, 13764, 13763, 13762, 13761, 13760, 13759, 13758, 13757, 13756, 13755, 13754, 13753, 13752, 13751, 13750, 13749, 13748, 13747, 13746, 13745, 13744, 13743, 13742, 13741, 13740, 13739, 13738, 13737, 13736, 13735, 13734, 13733, 13732, 13731, 13730, 13729, 13728, 13727, 13726, 13725, 13724, 13723, 13722, 13721, 13720, 13719, 13718, 13717, 13716, 13715, 13714, 13713, 13712, 13711, 13710, 13709, 13708, 13707, 13706, 13705, 13704, 13703, 13702, 13701, 13700, 13699, 13698, 13697, 13696, 13695, 13694, 13693, 13692, 13691, 13690, 13689, 13688, 13687, 13686, 13685, 13684, 13683, 13682, 13681, 13680, 13679, 13678, 13677, 13676, 13675, 13674, 13673, 13672, 13671, 13670, 13669, 13668, 13667, 13666, 13665, 13664, 13663, 13662, 13661, 13660, 13659, 13658, 13657, 13656, 13655, 13654, 13653, 13652, 13651, 13650, 13649, 13648, 13647, 13646, 13645, 13644, 13643, 13642, 13641, 13640, 13639, 13638, 13637, 13636, 13635, 13634, 13633, 13632, 13631, 13630, 13629, 13628, 13627, 13626, 13625, 13624, 13623, 13622, 13621, 13620, 13619, 13618, 13617, 13616, 13615, 13614, 13613, 13612, 13611, 13610, 13609, 13608, 13607, 13606, 13605, 13604, 13603, 13602, 13601, 13600, 13599, 13598, 13597, 13596, 13595, 13594, 13593, 13592, 13591, 13590, 13589, 13588, 13587, 13586, 13585, 13584, 13583, 13582, 13581, 13580, 13579, 13578, 13577, 13576, 13575, 13574, 13573, 13572, 13571, 13570, 13569, 13568, 13567, 13566, 13565, 13564, 13563, 13562, 13561, 13560, 13559, 13558, 13557, 13556, 13555, 13554, 13553, 13552, 13551, 13550, 13549, 13548, 13547, 13546, 13545, 13544, 13543, 13542, 13541, 13540, 13539, 13538, 13537, 13536, 13535, 13534, 13533, 13532, 13531, 13530, 13529, 13528, 13527, 13526, 13525, 13524, 13523, 13522, 13521, 13520, 13519, 13518, 13517, 13516, 13515, 13514, 13513, 13512, 13511, 13510, 13509, 13508, 13507, 13506, 13505, 13504, 13503, 13502, 13501, 13500, 13499, 13498, 13497, 13496, 13495, 13494, 13493, 13492, 13491, 13490, 13489, 13488, 13487, 13486, 13485, 13484, 13483, 13482, 13481, 13480, 13479, 13478, 13477, 13476, 13475, 13474, 13473, 13472, 13471, 13470, 13469, 13468, 13467, 13466, 13465, 13464, 13463, 13462, 13461, 13460, 13459, 13458, 13457, 13456, 13455, 13454, 13453, 13452, 13451, 13450, 13449, 13448, 13447, 13446, 13445, 13444, 13443, 13442, 13441, 13440, 13439, 13438, 13437, 13436, 13435, 13434, 13433, 13432, 13431, 13430, 13429, 13428, 13427, 13426, 13425, 13424, 13423, 13422, 13421, 13420, 13419, 13418, 13417, 13416, 13415, 13414, 13413, 13412, 13411, 13410, 13409, 13408, 13407, 13406, 13405, 13404, 13403, 13402, 13401, 13400, 13399, 13398, 13397, 13396, 13395, 13394, 13393, 13392, 13391, 13390, 13389, 13388, 13387, 13386, 13385, 13384, 13383, 13382, 13381, 13380, 13379, 13378, 13377, 13376, 13375, 13374, 13373, 13372, 13371, 13370, 13369, 13368, 13367, 13366, 13365, 13364, 13363, 13362, 13361, 13360, 13359, 13358, 13357, 13356, 13355, 13354, 13353, 13352, 13351, 13350, 13349, 13348, 13347, 13346, 13345, 13344, 13343, 13342, 13341, 13340, 13339, 13338, 13337, 13336, 13335, 13334, 13333, 13332, 13331, 13330, 13329, 13328, 13327, 13326, 13325, 13324, 13323, 13322, 13321, 13320, 13319, 13318, 13317, 13316, 13315, 13314, 13313, 13312, 13311, 13310, 13309, 13308, 13307, 13306, 13305, 13304, 13303, 13302, 13301, 13300, 13299, 13298, 13297, 13296, 13295, 13294, 13293, 13292, 13291, 13290, 13289, 13288, 13287, 13286, 13285, 13284, 13283, 13282, 13281, 13280, 13279, 13278, 13277, 13276, 13275, 13274, 13273, 13272, 13271, 13270, 13269, 13268, 13267, 13266, 13265, 13264, 13263, 13262, 13261, 13260, 13259, 13258, 13257, 13256, 13255, 13254, 13253, 13252, 13251, 13250, 13249, 13248, 13247, 13246, 13245, 13244, 13243, 13242, 13241, 13240, 13239, 13238, 13237, 13236, 13235, 13234, 13233, 13232, 13231, 13230, 13229, 13228, 13227, 13226, 13225, 13224, 13223, 13222, 13221, 13220, 13219, 13218, 13217, 13216, 13215, 13214, 13213, 13212, 13211, 13210, 13209, 13208, 13207, 13206, 13205, 13204, 13203, 13202, 13201, 13200, 13199, 13198, 13197, 13196, 13195, 13194, 13193, 13192, 13191, 13190, 13189, 13188, 13187, 13186, 13185, 13184, 13183, 13182, 13181, 13180, 13179, 13178, 13177, 13176, 13175, 13174, 13173, 13172, 13171, 13170, 13169, 13168, 13167, 13166, 13165, 13164, 13163, 13162, 13161, 13160, 13159, 13158, 13157, 13156, 13155, 13154, 13153, 13152, 13151, 13150, 13149, 13148, 13147, 13146, 13145, 13144, 13143, 13142, 13141, 13140, 13139, 13138, 13137, 13136, 13135, 13134, 13133, 13132, 13131, 13130, 13129, 13128, 13127, 13126, 13125, 13124, 13123, 13122, 13121, 13120, 13119, 13118, 13117, 13116, 13115, 13114, 13113, 13112, 13111, 13110, 13109, 13108, 13107, 13106, 13105, 13104, 13103, 13102, 13101, 13100, 13099, 13098, 13097, 13096, 13095, 13094, 13093, 13092, 13091, 13090, 13089, 13088, 13087, 13086, 13085, 13084, 13083, 13082, 13081, 13080, 13079, 13078, 13077, 13076, 13075, 13074, 13073, 13072, 13071, 13070, 13069, 13068, 13067, 13066, 13065, 13064, 13063, 13062, 13061, 13060, 13059, 13058, 13057, 13056, 13055, 13054, 13053, 13052, 13051, 13050, 13049, 13048, 13047, 13046, 13045, 13044, 13043, 13042, 13041, 13040, 13039, 13038, 13037, 13036, 13035, 13034, 13033, 13032, 13031, 13030, 13029, 13028, 13027, 13026, 13025, 13024, 13023, 13022, 13021, 13020, 13019, 13018, 13017, 13016, 13015, 13014, 13013, 13012, 13011, 13010, 13009, 13008, 13007, 13006, 13005, 13004, 13003, 13002, 13001, 13000, 12999, 12998, 12997, 12996, 12995, 12994, 12993, 12992, 12991, 12990, 12989, 12988, 12987, 12986, 12985, 12984, 12983, 12982, 12981, 12980, 12979, 12978, 12977, 12976, 12975, 12974, 12973, 12972, 12971, 12970, 12969, 12968, 12967, 12966, 12965, 12964, 12963, 12962, 12961, 12960, 12959, 12958, 12957, 12956, 12955, 12954, 12953, 12952, 12951, 12950, 12949, 12948, 12947, 12946, 12945, 12944, 12943, 12942, 12941, 12940, 12939, 12938, 12937, 12936, 12935, 12934, 12933, 12932, 12931, 12930, 12929, 12928, 12927, 12926, 12925, 12924, 12923, 12922, 12921, 12920, 12919, 12918, 12917, 12916, 12915, 12914, 12913, 12912, 12911, 12910, 12909, 12908, 12907, 12906, 12905, 12904, 12903, 12902, 12901, 12900, 12899, 12898, 12897, 12896, 12895, 12894, 12893, 12892, 12891, 12890, 12889, 12888, 12887, 12886, 12885, 12884, 12883, 12882, 12881, 12880, 12879, 12878, 12877, 12876, 12875, 12874, 12873, 12872, 12871, 12870, 12869, 12868, 12867, 12866, 12865, 12864, 12863, 12862, 12861, 12860, 12859, 12858, 12857, 12856, 12855, 12854, 12853, 12852, 12851, 12850, 12849, 12848, 12847, 12846, 12845, 12844, 12843, 12842, 12841, 12840, 12839, 12838, 12837, 12836, 12835, 12834, 12833, 12832, 12831, 12830, 12829, 12828, 12827, 12826, 12825, 12824, 12823, 12822, 12821, 12820, 12819, 12818, 12817, 12816, 12815, 12814, 12813, 12812, 12811, 12810, 12809, 12808, 12807, 12806, 12805, 12804, 12803, 12802, 12801, 12800, 12799, 12798, 12797, 12796, 12795, 12794, 12793, 12792, 12791, 12790, 12789, 12788, 12787, 12786, 12785, 12784, 12783, 12782, 12781, 12780, 12779, 12778, 12777, 12776, 12775, 12774, 12773, 12772, 12771, 12770, 12769, 12768, 12767, 12766, 12765, 12764, 12763, 12762, 12761, 12760, 12759, 12758, 12757, 12756, 12755, 12754, 12753, 12752, 12751, 12750, 12749, 12748, 12747, 12746, 12745, 12744, 12743, 12742, 12741, 12740, 12739, 12738, 12737, 12736, 12735, 12734, 12733, 12732, 12731, 12730, 12729, 12728, 12727, 12726, 12725, 12724, 12723, 12722, 12721, 12720, 12719, 12718, 12717, 12716, 12715, 12714, 12713, 12712, 12711, 12710, 12709, 12708, 12707, 12706, 12705, 12704, 12703, 12702, 12701, 12700, 12699, 12698, 12697, 12696, 12695, 12694, 12693, 12692, 12691, 12690, 12689, 12688, 12687, 12686, 12685, 12684, 12683, 12682, 12681, 12680, 12679, 12678, 12677, 12676, 12675, 12674, 12673, 12672, 12671, 12670, 12669, 12668, 12667, 12666, 12665, 12664, 12663, 12662, 12661, 12660, 12659, 12658, 12657, 12656, 12655, 12654, 12653, 12652, 12651, 12650, 12649, 12648, 12647, 12646, 12645, 12644, 12643, 12642, 12641, 12640, 12639, 12638, 12637, 12636, 12635, 12634, 12633, 12632, 12631, 12630, 12629, 12628, 12627, 12626, 12625, 12624, 12623, 12622, 12621, 12620, 12619, 12618, 12617, 12616, 12615, 12614, 12613, 12612, 12611, 12610, 12609, 12608, 12607, 12606, 12605, 12604, 12603, 12602, 12601, 12600, 12599, 12598, 12597, 12596, 12595, 12594, 12593, 12592, 12591, 12590, 12589, 12588, 12587, 12586, 12585, 12584, 12583, 12582, 12581, 12580, 12579, 12578, 12577, 12576, 12575, 12574, 12573, 12572, 12571, 12570, 12569, 12568, 12567, 12566, 12565, 12564, 12563, 12562, 12561, 12560, 12559, 12558, 12557, 12556, 12555, 12554, 12553, 12552, 12551, 12550, 12549, 12548, 12547, 12546, 12545, 12544, 12543, 12542, 12541, 12540, 12539, 12538, 12537, 12536, 12535, 12534, 12533, 12532, 12531, 12530, 12529, 12528, 12527, 12526, 12525, 12524, 12523, 12522, 12521, 12520, 12519, 12518, 12517, 12516, 12515, 12514, 12513, 12512, 12511, 12510, 12509, 12508, 12507, 12506, 12505, 12504, 12503, 12502, 12501, 12500, 12499, 12498, 12497, 12496, 12495, 12494, 12493, 12492, 12491, 12490, 12489, 12488, 12487, 12486, 12485, 12484, 12483, 12482, 12481, 12480, 12479, 12478, 12477, 12476, 12475, 12474, 12473, 12472, 12471, 12470, 12469, 12468, 12467, 12466, 12465, 12464, 12463, 12462, 12461, 12460, 12459, 12458, 12457, 12456, 12455, 12454, 12453, 12452, 12451, 12450, 12449, 12448, 12447, 12446, 12445, 12444, 12443, 12442, 12441, 12440, 12439, 12438, 12437, 12436, 12435, 12434, 12433, 12432, 12431, 12430, 12429, 12428, 12427, 12426, 12425, 12424, 12423, 12422, 12421, 12420, 12419, 12418, 12417, 12416, 12415, 12414, 12413, 12412, 12411, 12410, 12409, 12408, 12407, 12406, 12405, 12404, 12403, 12402, 12401, 12400, 12399, 12398, 12397, 12396, 12395, 12394, 12393, 12392, 12391, 12390, 12389, 12388, 12387, 12386, 12385, 12384, 12383, 12382, 12381, 12380, 12379, 12378, 12377, 12376, 12375, 12374, 12373, 12372, 12371, 12370, 12369, 12368, 12367, 12366, 12365, 12364, 12363, 12362, 12361, 12360, 12359, 12358, 12357, 12356, 12355, 12354, 12353, 12352, 12351, 12350, 12349, 12348, 12347, 12346, 12345, 12344, 12343, 12342, 12341, 12340, 12339, 12338, 12337, 12336, 12335, 12334, 12333, 12332, 12331, 12330, 12329, 12328, 12327, 12326, 12325, 12324, 12323, 12322, 12321, 12320, 12319, 12318, 12317, 12316, 12315, 12314, 12313, 12312, 12311, 12310, 12309, 12308, 12307, 12306, 12305, 12304, 12303, 12302, 12301, 12300, 12299, 12298, 12297, 12296, 12295, 12294, 12293, 12292, 12291, 12290, 12289, 12288, 12287, 12286, 12285, 12284, 12283, 12282, 12281, 12280, 12279, 12278, 12277, 12276, 12275, 12274, 12273, 12272, 12271, 12270, 12269, 12268, 12267, 12266, 12265, 12264, 12263, 12262, 12261, 12260, 12259, 12258, 12257, 12256, 12255, 12254, 12253, 12252, 12251, 12250, 12249, 12248, 12247, 12246, 12245, 12244, 12243, 12242, 12241, 12240, 12239, 12238, 12237, 12236, 12235, 12234, 12233, 12232, 12231, 12230, 12229, 12228, 12227, 12226, 12225, 12224, 12223, 12222, 12221, 12220, 12219, 12218, 12217, 12216, 12215, 12214, 12213, 12212, 12211, 12210, 12209, 12208, 12207, 12206, 12205, 12204, 12203, 12202, 12201, 12200, 12199, 12198, 12197, 12196, 12195, 12194, 12193, 12192, 12191, 12190, 12189, 12188, 12187, 12186, 12185, 12184, 12183, 12182, 12181, 12180, 12179, 12178, 12177, 12176, 12175, 12174, 12173, 12172, 12171, 12170, 12169, 12168, 12167, 12166, 12165, 12164, 12163, 12162, 12161, 12160, 12159, 12158, 12157, 12156, 12155, 12154, 12153, 12152, 12151, 12150, 12149, 12148, 12147, 12146, 12145, 12144, 12143, 12142, 12141, 12140, 12139, 12138, 12137, 12136, 12135, 12134, 12133, 12132, 12131, 12130, 12129, 12128, 12127, 12126, 12125, 12124, 12123, 12122, 12121, 12120, 12119, 12118, 12117, 12116, 12115, 12114, 12113, 12112, 12111, 12110, 12109, 12108, 12107, 12106, 12105, 12104, 12103, 12102, 12101, 12100, 12099, 12098, 12097, 12096, 12095, 12094, 12093, 12092, 12091, 12090, 12089, 12088, 12087, 12086, 12085, 12084, 12083, 12082, 12081, 12080, 12079, 12078, 12077, 12076, 12075, 12074, 12073, 12072, 12071, 12070, 12069, 12068, 12067, 12066, 12065, 12064, 12063, 12062, 12061, 12060, 12059, 12058, 12057, 12056, 12055, 12054, 12053, 12052, 12051, 12050, 12049, 12048, 12047, 12046, 12045, 12044, 12043, 12042, 12041, 12040, 12039, 12038, 12037, 12036, 12035, 12034, 12033, 12032, 12031, 12030, 12029, 12028, 12027, 12026, 12025, 12024, 12023, 12022, 12021, 12020, 12019, 12018, 12017, 12016, 12015, 12014, 12013, 12012, 12011, 12010, 12009, 12008, 12007, 12006, 12005, 12004, 12003, 12002, 12001, 12000, 11999, 11998, 11997, 11996, 11995, 11994, 11993, 11992, 11991, 11990, 11989, 11988, 11987, 11986, 11985, 11984, 11983, 11982, 11981, 11980, 11979, 11978, 11977, 11976, 11975, 11974, 11973, 11972, 11971, 11970, 11969, 11968, 11967, 11966, 11965, 11964, 11963, 11962, 11961, 11960, 11959, 11958, 11957, 11956, 11955, 11954, 11953, 11952, 11951, 11950, 11949, 11948, 11947, 11946, 11945, 11944, 11943, 11942, 11941, 11940, 11939, 11938, 11937, 11936, 11935, 11934, 11933, 11932, 11931, 11930, 11929, 11928, 11927, 11926, 11925, 11924, 11923, 11922, 11921, 11920, 11919, 11918, 11917, 11916, 11915, 11914, 11913, 11912, 11911, 11910, 11909, 11908, 11907, 11906, 11905, 11904, 11903, 11902, 11901, 11900, 11899, 11898, 11897, 11896, 11895, 11894, 11893, 11892, 11891, 11890, 11889, 11888, 11887, 11886, 11885, 11884, 11883, 11882, 11881, 11880, 11879, 11878, 11877, 11876, 11875, 11874, 11873, 11872, 11871, 11870, 11869, 11868, 11867, 11866, 11865, 11864, 11863, 11862, 11861, 11860, 11859, 11858, 11857, 11856, 11855, 11854, 11853, 11852, 11851, 11850, 11849, 11848, 11847, 11846, 11845, 11844, 11843, 11842, 11841, 11840, 11839, 11838, 11837, 11836, 11835, 11834, 11833, 11832, 11831, 11830, 11829, 11828, 11827, 11826, 11825, 11824, 11823, 11822, 11821, 11820, 11819, 11818, 11817, 11816, 11815, 11814, 11813, 11812, 11811, 11810, 11809, 11808, 11807, 11806, 11805, 11804, 11803, 11802, 11801, 11800, 11799, 11798, 11797, 11796, 11795, 11794, 11793, 11792, 11791, 11790, 11789, 11788, 11787, 11786, 11785, 11784, 11783, 11782, 11781, 11780, 11779, 11778, 11777, 11776, 11775, 11774, 11773, 11772, 11771, 11770, 11769, 11768, 11767, 11766, 11765, 11764, 11763, 11762, 11761, 11760, 11759, 11758, 11757, 11756, 11755, 11754, 11753, 11752, 11751, 11750, 11749, 11748, 11747, 11746, 11745, 11744, 11743, 11742, 11741, 11740, 11739, 11738, 11737, 11736, 11735, 11734, 11733, 11732, 11731, 11730, 11729, 11728, 11727, 11726, 11725, 11724, 11723, 11722, 11721, 11720, 11719, 11718, 11717, 11716, 11715, 11714, 11713, 11712, 11711, 11710, 11709, 11708, 11707, 11706, 11705, 11704, 11703, 11702, 11701, 11700, 11699, 11698, 11697, 11696, 11695, 11694, 11693, 11692, 11691, 11690, 11689, 11688, 11687, 11686, 11685, 11684, 11683, 11682, 11681, 11680, 11679, 11678, 11677, 11676, 11675, 11674, 11673, 11672, 11671, 11670, 11669, 11668, 11667, 11666, 11665, 11664, 11663, 11662, 11661, 11660, 11659, 11658, 11657, 11656, 11655, 11654, 11653, 11652, 11651, 11650, 11649, 11648, 11647, 11646, 11645, 11644, 11643, 11642, 11641, 11640, 11639, 11638, 11637, 11636, 11635, 11634, 11633, 11632, 11631, 11630, 11629, 11628, 11627, 11626, 11625, 11624, 11623, 11622, 11621, 11620, 11619, 11618, 11617, 11616, 11615, 11614, 11613, 11612, 11611, 11610, 11609, 11608, 11607, 11606, 11605, 11604, 11603, 11602, 11601, 11600, 11599, 11598, 11597, 11596, 11595, 11594, 11593, 11592, 11591, 11590, 11589, 11588, 11587, 11586, 11585, 11584, 11583, 11582, 11581, 11580, 11579, 11578, 11577, 11576, 11575, 11574, 11573, 11572, 11571, 11570, 11569, 11568, 11567, 11566, 11565, 11564, 11563, 11562, 11561, 11560, 11559, 11558, 11557, 11556, 11555, 11554, 11553, 11552, 11551, 11550, 11549, 11548, 11547, 11546, 11545, 11544, 11543, 11542, 11541, 11540, 11539, 11538, 11537, 11536, 11535, 11534, 11533, 11532, 11531, 11530, 11529, 11528, 11527, 11526, 11525, 11524, 11523, 11522, 11521, 11520, 11519, 11518, 11517, 11516, 11515, 11514, 11513, 11512, 11511, 11510, 11509, 11508, 11507, 11506, 11505, 11504, 11503, 11502, 11501, 11500, 11499, 11498, 11497, 11496, 11495, 11494, 11493, 11492, 11491, 11490, 11489, 11488, 11487, 11486, 11485, 11484, 11483, 11482, 11481, 11480, 11479, 11478, 11477, 11476, 11475, 11474, 11473, 11472, 11471, 11470, 11469, 11468, 11467, 11466, 11465, 11464, 11463, 11462, 11461, 11460, 11459, 11458, 11457, 11456, 11455, 11454, 11453, 11452, 11451, 11450, 11449, 11448, 11447, 11446, 11445, 11444, 11443, 11442, 11441, 11440, 11439, 11438, 11437, 11436, 11435, 11434, 11433, 11432, 11431, 11430, 11429, 11428, 11427, 11426, 11425, 11424, 11423, 11422, 11421, 11420, 11419, 11418, 11417, 11416, 11415, 11414, 11413, 11412, 11411, 11410, 11409, 11408, 11407, 11406, 11405, 11404, 11403, 11402, 11401, 11400, 11399, 11398, 11397, 11396, 11395, 11394, 11393, 11392, 11391, 11390, 11389, 11388, 11387, 11386, 11385, 11384, 11383, 11382, 11381, 11380, 11379, 11378, 11377, 11376, 11375, 11374, 11373, 11372, 11371, 11370, 11369, 11368, 11367, 11366, 11365, 11364, 11363, 11362, 11361, 11360, 11359, 11358, 11357, 11356, 11355, 11354, 11353, 11352, 11351, 11350, 11349, 11348, 11347, 11346, 11345, 11344, 11343, 11342, 11341, 11340, 11339, 11338, 11337, 11336, 11335, 11334, 11333, 11332, 11331, 11330, 11329, 11328, 11327, 11326, 11325, 11324, 11323, 11322, 11321, 11320, 11319, 11318, 11317, 11316, 11315, 11314, 11313, 11312, 11311, 11310, 11309, 11308, 11307, 11306, 11305, 11304, 11303, 11302, 11301, 11300, 11299, 11298, 11297, 11296, 11295, 11294, 11293, 11292, 11291, 11290, 11289, 11288, 11287, 11286, 11285, 11284, 11283, 11282, 11281, 11280, 11279, 11278, 11277, 11276, 11275, 11274, 11273, 11272, 11271, 11270, 11269, 11268, 11267, 11266, 11265, 11264, 11263, 11262, 11261, 11260, 11259, 11258, 11257, 11256, 11255, 11254, 11253, 11252, 11251, 11250, 11249, 11248, 11247, 11246, 11245, 11244, 11243, 11242, 11241, 11240, 11239, 11238, 11237, 11236, 11235, 11234, 11233, 11232, 11231, 11230, 11229, 11228, 11227, 11226, 11225, 11224, 11223, 11222, 11221, 11220, 11219, 11218, 11217, 11216, 11215, 11214, 11213, 11212, 11211, 11210, 11209, 11208, 11207, 11206, 11205, 11204, 11203, 11202, 11201, 11200, 11199, 11198, 11197, 11196, 11195, 11194, 11193, 11192, 11191, 11190, 11189, 11188, 11187, 11186, 11185, 11184, 11183, 11182, 11181, 11180, 11179, 11178, 11177, 11176, 11175, 11174, 11173, 11172, 11171, 11170, 11169, 11168, 11167, 11166, 11165, 11164, 11163, 11162, 11161, 11160, 11159, 11158, 11157, 11156, 11155, 11154, 11153, 11152, 11151, 11150, 11149, 11148, 11147, 11146, 11145, 11144, 11143, 11142, 11141, 11140, 11139, 11138, 11137, 11136, 11135, 11134, 11133, 11132, 11131, 11130, 11129, 11128, 11127, 11126, 11125, 11124, 11123, 11122, 11121, 11120, 11119, 11118, 11117, 11116, 11115, 11114, 11113, 11112, 11111, 11110, 11109, 11108, 11107, 11106, 11105, 11104, 11103, 11102, 11101, 11100, 11099, 11098, 11097, 11096, 11095, 11094, 11093, 11092, 11091, 11090, 11089, 11088, 11087, 11086, 11085, 11084, 11083, 11082, 11081, 11080, 11079, 11078, 11077, 11076, 11075, 11074, 11073, 11072, 11071, 11070, 11069, 11068, 11067, 11066, 11065, 11064, 11063, 11062, 11061, 11060, 11059, 11058, 11057, 11056, 11055, 11054, 11053, 11052, 11051, 11050, 11049, 11048, 11047, 11046, 11045, 11044, 11043, 11042, 11041, 11040, 11039, 11038, 11037, 11036, 11035, 11034, 11033, 11032, 11031, 11030, 11029, 11028, 11027, 11026, 11025, 11024, 11023, 11022, 11021, 11020, 11019, 11018, 11017, 11016, 11015, 11014, 11013, 11012, 11011, 11010, 11009, 11008, 11007, 11006, 11005, 11004, 11003, 11002, 11001, 11000, 10999, 10998, 10997, 10996, 10995, 10994, 10993, 10992, 10991, 10990, 10989, 10988, 10987, 10986, 10985, 10984, 10983, 10982, 10981, 10980, 10979, 10978, 10977, 10976, 10975, 10974, 10973, 10972, 10971, 10970, 10969, 10968, 10967, 10966, 10965, 10964, 10963, 10962, 10961, 10960, 10959, 10958, 10957, 10956, 10955, 10954, 10953, 10952, 10951, 10950, 10949, 10948, 10947, 10946, 10945, 10944, 10943, 10942, 10941, 10940, 10939, 10938, 10937, 10936, 10935, 10934, 10933, 10932, 10931, 10930, 10929, 10928, 10927, 10926, 10925, 10924, 10923, 10922, 10921, 10920, 10919, 10918, 10917, 10916, 10915, 10914, 10913, 10912, 10911, 10910, 10909, 10908, 10907, 10906, 10905, 10904, 10903, 10902, 10901, 10900, 10899, 10898, 10897, 10896, 10895, 10894, 10893, 10892, 10891, 10890, 10889, 10888, 10887, 10886, 10885, 10884, 10883, 10882, 10881, 10880, 10879, 10878, 10877, 10876, 10875, 10874, 10873, 10872, 10871, 10870, 10869, 10868, 10867, 10866, 10865, 10864, 10863, 10862, 10861, 10860, 10859, 10858, 10857, 10856, 10855, 10854, 10853, 10852, 10851, 10850, 10849, 10848, 10847, 10846, 10845, 10844, 10843, 10842, 10841, 10840, 10839, 10838, 10837, 10836, 10835, 10834, 10833, 10832, 10831, 10830, 10829, 10828, 10827, 10826, 10825, 10824, 10823, 10822, 10821, 10820, 10819, 10818, 10817, 10816, 10815, 10814, 10813, 10812, 10811, 10810, 10809, 10808, 10807, 10806, 10805, 10804, 10803, 10802, 10801, 10800, 10799, 10798, 10797, 10796, 10795, 10794, 10793, 10792, 10791, 10790, 10789, 10788, 10787, 10786, 10785, 10784, 10783, 10782, 10781, 10780, 10779, 10778, 10777, 10776, 10775, 10774, 10773, 10772, 10771, 10770, 10769, 10768, 10767, 10766, 10765, 10764, 10763, 10762, 10761, 10760, 10759, 10758, 10757, 10756, 10755, 10754, 10753, 10752, 10751, 10750, 10749, 10748, 10747, 10746, 10745, 10744, 10743, 10742, 10741, 10740, 10739, 10738, 10737, 10736, 10735, 10734, 10733, 10732, 10731, 10730, 10729, 10728, 10727, 10726, 10725, 10724, 10723, 10722, 10721, 10720, 10719, 10718, 10717, 10716, 10715, 10714, 10713, 10712, 10711, 10710, 10709, 10708, 10707, 10706, 10705, 10704, 10703, 10702, 10701, 10700, 10699, 10698, 10697, 10696, 10695, 10694, 10693, 10692, 10691, 10690, 10689, 10688, 10687, 10686, 10685, 10684, 10683, 10682, 10681, 10680, 10679, 10678, 10677, 10676, 10675, 10674, 10673, 10672, 10671, 10670, 10669, 10668, 10667, 10666, 10665, 10664, 10663, 10662, 10661, 10660, 10659, 10658, 10657, 10656, 10655, 10654, 10653, 10652, 10651, 10650, 10649, 10648, 10647, 10646, 10645, 10644, 10643, 10642, 10641, 10640, 10639, 10638, 10637, 10636, 10635, 10634, 10633, 10632, 10631, 10630, 10629, 10628, 10627, 10626, 10625, 10624, 10623, 10622, 10621, 10620, 10619, 10618, 10617, 10616, 10615, 10614, 10613, 10612, 10611, 10610, 10609, 10608, 10607, 10606, 10605, 10604, 10603, 10602, 10601, 10600, 10599, 10598, 10597, 10596, 10595, 10594, 10593, 10592, 10591, 10590, 10589, 10588, 10587, 10586, 10585, 10584, 10583, 10582, 10581, 10580, 10579, 10578, 10577, 10576, 10575, 10574, 10573, 10572, 10571, 10570, 10569, 10568, 10567, 10566, 10565, 10564, 10563, 10562, 10561, 10560, 10559, 10558, 10557, 10556, 10555, 10554, 10553, 10552, 10551, 10550, 10549, 10548, 10547, 10546, 10545, 10544, 10543, 10542, 10541, 10540, 10539, 10538, 10537, 10536, 10535, 10534, 10533, 10532, 10531, 10530, 10529, 10528, 10527, 10526, 10525, 10524, 10523, 10522, 10521, 10520, 10519, 10518, 10517, 10516, 10515, 10514, 10513, 10512, 10511, 10510, 10509, 10508, 10507, 10506, 10505, 10504, 10503, 10502, 10501, 10500, 10499, 10498, 10497, 10496, 10495, 10494, 10493, 10492, 10491, 10490, 10489, 10488, 10487, 10486, 10485, 10484, 10483, 10482, 10481, 10480, 10479, 10478, 10477, 10476, 10475, 10474, 10473, 10472, 10471, 10470, 10469, 10468, 10467, 10466, 10465, 10464, 10463, 10462, 10461, 10460, 10459, 10458, 10457, 10456, 10455, 10454, 10453, 10452, 10451, 10450, 10449, 10448, 10447, 10446, 10445, 10444, 10443, 10442, 10441, 10440, 10439, 10438, 10437, 10436, 10435, 10434, 10433, 10432, 10431, 10430, 10429, 10428, 10427, 10426, 10425, 10424, 10423, 10422, 10421, 10420, 10419, 10418, 10417, 10416, 10415, 10414, 10413, 10412, 10411, 10410, 10409, 10408, 10407, 10406, 10405, 10404, 10403, 10402, 10401, 10400, 10399, 10398, 10397, 10396, 10395, 10394, 10393, 10392, 10391, 10390, 10389, 10388, 10387, 10386, 10385, 10384, 10383, 10382, 10381, 10380, 10379, 10378, 10377, 10376, 10375, 10374, 10373, 10372, 10371, 10370, 10369, 10368, 10367, 10366, 10365, 10364, 10363, 10362, 10361, 10360, 10359, 10358, 10357, 10356, 10355, 10354, 10353, 10352, 10351, 10350, 10349, 10348, 10347, 10346, 10345, 10344, 10343, 10342, 10341, 10340, 10339, 10338, 10337, 10336, 10335, 10334, 10333, 10332, 10331, 10330, 10329, 10328, 10327, 10326, 10325, 10324, 10323, 10322, 10321, 10320, 10319, 10318, 10317, 10316, 10315, 10314, 10313, 10312, 10311, 10310, 10309, 10308, 10307, 10306, 10305, 10304, 10303, 10302, 10301, 10300, 10299, 10298, 10297, 10296, 10295, 10294, 10293, 10292, 10291, 10290, 10289, 10288, 10287, 10286, 10285, 10284, 10283, 10282, 10281, 10280, 10279, 10278, 10277, 10276, 10275, 10274, 10273, 10272, 10271, 10270, 10269, 10268, 10267, 10266, 10265, 10264, 10263, 10262, 10261, 10260, 10259, 10258, 10257, 10256, 10255, 10254, 10253, 10252, 10251, 10250, 10249, 10248, 10247, 10246, 10245, 10244, 10243, 10242, 10241, 10240, 10239, 10238, 10237, 10236, 10235, 10234, 10233, 10232, 10231, 10230, 10229, 10228, 10227, 10226, 10225, 10224, 10223, 10222, 10221, 10220, 10219, 10218, 10217, 10216, 10215, 10214, 10213, 10212, 10211, 10210, 10209, 10208, 10207, 10206, 10205, 10204, 10203, 10202, 10201, 10200, 10199, 10198, 10197, 10196, 10195, 10194, 10193, 10192, 10191, 10190, 10189, 10188, 10187, 10186, 10185, 10184, 10183, 10182, 10181, 10180, 10179, 10178, 10177, 10176, 10175, 10174, 10173, 10172, 10171, 10170, 10169, 10168, 10167, 10166, 10165, 10164, 10163, 10162, 10161, 10160, 10159, 10158, 10157, 10156, 10155, 10154, 10153, 10152, 10151, 10150, 10149, 10148, 10147, 10146, 10145, 10144, 10143, 10142, 10141, 10140, 10139, 10138, 10137, 10136, 10135, 10134, 10133, 10132, 10131, 10130, 10129, 10128, 10127, 10126, 10125, 10124, 10123, 10122, 10121, 10120, 10119, 10118, 10117, 10116, 10115, 10114, 10113, 10112, 10111, 10110, 10109, 10108, 10107, 10106, 10105, 10104, 10103, 10102, 10101, 10100, 10099, 10098, 10097, 10096, 10095, 10094, 10093, 10092, 10091, 10090, 10089, 10088, 10087, 10086, 10085, 10084, 10083, 10082, 10081, 10080, 10079, 10078, 10077, 10076, 10075, 10074, 10073, 10072, 10071, 10070, 10069, 10068, 10067, 10066, 10065, 10064, 10063, 10062, 10061, 10060, 10059, 10058, 10057, 10056, 10055, 10054, 10053, 10052, 10051, 10050, 10049, 10048, 10047, 10046, 10045, 10044, 10043, 10042, 10041, 10040, 10039, 10038, 10037, 10036, 10035, 10034, 10033, 10032, 10031, 10030, 10029, 10028, 10027, 10026, 10025, 10024, 10023, 10022, 10021, 10020, 10019, 10018, 10017, 10016, 10015, 10014, 10013, 10012, 10011, 10010, 10009, 10008, 10007, 10006, 10005, 10004, 10003, 10002, 10001, 10000, 9999, 9998, 9997, 9996, 9995, 9994, 9993, 9992, 9991, 9990, 9989, 9988, 9987, 9986, 9985, 9984, 9983, 9982, 9981, 9980, 9979, 9978, 9977, 9976, 9975, 9974, 9973, 9972, 9971, 9970, 9969, 9968, 9967, 9966, 9965, 9964, 9963, 9962, 9961, 9960, 9959, 9958, 9957, 9956, 9955, 9954, 9953, 9952, 9951, 9950, 9949, 9948, 9947, 9946, 9945, 9944, 9943, 9942, 9941, 9940, 9939, 9938, 9937, 9936, 9935, 9934, 9933, 9932, 9931, 9930, 9929, 9928, 9927, 9926, 9925, 9924, 9923, 9922, 9921, 9920, 9919, 9918, 9917, 9916, 9915, 9914, 9913, 9912, 9911, 9910, 9909, 9908, 9907, 9906, 9905, 9904, 9903, 9902, 9901, 9900, 9899, 9898, 9897, 9896, 9895, 9894, 9893, 9892, 9891, 9890, 9889, 9888, 9887, 9886, 9885, 9884, 9883, 9882, 9881, 9880, 9879, 9878, 9877, 9876, 9875, 9874, 9873, 9872, 9871, 9870, 9869, 9868, 9867, 9866, 9865, 9864, 9863, 9862, 9861, 9860, 9859, 9858, 9857, 9856, 9855, 9854, 9853, 9852, 9851, 9850, 9849, 9848, 9847, 9846, 9845, 9844, 9843, 9842, 9841, 9840, 9839, 9838, 9837, 9836, 9835, 9834, 9833, 9832, 9831, 9830, 9829, 9828, 9827, 9826, 9825, 9824, 9823, 9822, 9821, 9820, 9819, 9818, 9817, 9816, 9815, 9814, 9813, 9812, 9811, 9810, 9809, 9808, 9807, 9806, 9805, 9804, 9803, 9802, 9801, 9800, 9799, 9798, 9797, 9796, 9795, 9794, 9793, 9792, 9791, 9790, 9789, 9788, 9787, 9786, 9785, 9784, 9783, 9782, 9781, 9780, 9779, 9778, 9777, 9776, 9775, 9774, 9773, 9772, 9771, 9770, 9769, 9768, 9767, 9766, 9765, 9764, 9763, 9762, 9761, 9760, 9759, 9758, 9757, 9756, 9755, 9754, 9753, 9752, 9751, 9750, 9749, 9748, 9747, 9746, 9745, 9744, 9743, 9742, 9741, 9740, 9739, 9738, 9737, 9736, 9735, 9734, 9733, 9732, 9731, 9730, 9729, 9728, 9727, 9726, 9725, 9724, 9723, 9722, 9721, 9720, 9719, 9718, 9717, 9716, 9715, 9714, 9713, 9712, 9711, 9710, 9709, 9708, 9707, 9706, 9705, 9704, 9703, 9702, 9701, 9700, 9699, 9698, 9697, 9696, 9695, 9694, 9693, 9692, 9691, 9690, 9689, 9688, 9687, 9686, 9685, 9684, 9683, 9682, 9681, 9680, 9679, 9678, 9677, 9676, 9675, 9674, 9673, 9672, 9671, 9670, 9669, 9668, 9667, 9666, 9665, 9664, 9663, 9662, 9661, 9660, 9659, 9658, 9657, 9656, 9655, 9654, 9653, 9652, 9651, 9650, 9649, 9648, 9647, 9646, 9645, 9644, 9643, 9642, 9641, 9640, 9639, 9638, 9637, 9636, 9635, 9634, 9633, 9632, 9631, 9630, 9629, 9628, 9627, 9626, 9625, 9624, 9623, 9622, 9621, 9620, 9619, 9618, 9617, 9616, 9615, 9614, 9613, 9612, 9611, 9610, 9609, 9608, 9607, 9606, 9605, 9604, 9603, 9602, 9601, 9600, 9599, 9598, 9597, 9596, 9595, 9594, 9593, 9592, 9591, 9590, 9589, 9588, 9587, 9586, 9585, 9584, 9583, 9582, 9581, 9580, 9579, 9578, 9577, 9576, 9575, 9574, 9573, 9572, 9571, 9570, 9569, 9568, 9567, 9566, 9565, 9564, 9563, 9562, 9561, 9560, 9559, 9558, 9557, 9556, 9555, 9554, 9553, 9552, 9551, 9550, 9549, 9548, 9547, 9546, 9545, 9544, 9543, 9542, 9541, 9540, 9539, 9538, 9537, 9536, 9535, 9534, 9533, 9532, 9531, 9530, 9529, 9528, 9527, 9526, 9525, 9524, 9523, 9522, 9521, 9520, 9519, 9518, 9517, 9516, 9515, 9514, 9513, 9512, 9511, 9510, 9509, 9508, 9507, 9506, 9505, 9504, 9503, 9502, 9501, 9500, 9499, 9498, 9497, 9496, 9495, 9494, 9493, 9492, 9491, 9490, 9489, 9488, 9487, 9486, 9485, 9484, 9483, 9482, 9481, 9480, 9479, 9478, 9477, 9476, 9475, 9474, 9473, 9472, 9471, 9470, 9469, 9468, 9467, 9466, 9465, 9464, 9463, 9462, 9461, 9460, 9459, 9458, 9457, 9456, 9455, 9454, 9453, 9452, 9451, 9450, 9449, 9448, 9447, 9446, 9445, 9444, 9443, 9442, 9441, 9440, 9439, 9438, 9437, 9436, 9435, 9434, 9433, 9432, 9431, 9430, 9429, 9428, 9427, 9426, 9425, 9424, 9423, 9422, 9421, 9420, 9419, 9418, 9417, 9416, 9415, 9414, 9413, 9412, 9411, 9410, 9409, 9408, 9407, 9406, 9405, 9404, 9403, 9402, 9401, 9400, 9399, 9398, 9397, 9396, 9395, 9394, 9393, 9392, 9391, 9390, 9389, 9388, 9387, 9386, 9385, 9384, 9383, 9382, 9381, 9380, 9379, 9378, 9377, 9376, 9375, 9374, 9373, 9372, 9371, 9370, 9369, 9368, 9367, 9366, 9365, 9364, 9363, 9362, 9361, 9360, 9359, 9358, 9357, 9356, 9355, 9354, 9353, 9352, 9351, 9350, 9349, 9348, 9347, 9346, 9345, 9344, 9343, 9342, 9341, 9340, 9339, 9338, 9337, 9336, 9335, 9334, 9333, 9332, 9331, 9330, 9329, 9328, 9327, 9326, 9325, 9324, 9323, 9322, 9321, 9320, 9319, 9318, 9317, 9316, 9315, 9314, 9313, 9312, 9311, 9310, 9309, 9308, 9307, 9306, 9305, 9304, 9303, 9302, 9301, 9300, 9299, 9298, 9297, 9296, 9295, 9294, 9293, 9292, 9291, 9290, 9289, 9288, 9287, 9286, 9285, 9284, 9283, 9282, 9281, 9280, 9279, 9278, 9277, 9276, 9275, 9274, 9273, 9272, 9271, 9270, 9269, 9268, 9267, 9266, 9265, 9264, 9263, 9262, 9261, 9260, 9259, 9258, 9257, 9256, 9255, 9254, 9253, 9252, 9251, 9250, 9249, 9248, 9247, 9246, 9245, 9244, 9243, 9242, 9241, 9240, 9239, 9238, 9237, 9236, 9235, 9234, 9233, 9232, 9231, 9230, 9229, 9228, 9227, 9226, 9225, 9224, 9223, 9222, 9221, 9220, 9219, 9218, 9217, 9216, 9215, 9214, 9213, 9212, 9211, 9210, 9209, 9208, 9207, 9206, 9205, 9204, 9203, 9202, 9201, 9200, 9199, 9198, 9197, 9196, 9195, 9194, 9193, 9192, 9191, 9190, 9189, 9188, 9187, 9186, 9185, 9184, 9183, 9182, 9181, 9180, 9179, 9178, 9177, 9176, 9175, 9174, 9173, 9172, 9171, 9170, 9169, 9168, 9167, 9166, 9165, 9164, 9163, 9162, 9161, 9160, 9159, 9158, 9157, 9156, 9155, 9154, 9153, 9152, 9151, 9150, 9149, 9148, 9147, 9146, 9145, 9144, 9143, 9142, 9141, 9140, 9139, 9138, 9137, 9136, 9135, 9134, 9133, 9132, 9131, 9130, 9129, 9128, 9127, 9126, 9125, 9124, 9123, 9122, 9121, 9120, 9119, 9118, 9117, 9116, 9115, 9114, 9113, 9112, 9111, 9110, 9109, 9108, 9107, 9106, 9105, 9104, 9103, 9102, 9101, 9100, 9099, 9098, 9097, 9096, 9095, 9094, 9093, 9092, 9091, 9090, 9089, 9088, 9087, 9086, 9085, 9084, 9083, 9082, 9081, 9080, 9079, 9078, 9077, 9076, 9075, 9074, 9073, 9072, 9071, 9070, 9069, 9068, 9067, 9066, 9065, 9064, 9063, 9062, 9061, 9060, 9059, 9058, 9057, 9056, 9055, 9054, 9053, 9052, 9051, 9050, 9049, 9048, 9047, 9046, 9045, 9044, 9043, 9042, 9041, 9040, 9039, 9038, 9037, 9036, 9035, 9034, 9033, 9032, 9031, 9030, 9029, 9028, 9027, 9026, 9025, 9024, 9023, 9022, 9021, 9020, 9019, 9018, 9017, 9016, 9015, 9014, 9013, 9012, 9011, 9010, 9009, 9008, 9007, 9006, 9005, 9004, 9003, 9002, 9001, 9000, 8999, 8998, 8997, 8996, 8995, 8994, 8993, 8992, 8991, 8990, 8989, 8988, 8987, 8986, 8985, 8984, 8983, 8982, 8981, 8980, 8979, 8978, 8977, 8976, 8975, 8974, 8973, 8972, 8971, 8970, 8969, 8968, 8967, 8966, 8965, 8964, 8963, 8962, 8961, 8960, 8959, 8958, 8957, 8956, 8955, 8954, 8953, 8952, 8951, 8950, 8949, 8948, 8947, 8946, 8945, 8944, 8943, 8942, 8941, 8940, 8939, 8938, 8937, 8936, 8935, 8934, 8933, 8932, 8931, 8930, 8929, 8928, 8927, 8926, 8925, 8924, 8923, 8922, 8921, 8920, 8919, 8918, 8917, 8916, 8915, 8914, 8913, 8912, 8911, 8910, 8909, 8908, 8907, 8906, 8905, 8904, 8903, 8902, 8901, 8900, 8899, 8898, 8897, 8896, 8895, 8894, 8893, 8892, 8891, 8890, 8889, 8888, 8887, 8886, 8885, 8884, 8883, 8882, 8881, 8880, 8879, 8878, 8877, 8876, 8875, 8874, 8873, 8872, 8871, 8870, 8869, 8868, 8867, 8866, 8865, 8864, 8863, 8862, 8861, 8860, 8859, 8858, 8857, 8856, 8855, 8854, 8853, 8852, 8851, 8850, 8849, 8848, 8847, 8846, 8845, 8844, 8843, 8842, 8841, 8840, 8839, 8838, 8837, 8836, 8835, 8834, 8833, 8832, 8831, 8830, 8829, 8828, 8827, 8826, 8825, 8824, 8823, 8822, 8821, 8820, 8819, 8818, 8817, 8816, 8815, 8814, 8813, 8812, 8811, 8810, 8809, 8808, 8807, 8806, 8805, 8804, 8803, 8802, 8801, 8800, 8799, 8798, 8797, 8796, 8795, 8794, 8793, 8792, 8791, 8790, 8789, 8788, 8787, 8786, 8785, 8784, 8783, 8782, 8781, 8780, 8779, 8778, 8777, 8776, 8775, 8774, 8773, 8772, 8771, 8770, 8769, 8768, 8767, 8766, 8765, 8764, 8763, 8762, 8761, 8760, 8759, 8758, 8757, 8756, 8755, 8754, 8753, 8752, 8751, 8750, 8749, 8748, 8747, 8746, 8745, 8744, 8743, 8742, 8741, 8740, 8739, 8738, 8737, 8736, 8735, 8734, 8733, 8732, 8731, 8730, 8729, 8728, 8727, 8726, 8725, 8724, 8723, 8722, 8721, 8720, 8719, 8718, 8717, 8716, 8715, 8714, 8713, 8712, 8711, 8710, 8709, 8708, 8707, 8706, 8705, 8704, 8703, 8702, 8701, 8700, 8699, 8698, 8697, 8696, 8695, 8694, 8693, 8692, 8691, 8690, 8689, 8688, 8687, 8686, 8685, 8684, 8683, 8682, 8681, 8680, 8679, 8678, 8677, 8676, 8675, 8674, 8673, 8672, 8671, 8670, 8669, 8668, 8667, 8666, 8665, 8664, 8663, 8662, 8661, 8660, 8659, 8658, 8657, 8656, 8655, 8654, 8653, 8652, 8651, 8650, 8649, 8648, 8647, 8646, 8645, 8644, 8643, 8642, 8641, 8640, 8639, 8638, 8637, 8636, 8635, 8634, 8633, 8632, 8631, 8630, 8629, 8628, 8627, 8626, 8625, 8624, 8623, 8622, 8621, 8620, 8619, 8618, 8617, 8616, 8615, 8614, 8613, 8612, 8611, 8610, 8609, 8608, 8607, 8606, 8605, 8604, 8603, 8602, 8601, 8600, 8599, 8598, 8597, 8596, 8595, 8594, 8593, 8592, 8591, 8590, 8589, 8588, 8587, 8586, 8585, 8584, 8583, 8582, 8581, 8580, 8579, 8578, 8577, 8576, 8575, 8574, 8573, 8572, 8571, 8570, 8569, 8568, 8567, 8566, 8565, 8564, 8563, 8562, 8561, 8560, 8559, 8558, 8557, 8556, 8555, 8554, 8553, 8552, 8551, 8550, 8549, 8548, 8547, 8546, 8545, 8544, 8543, 8542, 8541, 8540, 8539, 8538, 8537, 8536, 8535, 8534, 8533, 8532, 8531, 8530, 8529, 8528, 8527, 8526, 8525, 8524, 8523, 8522, 8521, 8520, 8519, 8518, 8517, 8516, 8515, 8514, 8513, 8512, 8511, 8510, 8509, 8508, 8507, 8506, 8505, 8504, 8503, 8502, 8501, 8500, 8499, 8498, 8497, 8496, 8495, 8494, 8493, 8492, 8491, 8490, 8489, 8488, 8487, 8486, 8485, 8484, 8483, 8482, 8481, 8480, 8479, 8478, 8477, 8476, 8475, 8474, 8473, 8472, 8471, 8470, 8469, 8468, 8467, 8466, 8465, 8464, 8463, 8462, 8461, 8460, 8459, 8458, 8457, 8456, 8455, 8454, 8453, 8452, 8451, 8450, 8449, 8448, 8447, 8446, 8445, 8444, 8443, 8442, 8441, 8440, 8439, 8438, 8437, 8436, 8435, 8434, 8433, 8432, 8431, 8430, 8429, 8428, 8427, 8426, 8425, 8424, 8423, 8422, 8421, 8420, 8419, 8418, 8417, 8416, 8415, 8414, 8413, 8412, 8411, 8410, 8409, 8408, 8407, 8406, 8405, 8404, 8403, 8402, 8401, 8400, 8399, 8398, 8397, 8396, 8395, 8394, 8393, 8392, 8391, 8390, 8389, 8388, 8387, 8386, 8385, 8384, 8383, 8382, 8381, 8380, 8379, 8378, 8377, 8376, 8375, 8374, 8373, 8372, 8371, 8370, 8369, 8368, 8367, 8366, 8365, 8364, 8363, 8362, 8361, 8360, 8359, 8358, 8357, 8356, 8355, 8354, 8353, 8352, 8351, 8350, 8349, 8348, 8347, 8346, 8345, 8344, 8343, 8342, 8341, 8340, 8339, 8338, 8337, 8336, 8335, 8334, 8333, 8332, 8331, 8330, 8329, 8328, 8327, 8326, 8325, 8324, 8323, 8322, 8321, 8320, 8319, 8318, 8317, 8316, 8315, 8314, 8313, 8312, 8311, 8310, 8309, 8308, 8307, 8306, 8305, 8304, 8303, 8302, 8301, 8300, 8299, 8298, 8297, 8296, 8295, 8294, 8293, 8292, 8291, 8290, 8289, 8288, 8287, 8286, 8285, 8284, 8283, 8282, 8281, 8280, 8279, 8278, 8277, 8276, 8275, 8274, 8273, 8272, 8271, 8270, 8269, 8268, 8267, 8266, 8265, 8264, 8263, 8262, 8261, 8260, 8259, 8258, 8257, 8256, 8255, 8254, 8253, 8252, 8251, 8250, 8249, 8248, 8247, 8246, 8245, 8244, 8243, 8242, 8241, 8240, 8239, 8238, 8237, 8236, 8235, 8234, 8233, 8232, 8231, 8230, 8229, 8228, 8227, 8226, 8225, 8224, 8223, 8222, 8221, 8220, 8219, 8218, 8217, 8216, 8215, 8214, 8213, 8212, 8211, 8210, 8209, 8208, 8207, 8206, 8205, 8204, 8203, 8202, 8201, 8200, 8199, 8198, 8197, 8196, 8195, 8194, 8193, 8192, 8191, 8190, 8189, 8188, 8187, 8186, 8185, 8184, 8183, 8182, 8181, 8180, 8179, 8178, 8177, 8176, 8175, 8174, 8173, 8172, 8171, 8170, 8169, 8168, 8167, 8166, 8165, 8164, 8163, 8162, 8161, 8160, 8159, 8158, 8157, 8156, 8155, 8154, 8153, 8152, 8151, 8150, 8149, 8148, 8147, 8146, 8145, 8144, 8143, 8142, 8141, 8140, 8139, 8138, 8137, 8136, 8135, 8134, 8133, 8132, 8131, 8130, 8129, 8128, 8127, 8126, 8125, 8124, 8123, 8122, 8121, 8120, 8119, 8118, 8117, 8116, 8115, 8114, 8113, 8112, 8111, 8110, 8109, 8108, 8107, 8106, 8105, 8104, 8103, 8102, 8101, 8100, 8099, 8098, 8097, 8096, 8095, 8094, 8093, 8092, 8091, 8090, 8089, 8088, 8087, 8086, 8085, 8084, 8083, 8082, 8081, 8080, 8079, 8078, 8077, 8076, 8075, 8074, 8073, 8072, 8071, 8070, 8069, 8068, 8067, 8066, 8065, 8064, 8063, 8062, 8061, 8060, 8059, 8058, 8057, 8056, 8055, 8054, 8053, 8052, 8051, 8050, 8049, 8048, 8047, 8046, 8045, 8044, 8043, 8042, 8041, 8040, 8039, 8038, 8037, 8036, 8035, 8034, 8033, 8032, 8031, 8030, 8029, 8028, 8027, 8026, 8025, 8024, 8023, 8022, 8021, 8020, 8019, 8018, 8017, 8016, 8015, 8014, 8013, 8012, 8011, 8010, 8009, 8008, 8007, 8006, 8005, 8004, 8003, 8002, 8001, 8000, 7999, 7998, 7997, 7996, 7995, 7994, 7993, 7992, 7991, 7990, 7989, 7988, 7987, 7986, 7985, 7984, 7983, 7982, 7981, 7980, 7979, 7978, 7977, 7976, 7975, 7974, 7973, 7972, 7971, 7970, 7969, 7968, 7967, 7966, 7965, 7964, 7963, 7962, 7961, 7960, 7959, 7958, 7957, 7956, 7955, 7954, 7953, 7952, 7951, 7950, 7949, 7948, 7947, 7946, 7945, 7944, 7943, 7942, 7941, 7940, 7939, 7938, 7937, 7936, 7935, 7934, 7933, 7932, 7931, 7930, 7929, 7928, 7927, 7926, 7925, 7924, 7923, 7922, 7921, 7920, 7919, 7918, 7917, 7916, 7915, 7914, 7913, 7912, 7911, 7910, 7909, 7908, 7907, 7906, 7905, 7904, 7903, 7902, 7901, 7900, 7899, 7898, 7897, 7896, 7895, 7894, 7893, 7892, 7891, 7890, 7889, 7888, 7887, 7886, 7885, 7884, 7883, 7882, 7881, 7880, 7879, 7878, 7877, 7876, 7875, 7874, 7873, 7872, 7871, 7870, 7869, 7868, 7867, 7866, 7865, 7864, 7863, 7862, 7861, 7860, 7859, 7858, 7857, 7856, 7855, 7854, 7853, 7852, 7851, 7850, 7849, 7848, 7847, 7846, 7845, 7844, 7843, 7842, 7841, 7840, 7839, 7838, 7837, 7836, 7835, 7834, 7833, 7832, 7831, 7830, 7829, 7828, 7827, 7826, 7825, 7824, 7823, 7822, 7821, 7820, 7819, 7818, 7817, 7816, 7815, 7814, 7813, 7812, 7811, 7810, 7809, 7808, 7807, 7806, 7805, 7804, 7803, 7802, 7801, 7800, 7799, 7798, 7797, 7796, 7795, 7794, 7793, 7792, 7791, 7790, 7789, 7788, 7787, 7786, 7785, 7784, 7783, 7782, 7781, 7780, 7779, 7778, 7777, 7776, 7775, 7774, 7773, 7772, 7771, 7770, 7769, 7768, 7767, 7766, 7765, 7764, 7763, 7762, 7761, 7760, 7759, 7758, 7757, 7756, 7755, 7754, 7753, 7752, 7751, 7750, 7749, 7748, 7747, 7746, 7745, 7744, 7743, 7742, 7741, 7740, 7739, 7738, 7737, 7736, 7735, 7734, 7733, 7732, 7731, 7730, 7729, 7728, 7727, 7726, 7725, 7724, 7723, 7722, 7721, 7720, 7719, 7718, 7717, 7716, 7715, 7714, 7713, 7712, 7711, 7710, 7709, 7708, 7707, 7706, 7705, 7704, 7703, 7702, 7701, 7700, 7699, 7698, 7697, 7696, 7695, 7694, 7693, 7692, 7691, 7690, 7689, 7688, 7687, 7686, 7685, 7684, 7683, 7682, 7681, 7680, 7679, 7678, 7677, 7676, 7675, 7674, 7673, 7672, 7671, 7670, 7669, 7668, 7667, 7666, 7665, 7664, 7663, 7662, 7661, 7660, 7659, 7658, 7657, 7656, 7655, 7654, 7653, 7652, 7651, 7650, 7649, 7648, 7647, 7646, 7645, 7644, 7643, 7642, 7641, 7640, 7639, 7638, 7637, 7636, 7635, 7634, 7633, 7632, 7631, 7630, 7629, 7628, 7627, 7626, 7625, 7624, 7623, 7622, 7621, 7620, 7619, 7618, 7617, 7616, 7615, 7614, 7613, 7612, 7611, 7610, 7609, 7608, 7607, 7606, 7605, 7604, 7603, 7602, 7601, 7600, 7599, 7598, 7597, 7596, 7595, 7594, 7593, 7592, 7591, 7590, 7589, 7588, 7587, 7586, 7585, 7584, 7583, 7582, 7581, 7580, 7579, 7578, 7577, 7576, 7575, 7574, 7573, 7572, 7571, 7570, 7569, 7568, 7567, 7566, 7565, 7564, 7563, 7562, 7561, 7560, 7559, 7558, 7557, 7556, 7555, 7554, 7553, 7552, 7551, 7550, 7549, 7548, 7547, 7546, 7545, 7544, 7543, 7542, 7541, 7540, 7539, 7538, 7537, 7536, 7535, 7534, 7533, 7532, 7531, 7530, 7529, 7528, 7527, 7526, 7525, 7524, 7523, 7522, 7521, 7520, 7519, 7518, 7517, 7516, 7515, 7514, 7513, 7512, 7511, 7510, 7509, 7508, 7507, 7506, 7505, 7504, 7503, 7502, 7501, 7500, 7499, 7498, 7497, 7496, 7495, 7494, 7493, 7492, 7491, 7490, 7489, 7488, 7487, 7486, 7485, 7484, 7483, 7482, 7481, 7480, 7479, 7478, 7477, 7476, 7475, 7474, 7473, 7472, 7471, 7470, 7469, 7468, 7467, 7466, 7465, 7464, 7463, 7462, 7461, 7460, 7459, 7458, 7457, 7456, 7455, 7454, 7453, 7452, 7451, 7450, 7449, 7448, 7447, 7446, 7445, 7444, 7443, 7442, 7441, 7440, 7439, 7438, 7437, 7436, 7435, 7434, 7433, 7432, 7431, 7430, 7429, 7428, 7427, 7426, 7425, 7424, 7423, 7422, 7421, 7420, 7419, 7418, 7417, 7416, 7415, 7414, 7413, 7412, 7411, 7410, 7409, 7408, 7407, 7406, 7405, 7404, 7403, 7402, 7401, 7400, 7399, 7398, 7397, 7396, 7395, 7394, 7393, 7392, 7391, 7390, 7389, 7388, 7387, 7386, 7385, 7384, 7383, 7382, 7381, 7380, 7379, 7378, 7377, 7376, 7375, 7374, 7373, 7372, 7371, 7370, 7369, 7368, 7367, 7366, 7365, 7364, 7363, 7362, 7361, 7360, 7359, 7358, 7357, 7356, 7355, 7354, 7353, 7352, 7351, 7350, 7349, 7348, 7347, 7346, 7345, 7344, 7343, 7342, 7341, 7340, 7339, 7338, 7337, 7336, 7335, 7334, 7333, 7332, 7331, 7330, 7329, 7328, 7327, 7326, 7325, 7324, 7323, 7322, 7321, 7320, 7319, 7318, 7317, 7316, 7315, 7314, 7313, 7312, 7311, 7310, 7309, 7308, 7307, 7306, 7305, 7304, 7303, 7302, 7301, 7300, 7299, 7298, 7297, 7296, 7295, 7294, 7293, 7292, 7291, 7290, 7289, 7288, 7287, 7286, 7285, 7284, 7283, 7282, 7281, 7280, 7279, 7278, 7277, 7276, 7275, 7274, 7273, 7272, 7271, 7270, 7269, 7268, 7267, 7266, 7265, 7264, 7263, 7262, 7261, 7260, 7259, 7258, 7257, 7256, 7255, 7254, 7253, 7252, 7251, 7250, 7249, 7248, 7247, 7246, 7245, 7244, 7243, 7242, 7241, 7240, 7239, 7238, 7237, 7236, 7235, 7234, 7233, 7232, 7231, 7230, 7229, 7228, 7227, 7226, 7225, 7224, 7223, 7222, 7221, 7220, 7219, 7218, 7217, 7216, 7215, 7214, 7213, 7212, 7211, 7210, 7209, 7208, 7207, 7206, 7205, 7204, 7203, 7202, 7201, 7200, 7199, 7198, 7197, 7196, 7195, 7194, 7193, 7192, 7191, 7190, 7189, 7188, 7187, 7186, 7185, 7184, 7183, 7182, 7181, 7180, 7179, 7178, 7177, 7176, 7175, 7174, 7173, 7172, 7171, 7170, 7169, 7168, 7167, 7166, 7165, 7164, 7163, 7162, 7161, 7160, 7159, 7158, 7157, 7156, 7155, 7154, 7153, 7152, 7151, 7150, 7149, 7148, 7147, 7146, 7145, 7144, 7143, 7142, 7141, 7140, 7139, 7138, 7137, 7136, 7135, 7134, 7133, 7132, 7131, 7130, 7129, 7128, 7127, 7126, 7125, 7124, 7123, 7122, 7121, 7120, 7119, 7118, 7117, 7116, 7115, 7114, 7113, 7112, 7111, 7110, 7109, 7108, 7107, 7106, 7105, 7104, 7103, 7102, 7101, 7100, 7099, 7098, 7097, 7096, 7095, 7094, 7093, 7092, 7091, 7090, 7089, 7088, 7087, 7086, 7085, 7084, 7083, 7082, 7081, 7080, 7079, 7078, 7077, 7076, 7075, 7074, 7073, 7072, 7071, 7070, 7069, 7068, 7067, 7066, 7065, 7064, 7063, 7062, 7061, 7060, 7059, 7058, 7057, 7056, 7055, 7054, 7053, 7052, 7051, 7050, 7049, 7048, 7047, 7046, 7045, 7044, 7043, 7042, 7041, 7040, 7039, 7038, 7037, 7036, 7035, 7034, 7033, 7032, 7031, 7030, 7029, 7028, 7027, 7026, 7025, 7024, 7023, 7022, 7021, 7020, 7019, 7018, 7017, 7016, 7015, 7014, 7013, 7012, 7011, 7010, 7009, 7008, 7007, 7006, 7005, 7004, 7003, 7002, 7001, 7000, 6999, 6998, 6997, 6996, 6995, 6994, 6993, 6992, 6991, 6990, 6989, 6988, 6987, 6986, 6985, 6984, 6983, 6982, 6981, 6980, 6979, 6978, 6977, 6976, 6975, 6974, 6973, 6972, 6971, 6970, 6969, 6968, 6967, 6966, 6965, 6964, 6963, 6962, 6961, 6960, 6959, 6958, 6957, 6956, 6955, 6954, 6953, 6952, 6951, 6950, 6949, 6948, 6947, 6946, 6945, 6944, 6943, 6942, 6941, 6940, 6939, 6938, 6937, 6936, 6935, 6934, 6933, 6932, 6931, 6930, 6929, 6928, 6927, 6926, 6925, 6924, 6923, 6922, 6921, 6920, 6919, 6918, 6917, 6916, 6915, 6914, 6913, 6912, 6911, 6910, 6909, 6908, 6907, 6906, 6905, 6904, 6903, 6902, 6901, 6900, 6899, 6898, 6897, 6896, 6895, 6894, 6893, 6892, 6891, 6890, 6889, 6888, 6887, 6886, 6885, 6884, 6883, 6882, 6881, 6880, 6879, 6878, 6877, 6876, 6875, 6874, 6873, 6872, 6871, 6870, 6869, 6868, 6867, 6866, 6865, 6864, 6863, 6862, 6861, 6860, 6859, 6858, 6857, 6856, 6855, 6854, 6853, 6852, 6851, 6850, 6849, 6848, 6847, 6846, 6845, 6844, 6843, 6842, 6841, 6840, 6839, 6838, 6837, 6836, 6835, 6834, 6833, 6832, 6831, 6830, 6829, 6828, 6827, 6826, 6825, 6824, 6823, 6822, 6821, 6820, 6819, 6818, 6817, 6816, 6815, 6814, 6813, 6812, 6811, 6810, 6809, 6808, 6807, 6806, 6805, 6804, 6803, 6802, 6801, 6800, 6799, 6798, 6797, 6796, 6795, 6794, 6793, 6792, 6791, 6790, 6789, 6788, 6787, 6786, 6785, 6784, 6783, 6782, 6781, 6780, 6779, 6778, 6777, 6776, 6775, 6774, 6773, 6772, 6771, 6770, 6769, 6768, 6767, 6766, 6765, 6764, 6763, 6762, 6761, 6760, 6759, 6758, 6757, 6756, 6755, 6754, 6753, 6752, 6751, 6750, 6749, 6748, 6747, 6746, 6745, 6744, 6743, 6742, 6741, 6740, 6739, 6738, 6737, 6736, 6735, 6734, 6733, 6732, 6731, 6730, 6729, 6728, 6727, 6726, 6725, 6724, 6723, 6722, 6721, 6720, 6719, 6718, 6717, 6716, 6715, 6714, 6713, 6712, 6711, 6710, 6709, 6708, 6707, 6706, 6705, 6704, 6703, 6702, 6701, 6700, 6699, 6698, 6697, 6696, 6695, 6694, 6693, 6692, 6691, 6690, 6689, 6688, 6687, 6686, 6685, 6684, 6683, 6682, 6681, 6680, 6679, 6678, 6677, 6676, 6675, 6674, 6673, 6672, 6671, 6670, 6669, 6668, 6667, 6666, 6665, 6664, 6663, 6662, 6661, 6660, 6659, 6658, 6657, 6656, 6655, 6654, 6653, 6652, 6651, 6650, 6649, 6648, 6647, 6646, 6645, 6644, 6643, 6642, 6641, 6640, 6639, 6638, 6637, 6636, 6635, 6634, 6633, 6632, 6631, 6630, 6629, 6628, 6627, 6626, 6625, 6624, 6623, 6622, 6621, 6620, 6619, 6618, 6617, 6616, 6615, 6614, 6613, 6612, 6611, 6610, 6609, 6608, 6607, 6606, 6605, 6604, 6603, 6602, 6601, 6600, 6599, 6598, 6597, 6596, 6595, 6594, 6593, 6592, 6591, 6590, 6589, 6588, 6587, 6586, 6585, 6584, 6583, 6582, 6581, 6580, 6579, 6578, 6577, 6576, 6575, 6574, 6573, 6572, 6571, 6570, 6569, 6568, 6567, 6566, 6565, 6564, 6563, 6562, 6561, 6560, 6559, 6558, 6557, 6556, 6555, 6554, 6553, 6552, 6551, 6550, 6549, 6548, 6547, 6546, 6545, 6544, 6543, 6542, 6541, 6540, 6539, 6538, 6537, 6536, 6535, 6534, 6533, 6532, 6531, 6530, 6529, 6528, 6527, 6526, 6525, 6524, 6523, 6522, 6521, 6520, 6519, 6518, 6517, 6516, 6515, 6514, 6513, 6512, 6511, 6510, 6509, 6508, 6507, 6506, 6505, 6504, 6503, 6502, 6501, 6500, 6499, 6498, 6497, 6496, 6495, 6494, 6493, 6492, 6491, 6490, 6489, 6488, 6487, 6486, 6485, 6484, 6483, 6482, 6481, 6480, 6479, 6478, 6477, 6476, 6475, 6474, 6473, 6472, 6471, 6470, 6469, 6468, 6467, 6466, 6465, 6464, 6463, 6462, 6461, 6460, 6459, 6458, 6457, 6456, 6455, 6454, 6453, 6452, 6451, 6450, 6449, 6448, 6447, 6446, 6445, 6444, 6443, 6442, 6441, 6440, 6439, 6438, 6437, 6436, 6435, 6434, 6433, 6432, 6431, 6430, 6429, 6428, 6427, 6426, 6425, 6424, 6423, 6422, 6421, 6420, 6419, 6418, 6417, 6416, 6415, 6414, 6413, 6412, 6411, 6410, 6409, 6408, 6407, 6406, 6405, 6404, 6403, 6402, 6401, 6400, 6399, 6398, 6397, 6396, 6395, 6394, 6393, 6392, 6391, 6390, 6389, 6388, 6387, 6386, 6385, 6384, 6383, 6382, 6381, 6380, 6379, 6378, 6377, 6376, 6375, 6374, 6373, 6372, 6371, 6370, 6369, 6368, 6367, 6366, 6365, 6364, 6363, 6362, 6361, 6360, 6359, 6358, 6357, 6356, 6355, 6354, 6353, 6352, 6351, 6350, 6349, 6348, 6347, 6346, 6345, 6344, 6343, 6342, 6341, 6340, 6339, 6338, 6337, 6336, 6335, 6334, 6333, 6332, 6331, 6330, 6329, 6328, 6327, 6326, 6325, 6324, 6323, 6322, 6321, 6320, 6319, 6318, 6317, 6316, 6315, 6314, 6313, 6312, 6311, 6310, 6309, 6308, 6307, 6306, 6305, 6304, 6303, 6302, 6301, 6300, 6299, 6298, 6297, 6296, 6295, 6294, 6293, 6292, 6291, 6290, 6289, 6288, 6287, 6286, 6285, 6284, 6283, 6282, 6281, 6280, 6279, 6278, 6277, 6276, 6275, 6274, 6273, 6272, 6271, 6270, 6269, 6268, 6267, 6266, 6265, 6264, 6263, 6262, 6261, 6260, 6259, 6258, 6257, 6256, 6255, 6254, 6253, 6252, 6251, 6250, 6249, 6248, 6247, 6246, 6245, 6244, 6243, 6242, 6241, 6240, 6239, 6238, 6237, 6236, 6235, 6234, 6233, 6232, 6231, 6230, 6229, 6228, 6227, 6226, 6225, 6224, 6223, 6222, 6221, 6220, 6219, 6218, 6217, 6216, 6215, 6214, 6213, 6212, 6211, 6210, 6209, 6208, 6207, 6206, 6205, 6204, 6203, 6202, 6201, 6200, 6199, 6198, 6197, 6196, 6195, 6194, 6193, 6192, 6191, 6190, 6189, 6188, 6187, 6186, 6185, 6184, 6183, 6182, 6181, 6180, 6179, 6178, 6177, 6176, 6175, 6174, 6173, 6172, 6171, 6170, 6169, 6168, 6167, 6166, 6165, 6164, 6163, 6162, 6161, 6160, 6159, 6158, 6157, 6156, 6155, 6154, 6153, 6152, 6151, 6150, 6149, 6148, 6147, 6146, 6145, 6144, 6143, 6142, 6141, 6140, 6139, 6138, 6137, 6136, 6135, 6134, 6133, 6132, 6131, 6130, 6129, 6128, 6127, 6126, 6125, 6124, 6123, 6122, 6121, 6120, 6119, 6118, 6117, 6116, 6115, 6114, 6113, 6112, 6111, 6110, 6109, 6108, 6107, 6106, 6105, 6104, 6103, 6102, 6101, 6100, 6099, 6098, 6097, 6096, 6095, 6094, 6093, 6092, 6091, 6090, 6089, 6088, 6087, 6086, 6085, 6084, 6083, 6082, 6081, 6080, 6079, 6078, 6077, 6076, 6075, 6074, 6073, 6072, 6071, 6070, 6069, 6068, 6067, 6066, 6065, 6064, 6063, 6062, 6061, 6060, 6059, 6058, 6057, 6056, 6055, 6054, 6053, 6052, 6051, 6050, 6049, 6048, 6047, 6046, 6045, 6044, 6043, 6042, 6041, 6040, 6039, 6038, 6037, 6036, 6035, 6034, 6033, 6032, 6031, 6030, 6029, 6028, 6027, 6026, 6025, 6024, 6023, 6022, 6021, 6020, 6019, 6018, 6017, 6016, 6015, 6014, 6013, 6012, 6011, 6010, 6009, 6008, 6007, 6006, 6005, 6004, 6003, 6002, 6001, 6000, 5999, 5998, 5997, 5996, 5995, 5994, 5993, 5992, 5991, 5990, 5989, 5988, 5987, 5986, 5985, 5984, 5983, 5982, 5981, 5980, 5979, 5978, 5977, 5976, 5975, 5974, 5973, 5972, 5971, 5970, 5969, 5968, 5967, 5966, 5965, 5964, 5963, 5962, 5961, 5960, 5959, 5958, 5957, 5956, 5955, 5954, 5953, 5952, 5951, 5950, 5949, 5948, 5947, 5946, 5945, 5944, 5943, 5942, 5941, 5940, 5939, 5938, 5937, 5936, 5935, 5934, 5933, 5932, 5931, 5930, 5929, 5928, 5927, 5926, 5925, 5924, 5923, 5922, 5921, 5920, 5919, 5918, 5917, 5916, 5915, 5914, 5913, 5912, 5911, 5910, 5909, 5908, 5907, 5906, 5905, 5904, 5903, 5902, 5901, 5900, 5899, 5898, 5897, 5896, 5895, 5894, 5893, 5892, 5891, 5890, 5889, 5888, 5887, 5886, 5885, 5884, 5883, 5882, 5881, 5880, 5879, 5878, 5877, 5876, 5875, 5874, 5873, 5872, 5871, 5870, 5869, 5868, 5867, 5866, 5865, 5864, 5863, 5862, 5861, 5860, 5859, 5858, 5857, 5856, 5855, 5854, 5853, 5852, 5851, 5850, 5849, 5848, 5847, 5846, 5845, 5844, 5843, 5842, 5841, 5840, 5839, 5838, 5837, 5836, 5835, 5834, 5833, 5832, 5831, 5830, 5829, 5828, 5827, 5826, 5825, 5824, 5823, 5822, 5821, 5820, 5819, 5818, 5817, 5816, 5815, 5814, 5813, 5812, 5811, 5810, 5809, 5808, 5807, 5806, 5805, 5804, 5803, 5802, 5801, 5800, 5799, 5798, 5797, 5796, 5795, 5794, 5793, 5792, 5791, 5790, 5789, 5788, 5787, 5786, 5785, 5784, 5783, 5782, 5781, 5780, 5779, 5778, 5777, 5776, 5775, 5774, 5773, 5772, 5771, 5770, 5769, 5768, 5767, 5766, 5765, 5764, 5763, 5762, 5761, 5760, 5759, 5758, 5757, 5756, 5755, 5754, 5753, 5752, 5751, 5750, 5749, 5748, 5747, 5746, 5745, 5744, 5743, 5742, 5741, 5740, 5739, 5738, 5737, 5736, 5735, 5734, 5733, 5732, 5731, 5730, 5729, 5728, 5727, 5726, 5725, 5724, 5723, 5722, 5721, 5720, 5719, 5718, 5717, 5716, 5715, 5714, 5713, 5712, 5711, 5710, 5709, 5708, 5707, 5706, 5705, 5704, 5703, 5702, 5701, 5700, 5699, 5698, 5697, 5696, 5695, 5694, 5693, 5692, 5691, 5690, 5689, 5688, 5687, 5686, 5685, 5684, 5683, 5682, 5681, 5680, 5679, 5678, 5677, 5676, 5675, 5674, 5673, 5672, 5671, 5670, 5669, 5668, 5667, 5666, 5665, 5664, 5663, 5662, 5661, 5660, 5659, 5658, 5657, 5656, 5655, 5654, 5653, 5652, 5651, 5650, 5649, 5648, 5647, 5646, 5645, 5644, 5643, 5642, 5641, 5640, 5639, 5638, 5637, 5636, 5635, 5634, 5633, 5632, 5631, 5630, 5629, 5628, 5627, 5626, 5625, 5624, 5623, 5622, 5621, 5620, 5619, 5618, 5617, 5616, 5615, 5614, 5613, 5612, 5611, 5610, 5609, 5608, 5607, 5606, 5605, 5604, 5603, 5602, 5601, 5600, 5599, 5598, 5597, 5596, 5595, 5594, 5593, 5592, 5591, 5590, 5589, 5588, 5587, 5586, 5585, 5584, 5583, 5582, 5581, 5580, 5579, 5578, 5577, 5576, 5575, 5574, 5573, 5572, 5571, 5570, 5569, 5568, 5567, 5566, 5565, 5564, 5563, 5562, 5561, 5560, 5559, 5558, 5557, 5556, 5555, 5554, 5553, 5552, 5551, 5550, 5549, 5548, 5547, 5546, 5545, 5544, 5543, 5542, 5541, 5540, 5539, 5538, 5537, 5536, 5535, 5534, 5533, 5532, 5531, 5530, 5529, 5528, 5527, 5526, 5525, 5524, 5523, 5522, 5521, 5520, 5519, 5518, 5517, 5516, 5515, 5514, 5513, 5512, 5511, 5510, 5509, 5508, 5507, 5506, 5505, 5504, 5503, 5502, 5501, 5500, 5499, 5498, 5497, 5496, 5495, 5494, 5493, 5492, 5491, 5490, 5489, 5488, 5487, 5486, 5485, 5484, 5483, 5482, 5481, 5480, 5479, 5478, 5477, 5476, 5475, 5474, 5473, 5472, 5471, 5470, 5469, 5468, 5467, 5466, 5465, 5464, 5463, 5462, 5461, 5460, 5459, 5458, 5457, 5456, 5455, 5454, 5453, 5452, 5451, 5450, 5449, 5448, 5447, 5446, 5445, 5444, 5443, 5442, 5441, 5440, 5439, 5438, 5437, 5436, 5435, 5434, 5433, 5432, 5431, 5430, 5429, 5428, 5427, 5426, 5425, 5424, 5423, 5422, 5421, 5420, 5419, 5418, 5417, 5416, 5415, 5414, 5413, 5412, 5411, 5410, 5409, 5408, 5407, 5406, 5405, 5404, 5403, 5402, 5401, 5400, 5399, 5398, 5397, 5396, 5395, 5394, 5393, 5392, 5391, 5390, 5389, 5388, 5387, 5386, 5385, 5384, 5383, 5382, 5381, 5380, 5379, 5378, 5377, 5376, 5375, 5374, 5373, 5372, 5371, 5370, 5369, 5368, 5367, 5366, 5365, 5364, 5363, 5362, 5361, 5360, 5359, 5358, 5357, 5356, 5355, 5354, 5353, 5352, 5351, 5350, 5349, 5348, 5347, 5346, 5345, 5344, 5343, 5342, 5341, 5340, 5339, 5338, 5337, 5336, 5335, 5334, 5333, 5332, 5331, 5330, 5329, 5328, 5327, 5326, 5325, 5324, 5323, 5322, 5321, 5320, 5319, 5318, 5317, 5316, 5315, 5314, 5313, 5312, 5311, 5310, 5309, 5308, 5307, 5306, 5305, 5304, 5303, 5302, 5301, 5300, 5299, 5298, 5297, 5296, 5295, 5294, 5293, 5292, 5291, 5290, 5289, 5288, 5287, 5286, 5285, 5284, 5283, 5282, 5281, 5280, 5279, 5278, 5277, 5276, 5275, 5274, 5273, 5272, 5271, 5270, 5269, 5268, 5267, 5266, 5265, 5264, 5263, 5262, 5261, 5260, 5259, 5258, 5257, 5256, 5255, 5254, 5253, 5252, 5251, 5250, 5249, 5248, 5247, 5246, 5245, 5244, 5243, 5242, 5241, 5240, 5239, 5238, 5237, 5236, 5235, 5234, 5233, 5232, 5231, 5230, 5229, 5228, 5227, 5226, 5225, 5224, 5223, 5222, 5221, 5220, 5219, 5218, 5217, 5216, 5215, 5214, 5213, 5212, 5211, 5210, 5209, 5208, 5207, 5206, 5205, 5204, 5203, 5202, 5201, 5200, 5199, 5198, 5197, 5196, 5195, 5194, 5193, 5192, 5191, 5190, 5189, 5188, 5187, 5186, 5185, 5184, 5183, 5182, 5181, 5180, 5179, 5178, 5177, 5176, 5175, 5174, 5173, 5172, 5171, 5170, 5169, 5168, 5167, 5166, 5165, 5164, 5163, 5162, 5161, 5160, 5159, 5158, 5157, 5156, 5155, 5154, 5153, 5152, 5151, 5150, 5149, 5148, 5147, 5146, 5145, 5144, 5143, 5142, 5141, 5140, 5139, 5138, 5137, 5136, 5135, 5134, 5133, 5132, 5131, 5130, 5129, 5128, 5127, 5126, 5125, 5124, 5123, 5122, 5121, 5120, 5119, 5118, 5117, 5116, 5115, 5114, 5113, 5112, 5111, 5110, 5109, 5108, 5107, 5106, 5105, 5104, 5103, 5102, 5101, 5100, 5099, 5098, 5097, 5096, 5095, 5094, 5093, 5092, 5091, 5090, 5089, 5088, 5087, 5086, 5085, 5084, 5083, 5082, 5081, 5080, 5079, 5078, 5077, 5076, 5075, 5074, 5073, 5072, 5071, 5070, 5069, 5068, 5067, 5066, 5065, 5064, 5063, 5062, 5061, 5060, 5059, 5058, 5057, 5056, 5055, 5054, 5053, 5052, 5051, 5050, 5049, 5048, 5047, 5046, 5045, 5044, 5043, 5042, 5041, 5040, 5039, 5038, 5037, 5036, 5035, 5034, 5033, 5032, 5031, 5030, 5029, 5028, 5027, 5026, 5025, 5024, 5023, 5022, 5021, 5020, 5019, 5018, 5017, 5016, 5015, 5014, 5013, 5012, 5011, 5010, 5009, 5008, 5007, 5006, 5005, 5004, 5003, 5002, 5001, 5000, 4999, 4998, 4997, 4996, 4995, 4994, 4993, 4992, 4991, 4990, 4989, 4988, 4987, 4986, 4985, 4984, 4983, 4982, 4981, 4980, 4979, 4978, 4977, 4976, 4975, 4974, 4973, 4972, 4971, 4970, 4969, 4968, 4967, 4966, 4965, 4964, 4963, 4962, 4961, 4960, 4959, 4958, 4957, 4956, 4955, 4954, 4953, 4952, 4951, 4950, 4949, 4948, 4947, 4946, 4945, 4944, 4943, 4942, 4941, 4940, 4939, 4938, 4937, 4936, 4935, 4934, 4933, 4932, 4931, 4930, 4929, 4928, 4927, 4926, 4925, 4924, 4923, 4922, 4921, 4920, 4919, 4918, 4917, 4916, 4915, 4914, 4913, 4912, 4911, 4910, 4909, 4908, 4907, 4906, 4905, 4904, 4903, 4902, 4901, 4900, 4899, 4898, 4897, 4896, 4895, 4894, 4893, 4892, 4891, 4890, 4889, 4888, 4887, 4886, 4885, 4884, 4883, 4882, 4881, 4880, 4879, 4878, 4877, 4876, 4875, 4874, 4873, 4872, 4871, 4870, 4869, 4868, 4867, 4866, 4865, 4864, 4863, 4862, 4861, 4860, 4859, 4858, 4857, 4856, 4855, 4854, 4853, 4852, 4851, 4850, 4849, 4848, 4847, 4846, 4845, 4844, 4843, 4842, 4841, 4840, 4839, 4838, 4837, 4836, 4835, 4834, 4833, 4832, 4831, 4830, 4829, 4828, 4827, 4826, 4825, 4824, 4823, 4822, 4821, 4820, 4819, 4818, 4817, 4816, 4815, 4814, 4813, 4812, 4811, 4810, 4809, 4808, 4807, 4806, 4805, 4804, 4803, 4802, 4801, 4800, 4799, 4798, 4797, 4796, 4795, 4794, 4793, 4792, 4791, 4790, 4789, 4788, 4787, 4786, 4785, 4784, 4783, 4782, 4781, 4780, 4779, 4778, 4777, 4776, 4775, 4774, 4773, 4772, 4771, 4770, 4769, 4768, 4767, 4766, 4765, 4764, 4763, 4762, 4761, 4760, 4759, 4758, 4757, 4756, 4755, 4754, 4753, 4752, 4751, 4750, 4749, 4748, 4747, 4746, 4745, 4744, 4743, 4742, 4741, 4740, 4739, 4738, 4737, 4736, 4735, 4734, 4733, 4732, 4731, 4730, 4729, 4728, 4727, 4726, 4725, 4724, 4723, 4722, 4721, 4720, 4719, 4718, 4717, 4716, 4715, 4714, 4713, 4712, 4711, 4710, 4709, 4708, 4707, 4706, 4705, 4704, 4703, 4702, 4701, 4700, 4699, 4698, 4697, 4696, 4695, 4694, 4693, 4692, 4691, 4690, 4689, 4688, 4687, 4686, 4685, 4684, 4683, 4682, 4681, 4680, 4679, 4678, 4677, 4676, 4675, 4674, 4673, 4672, 4671, 4670, 4669, 4668, 4667, 4666, 4665, 4664, 4663, 4662, 4661, 4660, 4659, 4658, 4657, 4656, 4655, 4654, 4653, 4652, 4651, 4650, 4649, 4648, 4647, 4646, 4645, 4644, 4643, 4642, 4641, 4640, 4639, 4638, 4637, 4636, 4635, 4634, 4633, 4632, 4631, 4630, 4629, 4628, 4627, 4626, 4625, 4624, 4623, 4622, 4621, 4620, 4619, 4618, 4617, 4616, 4615, 4614, 4613, 4612, 4611, 4610, 4609, 4608, 4607, 4606, 4605, 4604, 4603, 4602, 4601, 4600, 4599, 4598, 4597, 4596, 4595, 4594, 4593, 4592, 4591, 4590, 4589, 4588, 4587, 4586, 4585, 4584, 4583, 4582, 4581, 4580, 4579, 4578, 4577, 4576, 4575, 4574, 4573, 4572, 4571, 4570, 4569, 4568, 4567, 4566, 4565, 4564, 4563, 4562, 4561, 4560, 4559, 4558, 4557, 4556, 4555, 4554, 4553, 4552, 4551, 4550, 4549, 4548, 4547, 4546, 4545, 4544, 4543, 4542, 4541, 4540, 4539, 4538, 4537, 4536, 4535, 4534, 4533, 4532, 4531, 4530, 4529, 4528, 4527, 4526, 4525, 4524, 4523, 4522, 4521, 4520, 4519, 4518, 4517, 4516, 4515, 4514, 4513, 4512, 4511, 4510, 4509, 4508, 4507, 4506, 4505, 4504, 4503, 4502, 4501, 4500, 4499, 4498, 4497, 4496, 4495, 4494, 4493, 4492, 4491, 4490, 4489, 4488, 4487, 4486, 4485, 4484, 4483, 4482, 4481, 4480, 4479, 4478, 4477, 4476, 4475, 4474, 4473, 4472, 4471, 4470, 4469, 4468, 4467, 4466, 4465, 4464, 4463, 4462, 4461, 4460, 4459, 4458, 4457, 4456, 4455, 4454, 4453, 4452, 4451, 4450, 4449, 4448, 4447, 4446, 4445, 4444, 4443, 4442, 4441, 4440, 4439, 4438, 4437, 4436, 4435, 4434, 4433, 4432, 4431, 4430, 4429, 4428, 4427, 4426, 4425, 4424, 4423, 4422, 4421, 4420, 4419, 4418, 4417, 4416, 4415, 4414, 4413, 4412, 4411, 4410, 4409, 4408, 4407, 4406, 4405, 4404, 4403, 4402, 4401, 4400, 4399, 4398, 4397, 4396, 4395, 4394, 4393, 4392, 4391, 4390, 4389, 4388, 4387, 4386, 4385, 4384, 4383, 4382, 4381, 4380, 4379, 4378, 4377, 4376, 4375, 4374, 4373, 4372, 4371, 4370, 4369, 4368, 4367, 4366, 4365, 4364, 4363, 4362, 4361, 4360, 4359, 4358, 4357, 4356, 4355, 4354, 4353, 4352, 4351, 4350, 4349, 4348, 4347, 4346, 4345, 4344, 4343, 4342, 4341, 4340, 4339, 4338, 4337, 4336, 4335, 4334, 4333, 4332, 4331, 4330, 4329, 4328, 4327, 4326, 4325, 4324, 4323, 4322, 4321, 4320, 4319, 4318, 4317, 4316, 4315, 4314, 4313, 4312, 4311, 4310, 4309, 4308, 4307, 4306, 4305, 4304, 4303, 4302, 4301, 4300, 4299, 4298, 4297, 4296, 4295, 4294, 4293, 4292, 4291, 4290, 4289, 4288, 4287, 4286, 4285, 4284, 4283, 4282, 4281, 4280, 4279, 4278, 4277, 4276, 4275, 4274, 4273, 4272, 4271, 4270, 4269, 4268, 4267, 4266, 4265, 4264, 4263, 4262, 4261, 4260, 4259, 4258, 4257, 4256, 4255, 4254, 4253, 4252, 4251, 4250, 4249, 4248, 4247, 4246, 4245, 4244, 4243, 4242, 4241, 4240, 4239, 4238, 4237, 4236, 4235, 4234, 4233, 4232, 4231, 4230, 4229, 4228, 4227, 4226, 4225, 4224, 4223, 4222, 4221, 4220, 4219, 4218, 4217, 4216, 4215, 4214, 4213, 4212, 4211, 4210, 4209, 4208, 4207, 4206, 4205, 4204, 4203, 4202, 4201, 4200, 4199, 4198, 4197, 4196, 4195, 4194, 4193, 4192, 4191, 4190, 4189, 4188, 4187, 4186, 4185, 4184, 4183, 4182, 4181, 4180, 4179, 4178, 4177, 4176, 4175, 4174, 4173, 4172, 4171, 4170, 4169, 4168, 4167, 4166, 4165, 4164, 4163, 4162, 4161, 4160, 4159, 4158, 4157, 4156, 4155, 4154, 4153, 4152, 4151, 4150, 4149, 4148, 4147, 4146, 4145, 4144, 4143, 4142, 4141, 4140, 4139, 4138, 4137, 4136, 4135, 4134, 4133, 4132, 4131, 4130, 4129, 4128, 4127, 4126, 4125, 4124, 4123, 4122, 4121, 4120, 4119, 4118, 4117, 4116, 4115, 4114, 4113, 4112, 4111, 4110, 4109, 4108, 4107, 4106, 4105, 4104, 4103, 4102, 4101, 4100, 4099, 4098, 4097, 4096, 4095, 4094, 4093, 4092, 4091, 4090, 4089, 4088, 4087, 4086, 4085, 4084, 4083, 4082, 4081, 4080, 4079, 4078, 4077, 4076, 4075, 4074, 4073, 4072, 4071, 4070, 4069, 4068, 4067, 4066, 4065, 4064, 4063, 4062, 4061, 4060, 4059, 4058, 4057, 4056, 4055, 4054, 4053, 4052, 4051, 4050, 4049, 4048, 4047, 4046, 4045, 4044, 4043, 4042, 4041, 4040, 4039, 4038, 4037, 4036, 4035, 4034, 4033, 4032, 4031, 4030, 4029, 4028, 4027, 4026, 4025, 4024, 4023, 4022, 4021, 4020, 4019, 4018, 4017, 4016, 4015, 4014, 4013, 4012, 4011, 4010, 4009, 4008, 4007, 4006, 4005, 4004, 4003, 4002, 4001, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 1 TODO diff --git a/test_data/points_covering_intervals.tsv b/test_data/minimum_points_covering_intervals.tsv similarity index 100% rename from test_data/points_covering_intervals.tsv rename to test_data/minimum_points_covering_intervals.tsv diff --git a/test_data/binary_search_ai=i.tsv b/test_data/search_entry_equal_to_index.tsv similarity index 100% rename from test_data/binary_search_ai=i.tsv rename to test_data/search_entry_equal_to_index.tsv diff --git a/test_data/simple_test_1.tsv b/test_data/simple_test_1.tsv deleted file mode 100644 index 9a7414455..000000000 --- a/test_data/simple_test_1.tsv +++ /dev/null @@ -1,3 +0,0 @@ -int int int long float float string string array(array(string)) array(array(array(float))) int -2 2 1 2 3.14 .45 aa ds [["", "", "xyz"]] [[[1]], [[-100, 300], []]] 1 TODO -1 2 2 0 .47 -0.333 a bb [[], ["ab", "cd"]] [[[]]] 0 TODO diff --git a/test_data/simple_test_2.tsv b/test_data/simple_test_2.tsv deleted file mode 100644 index 708b40dca..000000000 --- a/test_data/simple_test_2.tsv +++ /dev/null @@ -1,3 +0,0 @@ -int int int long float float string string int -2 2 1 2 3.14 .45 aa ds 1 TODO -1 1 2 0 .47 -0.333 a bb 0 TODO diff --git a/test_data/simple_test_array.tsv b/test_data/simple_test_array.tsv deleted file mode 100644 index 3a89bcfeb..000000000 --- a/test_data/simple_test_array.tsv +++ /dev/null @@ -1,4 +0,0 @@ -int array(int) array(array(int)) array(array(string)) array(bool) -0 [] [] [] [true, true, true] TODO -2 [1, 3] [[2]] [["ab", ""], [""], []] [true, false, false] TODO -2 [2] [[2, 5, 7], []] [["xy"], ["xy"]] [false, true, true] TODO