From 272cb1cd457364888f58dd1fdc7e45ff71d819f9 Mon Sep 17 00:00:00 2001 From: zongyanqi Date: Mon, 20 Mar 2017 21:55:35 +0800 Subject: [PATCH] format filenames --- 001-Two-Sum.js | 43 +++++++ 002-Add-Two-Numbers.js | 49 ++++++++ ...-Substring-Without-Repeating-Characters.js | 45 ++++++++ 004-Median-of-Two-Sorted-Arrays.js | 90 +++++++++++++++ 005-Longest-Palindromic-Substring.js | 53 +++++++++ 011-Container-With-Most-Water.js | 49 ++++++++ 014-Longest-Common-Prefix.js | 50 +++++++++ 015-3Sum.js | 64 +++++++++++ 020-Valid-Parentheses.js | 45 ++++++++ 021-Merge-Two-Sorted-Lists.js | 71 ++++++++++++ 026-Remove-Duplicates-from-Sorted-Array.js | 50 +++++++++ ...sition.js => 035-Search-Insert-Position.js | 3 + 041-First-Missing-Positive.js | 45 ++++++++ ...mum_Subarray.js => 053-Maximum-Subarray.js | 3 + 062-Unique-Paths.js | 34 ++++++ 063-Unique-Paths-II.js | 39 +++++++ 064-Minimum-Path-Sum.js | 39 +++++++ ...imbing_Stairs.js => 070-Climbing-Stairs.js | 3 +- ... 083-Remove-Duplicates-from-Sorted-List.js | 2 + 085-Maximal-Rectangle.js | 85 ++++++++++++++ 091-Decode-Ways.js | 50 +++++++++ 095-Unique-Binary-Search-Trees-II.js | 56 ++++++++++ 096-Unique-Binary-Search-Trees.js | 50 +++++++++ Easy_100_Same_Tree.js => 100-Same-Tree.js | 6 +- 111-Minimum-Depth-of-Binary-Tree.js | 30 +++++ 120-Triangle.js | 67 +++++++++++ 121-Best-Time-to-Buy-and-Sell-Stock.js | 38 +++++++ ...6_Single_Number.js => 136-Single-Number.js | 3 +- 138-Copy-List-with-Random-Pointer.js | 89 +++++++++++++++ 139-Word-Break.js | 44 ++++++++ 151-Reverse-Words-in-a-String.js | 21 ++++ 152-Maximum-Product-Subarray.js | 40 +++++++ 162-Find-Peak-Element.js | 58 ++++++++++ ...=> 167-Two-Sum-II-Input-array-is-sorted.js | 18 ++- ...ber.js => 171-Excel-Sheet-Column-Number.js | 22 ++-- ...190_Reverse_Bits.js => 190-Reverse-Bits.js | 1 + ...er_of_1_Bits.js => 191-Number-of-1-Bits.js | 3 +- 198-House-Robber.js | 29 +++++ ...202_Happy_Number.js => 202-Happy-Number.js | 3 + 204-Count-Primes.js | 35 ++++++ 217-Contains-Duplicate.js | 23 ++++ 226-Invert-Binary-Tree.js | 54 +++++++++ 227-Basic-Calculator-II.js | 105 ++++++++++++++++++ 258-Add-Digits.js | 26 +++++ Easy_263_Ugly_Number.js => 263-Ugly-Number.js | 1 + ...Missing_Number.js => 268-Missing-Number.js | 2 + 283-Move-Zeroes.js | 46 ++++++++ 300-Longest-Increasing-Subsequence.js | 37 ++++++ ...ys.js => 349-Intersection-of-Two-Arrays.js | 15 +-- Easy_383_Ransom_Note.js => 383-Ransom-Note.js | 0 ... 387-First-Unique-Character-in-a-String.js | 22 ++-- 392-Is-Subsequence.js | 43 +++++++ ...eft_Leaves.js => 404-Sum-of-Left-Leaves.js | 20 ++-- 413-Arithmetic-Slices.js | 55 +++++++++ Easy_415_Add_Strings.js => 415-Add-Strings.js | 3 + 416-Partition-Equal-Subset-Sum.js | 58 ++++++++++ ...omerangs.js => 447-Number-of-Boomerangs.js | 3 + ...ind-All-Numbers-Disappeared-in-an-Array.js | 46 ++++++++ ...3-Minimum-Moves-to-Equal-Array-Elements.js | 26 ++--- 454-4Sum-II.js | 54 +++++++++ ...Assign_Cookies.js => 455-Assign-Cookies.js | 29 +++-- ...ing_Distance.js => 461-Hamming-Distance.js | 33 +++--- ..._Complement.js => 476-Number-Complement.js | 3 +- ...stance.js => 477-Total-Hamming-Distance.js | 30 ++--- 492-Construct-the-Rectangle.js | 38 +++++++ Easy_504_Base_7.js => 504-Base-7.js | 21 ++-- ...Relative_Ranks.js => 506-Relative-Ranks.js | 22 ++-- 520-Detect-Capital.js | 70 ++++++++++++ 523-Continuous-Subarray-Sum.js | 57 ++++++++++ 646-Maximum-Length-of-Pair-Chain.js | 54 +++++++++ 657-Judge-Route-Circle.js | 43 +++++++ ...umber-of-Longest-Increasing-Subsequence.js | 60 ++++++++++ 693-Binary-Number-with-Alternating-Bits.js | 55 +++++++++ 695-Max-Area-of-Island.js | 80 +++++++++++++ Easy_1_Two_Sum.js | 25 ----- Easy_492_Construct_the_Rectangle.js | 40 ------- Easy_520_Detect_Capital.js | 38 ------- Medium_151_Reverse_Words_in_a_String.js | 18 --- README.md | 80 +++++++++++++ pack/01.js | 37 ++++++ pack/02.js | 43 +++++++ pack/03.js | 43 +++++++ 82 files changed, 2824 insertions(+), 259 deletions(-) create mode 100644 001-Two-Sum.js create mode 100644 002-Add-Two-Numbers.js create mode 100644 003-Longest-Substring-Without-Repeating-Characters.js create mode 100644 004-Median-of-Two-Sorted-Arrays.js create mode 100644 005-Longest-Palindromic-Substring.js create mode 100644 011-Container-With-Most-Water.js create mode 100644 014-Longest-Common-Prefix.js create mode 100644 015-3Sum.js create mode 100644 020-Valid-Parentheses.js create mode 100644 021-Merge-Two-Sorted-Lists.js create mode 100644 026-Remove-Duplicates-from-Sorted-Array.js rename Easy_35_Search_Insert_Position.js => 035-Search-Insert-Position.js (91%) create mode 100644 041-First-Missing-Positive.js rename Easy_53_Maximum_Subarray.js => 053-Maximum-Subarray.js (93%) create mode 100644 062-Unique-Paths.js create mode 100644 063-Unique-Paths-II.js create mode 100644 064-Minimum-Path-Sum.js rename Easy_70_Climbing_Stairs.js => 070-Climbing-Stairs.js (92%) rename Easy_83_Remove_Duplicates_from_Sorted_List.js => 083-Remove-Duplicates-from-Sorted-List.js (91%) create mode 100644 085-Maximal-Rectangle.js create mode 100644 091-Decode-Ways.js create mode 100644 095-Unique-Binary-Search-Trees-II.js create mode 100644 096-Unique-Binary-Search-Trees.js rename Easy_100_Same_Tree.js => 100-Same-Tree.js (73%) create mode 100644 111-Minimum-Depth-of-Binary-Tree.js create mode 100644 120-Triangle.js create mode 100644 121-Best-Time-to-Buy-and-Sell-Stock.js rename Easy_136_Single_Number.js => 136-Single-Number.js (88%) create mode 100644 138-Copy-List-with-Random-Pointer.js create mode 100644 139-Word-Break.js create mode 100644 151-Reverse-Words-in-a-String.js create mode 100644 152-Maximum-Product-Subarray.js create mode 100644 162-Find-Peak-Element.js rename Easy_167_Two_Sum_II_Input_array_is_sorted.js => 167-Two-Sum-II-Input-array-is-sorted.js (50%) rename Easy_171_Excel_Sheet_Column_Number.js => 171-Excel-Sheet-Column-Number.js (69%) rename Easy_190_Reverse_Bits.js => 190-Reverse-Bits.js (97%) rename Easy_191_Number_of_1_Bits.js => 191-Number-of-1-Bits.js (88%) create mode 100644 198-House-Robber.js rename Easy_202_Happy_Number.js => 202-Happy-Number.js (92%) create mode 100644 204-Count-Primes.js create mode 100644 217-Contains-Duplicate.js create mode 100644 226-Invert-Binary-Tree.js create mode 100644 227-Basic-Calculator-II.js create mode 100644 258-Add-Digits.js rename Easy_263_Ugly_Number.js => 263-Ugly-Number.js (97%) rename Easy_268_Missing_Number.js => 268-Missing-Number.js (89%) create mode 100644 283-Move-Zeroes.js create mode 100644 300-Longest-Increasing-Subsequence.js rename Easy_349_Intersection_of_Two_Arrays.js => 349-Intersection-of-Two-Arrays.js (68%) rename Easy_383_Ransom_Note.js => 383-Ransom-Note.js (100%) rename Easy_387_First_Unique_Character_in_a_String.js => 387-First-Unique-Character-in-a-String.js (63%) create mode 100644 392-Is-Subsequence.js rename Easy_404_Sum_of_Left_Leaves.js => 404-Sum-of-Left-Leaves.js (68%) create mode 100644 413-Arithmetic-Slices.js rename Easy_415_Add_Strings.js => 415-Add-Strings.js (92%) create mode 100644 416-Partition-Equal-Subset-Sum.js rename Easy_447_Number_of_Boomerangs.js => 447-Number-of-Boomerangs.js (98%) create mode 100644 448-Find-All-Numbers-Disappeared-in-an-Array.js rename Easy_453_Minimum_Moves_to_Equal_Array_Elements.js => 453-Minimum-Moves-to-Equal-Array-Elements.js (72%) create mode 100644 454-4Sum-II.js rename Easy_455_Assign_Cookies.js => 455-Assign-Cookies.js (68%) rename Easy_461_Hamming_Distance.js => 461-Hamming-Distance.js (52%) rename Easy_476_Number_Complement.js => 476-Number-Complement.js (90%) rename Medium_477_Total_Hamming_Distance.js => 477-Total-Hamming-Distance.js (99%) create mode 100644 492-Construct-the-Rectangle.js rename Easy_504_Base_7.js => 504-Base-7.js (69%) rename Easy_506_Relative_Ranks.js => 506-Relative-Ranks.js (58%) create mode 100644 520-Detect-Capital.js create mode 100644 523-Continuous-Subarray-Sum.js create mode 100644 646-Maximum-Length-of-Pair-Chain.js create mode 100644 657-Judge-Route-Circle.js create mode 100644 673-Number-of-Longest-Increasing-Subsequence.js create mode 100644 693-Binary-Number-with-Alternating-Bits.js create mode 100644 695-Max-Area-of-Island.js delete mode 100644 Easy_1_Two_Sum.js delete mode 100644 Easy_492_Construct_the_Rectangle.js delete mode 100644 Easy_520_Detect_Capital.js delete mode 100644 Medium_151_Reverse_Words_in_a_String.js create mode 100644 pack/01.js create mode 100644 pack/02.js create mode 100644 pack/03.js diff --git a/001-Two-Sum.js b/001-Two-Sum.js new file mode 100644 index 0000000..5404cdc --- /dev/null +++ b/001-Two-Sum.js @@ -0,0 +1,43 @@ +/** + * https://leetcode.com/problems/two-sum/description/ + * Difficulty:Easy + * + * Given an array of integers, return indices of the two numbers such that they add up to a specific target. + * You may assume that each input would have exactly one solution, and you may not use the same element twice. + * Example: + * Given nums = [2, 7, 11, 15], target = 9, + * Because nums[0] + nums[1] = 2 + 7 = 9, + * return [0, 1]. + */ + +/** + * @param {number[]} numbers + * @param {number} target + * @return {number[]} + */ +var twoSum = function (numbers, target) { + + for (var i = 0; i < numbers.length - 1; i++) { + for (var j = i + 1; j < numbers.length; j++) { + if (numbers[i] + numbers[j] === target) return [i, j]; + } + } +}; + +var twoSum2 = function (numbers, target) { + var map = {}; + for (var i = 0; i < numbers.length; i++) { + var n = numbers[i]; + if (map[target - n] !== undefined) { + return [map[target - n], i]; + } else { + map[n] = i; + } + } +}; + +console.log(twoSum([2, 11, 15, 7], 9)); +console.log(twoSum2([2, 7, 11, 15], 9)); +console.log(twoSum2([2, 7, 11, 15], 26)); +console.log(twoSum2([2, 7, 11, 15], 26)); + diff --git a/002-Add-Two-Numbers.js b/002-Add-Two-Numbers.js new file mode 100644 index 0000000..91776ee --- /dev/null +++ b/002-Add-Two-Numbers.js @@ -0,0 +1,49 @@ +/** + * https://leetcode.com/problems/add-two-numbers/description/ + * Difficulty:Medium + * + * You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. + * You may assume the two numbers do not contain any leading zero, except the number 0 itself. + * Example + * Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) + * Output: 7 -> 0 -> 8 + * Explanation: 342 + 465 = 807. + */ + +// Definition for singly-linked list. +function ListNode(val) { + this.val = val; + this.next = null; +} + +/** + * @param {ListNode} l1 + * @param {ListNode} l2 + * @return {ListNode} + */ +var addTwoNumbers = function (l1, l2) { + + var c = 0; + var ret = new ListNode(0); + var curr = ret; + + while (l1 || l2) { + var a = l1 ? l1.val : 0; + var b = l2 ? l2.val : 0; + var sum = a + b + c; + c = Math.floor(sum / 10); + curr.next = new ListNode(sum % 10); + if (l1) { + l1 = l1.next; + } + if (l2) { + l2 = l2.next; + } + curr = curr.next; + } + if (c) { + curr.next = new ListNode(c); + } + + return ret.next; +}; diff --git a/003-Longest-Substring-Without-Repeating-Characters.js b/003-Longest-Substring-Without-Repeating-Characters.js new file mode 100644 index 0000000..d93694f --- /dev/null +++ b/003-Longest-Substring-Without-Repeating-Characters.js @@ -0,0 +1,45 @@ +/** + * https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ + * Difficulty:Medium + * + * Given a string, find the length of the longest substring without repeating characters. + * Examples: + * Given "abcabcbb", the answer is "abc", which the length is 3. + * Given "bbbbb", the answer is "b", with the length of 1. + * Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring. + * + */ + +/** + * @param {string} s + * @return {number} + */ +var lengthOfLongestSubstring = function (s) { + + var max = 0; + var i = 0; + var j = 0; + var n = s.length; + var map = {}; + + while (i < n && j < n) { + if (map[s[j]] === undefined) { + map[s[j]] = 1; + j++; + max = Math.max(max, j - i); + } else { + delete map[s[i]]; + i++; + } + + } + + return max; +}; + +console.log(lengthOfLongestSubstring('c'), 1); +console.log(lengthOfLongestSubstring(''), 0); +console.log(lengthOfLongestSubstring('abcabcbb'), 3); +console.log(lengthOfLongestSubstring('bbbbb'), 1); +console.log(lengthOfLongestSubstring('pwwkew'), 3); +console.log(lengthOfLongestSubstring('xhhyccrcbdczkvzeeubynglxfdedshtpobqsdhufkzgwuhaabdzrlkosnuxibrxssnkxuhcggkecshdvkcmymdqbxolbfjtzyfw'), 14); \ No newline at end of file diff --git a/004-Median-of-Two-Sorted-Arrays.js b/004-Median-of-Two-Sorted-Arrays.js new file mode 100644 index 0000000..396bd9a --- /dev/null +++ b/004-Median-of-Two-Sorted-Arrays.js @@ -0,0 +1,90 @@ +/** + * https://leetcode.com/problems/median-of-two-sorted-arrays/description/ + * Difficulty:Hard + * + * There are two sorted arrays nums1 and nums2 of size m and n respectively. + * Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). + * + * Example 1: + * nums1 = [1, 3] + * nums2 = [2] + * The median is 2.0 + * + * Example 2: + * nums1 = [1, 2] + * nums2 = [3, 4] + * The median is (2 + 3)/2 = 2.5 + * * + */ + + +function kth(arr1, s1, n1, arr2, s2, n2, k) { + // console.log(arr1, s1, n1, arr2, s2, n2, k); + // console.log('-----------'); + if (k < 1 || k > n1 + n2) return -1; + + if (n1 > n2) { + return kth(arr2, s2, n2, arr1, s1, n1, k); + } + + if (n1 === 0) { + return arr2[s2 + k - 1]; + } + + if (k === 1) { + return arr1[s1] < arr2[s2] ? arr1[s1] : arr2[s2]; + } + + var newK = k >> 1; + + if (n1 < newK) { + newK = n1; + } + + if (arr1[s1 + newK - 1] < arr2[s2 + newK - 1]) { + return kth(arr1, s1 + newK, n1 - newK, arr2, s2, n2, k - newK); + } else { + return kth(arr1, s1, n1, arr2, s2 + newK, n2 - newK, k - newK); + } + +} + +// var arr1 = [2, 3, 6, 7, 9]; +// var arr2 = [1, 4, 8, 10]; +// console.log([...arr1, ...arr2].sort(function (a, b) { +// if (a > b) return 1; +// if (a < b) return -1; +// return 0; +// })); +// +// console.log('======='); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 1), 1); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 2), 2); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 3), 3); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 4), 4); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 5), 6); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 6), 7); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 7), 8); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 8), 9); +// console.log(kth(arr1, 0, 5, arr2, 0, 4, 9), 10); + +/** + * @param {number[]} nums1 + * @param {number[]} nums2 + * @return {number} + */ +var findMedianSortedArrays = function (nums1, nums2) { + + var n1 = nums1.length; + var n2 = nums2.length; + + var mid = Math.floor((n1 + n2) / 2); + if ((n1 + n2) % 2 === 0) { + return (kth(nums1, 0, n1, nums2, 0, n2, mid) + kth(nums1, 0, n1, nums2, 0, n2, mid + 1)) / 2; + } else { + return kth(nums1, 0, n1, nums2, 0, n2, mid + 1); + } +}; + +console.log(findMedianSortedArrays([1, 3, 4], [2, 5])); +console.log(findMedianSortedArrays([1, 3, 4], [2, 5, 6])); \ No newline at end of file diff --git a/005-Longest-Palindromic-Substring.js b/005-Longest-Palindromic-Substring.js new file mode 100644 index 0000000..9fbac24 --- /dev/null +++ b/005-Longest-Palindromic-Substring.js @@ -0,0 +1,53 @@ +/** + * https://leetcode.com/problems/longest-palindromic-substring/description/ + * Difficulty:Medium + * + * Given a string s, find the longest palindromic substring in s. + * You may assume that the maximum length of s is 1000. + * + * Example: + * Input: "babad" + * Output: "bab" + * Note: "aba" is also a valid answer. + * + * Example: + * Input: "cbbd" + * Output: "bb" + */ +/** + * @param {string} s + * @return {string} + */ +var longestPalindrome = function (s) { + var a = new Date(); + var n = s.length; + var res = ''; + var dp = []; + while (dp.push(new Array(n).fill(-1)) < n); + // console.log(dp); + + for (var i = n - 1; i >= 0; i--) { + for (var j = i; j < n; j++) { + dp[i][j] = s[i] === s[j] && ((j - i < 3) || dp[i + 1][j - 1]); + if (dp[i][j] === undefined) { + console.log(i, j, s[i], s[j], dp[i + 1][j - 1]) + } + if (dp[i][j]) { + var tmp = s.substring(i, j + 1); + if (tmp.length > res.length) res = tmp; + } + + } + } + // console.log(dp); + console.log(new Date() - a); + + return res; +}; + +// console.log(isPalindrome(s, 1, 3)); +// console.log(longestPalindrome('babad')); +// console.log(longestPalindrome('')); +// console.log(longestPalindrome('a')); +// console.log(longestPalindrome('aabbbbbb')); +console.log(longestPalindrome("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); \ No newline at end of file diff --git a/011-Container-With-Most-Water.js b/011-Container-With-Most-Water.js new file mode 100644 index 0000000..a95ffa6 --- /dev/null +++ b/011-Container-With-Most-Water.js @@ -0,0 +1,49 @@ +/** + * https://leetcode.com/problems/container-with-most-water/description/ + * Difficulty:Medium + * + * Given n non-negative integers a1, a2, ..., an, where each represents a point + * at coordinate (i, ai). + * n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). + * Find two lines, which together with x-axis forms a container, + * such that the container contains the most water. + * Note: You may not slant the container and n is at least 2. + */ + +/** + * @param {number[]} height + * @return {number} + */ +var maxArea = function (height) { + var dp = [0]; + var max = 0; + for (var i = 1; i < height.length; i++) { + dp[i] = 0; + for (var j = 0; j < i; j++) { + var v = (i - j) * Math.min(height[i], height[j]); + dp[i] = Math.max(dp[i], v); + } + max = Math.max(max, dp[i]); + } + // console.log(dp, max); + return max; +}; + +/** + * @param {number[]} height + * @return {number} + */ +var maxArea = function (height) { + var i = 0; + var j = height.length - 1; + var max = 0; + while (i < j) { + max = Math.max(max, Math.min(height[i], height[j]) * (j - i)); + if (height[i] < height[j]) i++; + else j--; + } + return max; +}; + +// console.log(maxArea([3, 5, 1, 9])); +console.log(maxArea([9384, 887, 2778, 6916, 7794, 8336, 5387, 493, 6650, 1422, 2363, 28, 8691, 60, 7764, 3927, 541, 3427, 9173, 5737, 5212, 5369, 2568, 6430, 5783, 1531, 2863, 5124, 4068, 3136, 3930, 9803, 4023, 3059, 3070, 8168, 1394, 8457, 5012, 8043, 6230, 7374, 4422, 4920, 3785, 8538, 5199, 4325, 8316, 4371, 6414, 3527, 6092, 8981, 9957, 1874, 6863, 9171, 6997, 7282, 2306, 926, 7085, 6328, 337, 6506, 847, 1730, 1314, 5858, 6125, 3896, 9583, 546, 8815, 3368, 5435, 365, 4044, 3751, 1088, 6809, 7277, 7179, 5789, 3585, 5404, 2652, 2755, 2400, 9933, 5061, 9677, 3369, 7740, 13, 6227, 8587, 8095, 7540, 796, 571, 1435, 379, 7468, 6602, 98, 2903, 3318, 493, 6653, 757, 7302, 281, 4287, 9442, 3866, 9690, 8445, 6620, 8441, 4730, 8032, 8118, 8098, 5772, 4482, 676, 710, 8928, 4568, 7857, 9498, 2354, 4587, 6966, 5307, 4684, 6220, 8625, 1529, 2872, 5733, 8830, 9504, 20, 8271, 3369, 9709, 6716, 6341, 8150, 7797, 724, 2619, 2246, 2847, 3452, 2922, 3556, 2380, 7489, 7765, 8229, 9842, 2351, 5194, 1501, 7035, 7765, 125, 4915, 6988, 5857, 3744, 6492, 2228, 8366, 9860, 1937, 1433, 2552, 6438, 9229, 3276, 5408, 1475, 6122, 8859, 4396, 6030, 1238, 8236, 3794, 5819, 4429, 6144, 1012, 5929, 9530, 8777, 2405, 4444, 5764, 4614, 4539, 8607, 6841, 2905, 4819, 5129, 689, 7370, 7918, 9918, 6997, 3325, 7744, 9471, 2184, 8491, 5500, 9773, 6726, 5645, 5591, 7506, 8140, 2955, 9787, 7670, 8083, 8543, 8465, 198, 9508, 9356, 8805, 6349, 8612, 3623, 7829, 9300, 7344, 5747, 5569, 4341, 5423, 3312, 3811, 7606, 1802, 5662, 3731, 4879, 1306, 9321, 8737, 9445, 8627, 8523, 3466, 6709, 3417, 8283, 3259, 2925, 7638, 2063, 5625, 2601, 2037, 3453, 1900, 9380, 5551, 7469, 72, 974, 7132, 3882, 4931, 8934, 5895, 8661, 164, 7200, 7982, 8900, 2997, 2960, 3774, 2814, 9669, 7191, 1096, 2927, 6467, 5085, 1341, 2091, 7685, 3377, 5543, 5937, 9108, 7446, 9757, 9180, 8419, 6888, 9413, 3349, 2173, 1660, 2010, 2337, 5211, 6343, 7588, 8207, 9302, 7714, 7373, 5322, 1256, 4820, 4600, 7722, 9905, 5940, 9812, 3941, 5668, 1706, 6229, 1128, 9151, 5985, 6659, 3921, 9225, 2423, 7270, 1397, 4082, 5631, 85, 9293, 1973, 7673, 3851, 7626, 5386, 1223, 9300, 6641, 6043, 3899, 714, 2299, 6191, 525, 2591, 8210, 8582, 8820, 9337, 7733, 1156, 5995, 8005, 380, 4770, 5274, 1777, 8851, 7256, 1861, 8143, 5580, 5885, 1994, 3206, 7622, 9568, 2505, 614, 1962, 2755, 1327, 4260, 8945, 8203, 3203, 3507, 6785, 2022, 2843, 869, 9529, 5190, 8873, 9909, 9959, 499, 8037, 8809, 7754, 6249, 3304, 3334, 2134, 1649, 2891, 9755, 7568, 1747, 369, 9530, 4501, 8047, 3789, 9798, 6250, 6991, 3304, 3034, 5364, 2498, 254, 4893, 7687, 9126, 1153, 3997, 5976, 9189, 9158, 3730, 5437, 2461, 3415, 3922, 461, 6305, 29, 8028, 8051, 6749, 7557, 8903, 4795, 7698, 8700, 1044, 1040, 2003, 429, 6404, 4501, 682, 7648, 8539, 6160, 5152, 2536, 2135, 4340, 1693, 2216, 6128, 505, 5630, 50, 965, 8286, 6430, 5344, 6336, 3178, 2901, 5239, 7972, 6950, 290, 5368, 7989, 2293, 5796, 744, 3145, 2830, 8391, 1683, 5341, 3542, 570, 3827, 4233, 2262, 6043, 361, 9118, 8024, 6762, 82, 6310, 3191, 5426, 8997, 6368, 4678, 4235, 691, 1627, 4525, 6058, 9615, 3169, 8206, 359, 6313, 7387, 5101, 4347, 2727, 4995, 4917, 6553, 5579, 3530, 8947, 2291, 2648, 6971, 9052, 9081, 9632, 8594, 858, 8628, 1313, 1887, 9215, 8356, 3513, 91, 4413, 9480, 9611, 8970, 6190, 2275, 6356, 7642, 6621, 5434, 8988, 7889, 8339, 4567, 7771, 7285, 6857, 418, 607, 2261, 5850, 238, 7206, 3060, 5218, 8519, 4946, 784, 6874, 8459, 874, 7638, 4290, 484, 6608, 479, 2758, 9315, 4472, 5730, 1101, 3460, 3619, 9439, 8026, 1389, 3075, 1234, 8158, 3682, 3494, 359, 271, 700, 3418, 1840, 5570, 8364, 2623, 8795, 3174, 9848, 6432, 7463, 6683, 9391, 4293, 5792, 5058, 5116, 1522, 6158, 8575, 1492, 1948, 2952, 9232, 5022, 538, 3741, 5055, 4031, 4099, 5326, 1082, 7517, 3517, 3003, 2232, 6140, 1797, 5405, 2339, 4581, 9219, 9022, 3971, 9863, 4813, 5380, 4978, 2686, 1537, 9905, 4177, 3484, 9208, 9760, 4858, 9745, 3500, 9912, 128, 3951, 5237, 7561, 7819, 5106, 564, 50, 1245, 8712, 1806, 9935, 3292, 7376, 8956, 3615, 3590, 3769, 8994, 4919, 2806, 6883, 4823, 6983, 6718, 4031, 3094, 1575, 127, 6594, 1487, 254, 544, 3075, 7815, 4714, 8180, 8378, 4763, 5776, 7089, 2920, 5711, 6733, 295, 1018, 347, 236, 1138, 5692, 5154, 3944, 2574, 6329, 926, 9292, 6711, 4019, 7218, 6837, 6964, 5056, 7091, 3859, 8131, 4905, 8572, 2662, 9634, 9686, 4790, 3074, 2605, 6852, 9806, 9251, 7869, 6504, 9486, 9007, 2196, 4640, 2950, 1121, 968, 227, 6764, 7678, 597, 3982, 866, 7561, 9037, 7956, 7771, 3519, 9212, 6343, 2533, 5197, 2380, 7322, 8271, 4985, 4173, 4428, 4235, 2041, 7284, 73, 7399, 5831, 1064, 348, 6951, 2031, 574, 3715, 6060, 7523, 4048, 6925, 5083, 9436, 1233, 9205, 2955, 444, 1899, 5487, 5641, 4279, 9160, 263, 9263, 9684, 1042, 9849, 1724, 8325, 6273, 9123, 4155, 7336, 5822, 7458, 9366, 2748, 1172, 1777, 270, 5219, 8702, 1704, 4654, 9934, 908, 3960, 6729, 2807, 5798, 8721, 7085, 1309, 5335, 2699, 992, 6377, 8899, 2716, 1053, 5172, 8190, 1560, 2507, 4011, 9017, 8225, 3110, 6540, 1, 3379, 8110, 5054, 5082, 9115, 1339, 5990, 9427, 8068, 5148, 5224, 6788, 2232, 6533, 2123, 1282, 3876, 4851, 180, 6591, 2255, 5351, 1132, 3814, 7858, 1495, 9182, 6082, 4604, 5721, 2434, 7983, 182, 7488, 9416, 9297, 8826, 5405, 8723, 6893, 552, 298, 33, 9135, 3182, 8507, 416, 7058, 9709, 596, 10000, 1963, 2298, 7484, 5777, 155, 8978, 1310, 2588, 9933, 3383, 5022, 4267, 3564, 8861, 3683, 9212, 7686, 9087, 4286, 931, 5991, 4584, 7315, 1477, 4117, 5821, 1893, 7526, 5529, 8840, 7526, 7491, 1137, 1361, 9619, 7644, 338, 929, 6583, 6622, 4311, 7956, 889, 4226, 6816, 4571, 3438, 854, 9, 7723, 1784, 2351, 8658, 9098, 3828, 9127, 1270, 2072, 6652, 3150, 911, 529, 640, 8399, 1889, 6611, 2394, 8578, 3891, 8977, 5200, 4553, 6932, 6088, 8778, 100, 658, 8567, 953, 7018, 2642, 2736, 9369, 1299, 8185, 3196, 6777, 5806, 5267, 3429, 8955, 2529, 309, 9594, 7279, 2198, 2556, 9673, 775, 6446, 5001, 2326, 998, 8284, 8413, 6128, 8383, 5422, 4694, 9335, 2440, 7335, 8422, 8160, 4986, 2958, 1355, 1762, 8763, 2973, 1542, 7717, 1853, 1851, 3663, 5483, 400, 6218, 5155, 1174, 9016, 6507, 9852, 6365, 4791, 8264, 2492, 3173, 38, 3538, 8860, 8829, 872, 7281, 6988, 5857, 6591, 8342, 3971, 5353, 7666, 5512, 3070, 9518, 7362, 3084, 1352, 4113, 9301, 6507, 1639, 4668, 9365, 1490, 1033, 4155, 6105, 9876, 3680, 6142, 3413, 2539, 4970, 637, 6171, 1957, 2845, 2761, 6650, 6815, 4466, 4315, 2327, 3887, 184, 6040, 6970, 1536, 153, 2622, 4394, 1791, 7290, 110, 9632, 4674, 4265, 5736, 4549, 4296, 1878, 4314, 6834, 3199, 4950, 9356, 5156, 7794, 8469, 8157, 961, 2934, 8824, 3287, 3172, 5359, 5678, 141, 3246, 2182, 2762, 3991, 324, 51, 4101, 9955, 1076, 8365, 2043, 5625, 2660, 3920, 6290, 5845, 3470, 1239, 1552, 4977, 5384, 20, 3134, 6344, 9305, 1957, 5982, 2476, 3667, 8012, 8968, 6913, 193, 1730, 903, 6869, 8132, 5003, 3175, 9208, 9719, 5217, 1184, 2378, 5488, 7473, 4574, 8958, 5063, 6126, 3934, 6798, 2497, 3419, 3142, 8154, 1727, 5475, 6981, 5394, 3486, 5949, 2306, 31, 4030, 9560, 6899, 2161, 4563, 6425, 7720, 4281, 1642, 8903, 3011, 3481, 2727, 7584, 8790, 4141, 3709, 2724, 939, 2558, 2494, 432, 711, 4221, 5906, 7691, 9614, 9392, 3639, 8271, 9422, 7668, 7830, 2672, 6181, 8744, 9096, 3900, 3025, 7089, 9155, 2387, 570, 8233, 9970, 5711, 2374, 31, 8434, 9664, 2588, 7280, 95, 9650, 1500, 2352, 7340, 7465, 1743, 7331, 2087, 7516, 1350, 9916, 187, 3882, 5012, 5635, 4134, 4388, 2723, 3288, 6774, 9644, 1520, 6743, 5355, 245, 3125, 140, 6260, 2064, 7419, 6354, 1713, 5270, 8706, 5405, 2734, 6800, 2735, 4820, 4316, 436, 1088, 854, 670, 2451, 6488, 4803, 6838, 5563, 8090, 3611, 5206, 5961, 6705, 6912, 2558, 9830, 3404, 8817, 1893, 822, 1523, 3606, 2444, 6580, 5362, 1529, 3379, 4448, 2701, 4046, 4883, 3788, 4900, 5552, 2590, 1387, 354, 9427, 6949, 4795, 3037, 8507, 7108, 6093, 5418, 9665, 5922, 8821, 8481, 4167, 5995, 6355, 4124, 8438, 2934, 9485, 6318, 6313, 3932, 9018, 6710, 5166, 9157, 1609, 7070, 1746, 2996, 7423, 1172, 6296, 8570, 560, 4802, 5677, 6653, 6572, 5341, 8926, 1744, 173, 3092, 4090, 6528, 3567, 8879, 5813, 3051, 5197, 2125, 3334, 4214, 5187, 8500, 3371, 6795, 5569, 5116, 6142, 9343, 2640, 2438, 4264, 3199, 3591, 9940, 6203, 6514, 1632, 5129, 8258, 1805, 4572, 2347, 4684, 8139, 1226, 496, 7541, 6422, 8973, 7227, 635, 4159, 5726, 357, 953, 7646, 5473, 3447, 3340, 8112, 5884, 7604, 7662, 5826, 7543, 217, 2340, 9175, 5345, 597, 7331, 6268, 9295, 2014, 758, 520, 8861, 4651, 3293, 7833, 1877, 280, 1991, 3954, 636, 9296, 1599, 6108, 2742, 4938, 571, 4977, 2541, 4585, 802, 84, 4801, 9493, 5610, 6497, 6441, 2940, 2764, 5736, 1305, 9874, 2607, 165, 4524, 2252, 4350, 2752, 2531, 6340, 6705, 3166, 1987, 8303, 5626, 1080, 9592, 2548, 2408, 8485, 7132, 9562, 4920, 1932, 9054, 529, 8428, 5495, 9820, 7544, 7582, 1124, 3769, 188, 7640, 4644, 2439, 1989, 7395, 1321, 4681, 4099, 4487, 3019, 8753, 6464, 4099, 4696, 9011, 6506, 3180, 6143, 6067, 8099, 4426, 1473, 4979, 2854, 6967, 4798, 6749, 4548, 2273, 517, 1087, 9913, 5160, 9878, 1901, 2554, 1198, 2933, 3004, 2036, 5952, 8108, 8499, 50, 9155, 3862, 2907, 2335, 4, 5326, 6785, 4429, 6798, 1764, 3634, 116, 6561, 382, 1015, 5186, 898, 2101, 5098, 2409, 8330, 3350, 1314, 5880, 2635, 4317, 7915, 8586, 8776, 2766, 4987, 7931, 6627, 7893, 6617, 6630, 9570, 9753, 7410, 6367, 1516, 7396, 2834, 4429, 7777, 3848, 9614, 5027, 2301, 1063, 3787, 630, 764, 5101, 6509, 3398, 9417, 776, 1983, 4545, 3541, 3321, 8827, 6519, 7566, 1795, 9500, 7135, 1547, 6909, 9854, 3063, 4304, 2687, 3843, 8433, 6535, 9808, 9811, 8835, 870, 3597, 5816, 7985, 8697, 2325, 1383, 4466, 9452, 9717, 5362, 9344, 3038, 4188, 5862, 603, 5982, 5361, 4089, 3880, 8621, 3942, 3294, 2925, 6629, 7136, 7709, 3163, 6943, 3871, 1997, 4164, 7467, 7812, 8501, 2516, 6488, 6235, 3333, 2291, 5951, 8694, 1634, 5340, 2881, 7495, 2294, 5214, 2855, 6383, 5445, 1476, 324, 8739, 752, 6952, 5874, 4812, 6466, 9169, 8682, 4814, 9684, 2500, 8978, 4536, 5015, 5465, 770, 8347, 4108, 3073, 3392, 5741, 8412, 2624, 9588, 7058, 7837, 8794, 3440, 3282, 6621, 115, 8372, 7372, 3419, 597, 8535, 9884, 9765, 3568, 4698, 5801, 6068, 3675, 336, 7434, 5491, 7458, 2133, 5950, 530, 5524, 1691, 5293, 8148, 7630, 2350, 2336, 6423, 2141, 1969, 3044, 2256, 340, 6767, 2026, 937, 1654, 8261, 7053, 5221, 2958, 9205, 1288, 2984, 9541, 8722, 4827, 6998, 7206, 7128, 3879, 2729, 5170, 9171, 7228, 2799, 1521, 9564, 9222, 3661, 7884, 8617, 2268, 8224, 5383, 4293, 5512, 7036, 2554, 2564, 8609, 1863, 1769, 9896, 1199, 7661, 4969, 2377, 1010, 2174, 9504, 4888, 1255, 4674, 4058, 8482, 3824, 1930, 4397, 3045, 1943, 2281, 8013, 4210, 6856, 9748, 4855, 2367, 3135, 3760, 1282, 1743, 1974, 9402, 1639, 3172, 3414, 2959, 1900, 4423, 1485, 7756, 5662, 9091, 8781, 6072, 3924, 2604, 8001, 8321, 2001, 9943, 6953, 13, 505, 3808, 9760, 5359, 2526, 2895, 9118, 159, 4637, 1091, 9561, 2627, 615, 2974, 1938, 8866, 3749, 3422, 6621, 9410, 8864, 5401, 1833, 2787, 8005, 9834, 7459, 6357, 6128, 4411, 6369, 6632, 4570, 6129, 8342, 3447, 5375, 7459, 3606, 11, 4902, 3166, 8990, 1868, 2491, 927, 733, 6239, 700, 3706, 2001, 9563, 5458, 3833, 2349, 3462, 18, 9808, 6170, 2498, 570, 2539, 9129, 5140, 5019, 7471, 8586, 393, 1281, 8543, 6755, 2534, 1708, 5744, 4401, 551, 3022, 1486, 6789, 3721, 5191, 5141, 9635, 648, 5326, 1984, 462, 1695, 8143, 6631, 4192, 5064, 5521, 3321, 6555, 539, 7143, 1493, 931, 8423, 35, 7686, 7309, 8095, 9781, 1709, 8645, 2803, 9546, 1785, 6523, 1088, 6926, 6158, 1736, 8603, 4493, 8549, 297, 8987, 1531, 841, 4050, 7052, 513, 6957, 7590, 7655, 8449, 4873, 2429, 8483, 2558, 6089, 6577, 2338, 7798, 5221, 5140, 3695, 7006, 8015, 4783, 283, 524, 2870, 5237, 5016, 1418, 1885, 354, 9300, 2725, 755, 6351, 3237, 7711, 293, 7243, 6159, 5165, 6024, 4642, 7722, 2112, 7570, 6411, 6261, 2791, 7903, 9956, 6148, 5917, 1090, 2782, 6440, 3959, 8018, 7807, 5376, 9902, 4512, 4675, 8979, 5266, 7378, 8567, 2977, 7670, 2162, 9135, 2834, 4537, 128, 6907, 3000, 7698, 3317, 9261, 6840, 7571, 5568, 2987, 3487, 3009, 5768, 6278, 6967, 137, 436, 8694, 38, 4947, 9720, 5368, 213, 7097, 3935, 9541, 1118, 6096, 8675, 3951, 632, 8803, 7209, 3631, 2852, 526, 9243, 9691, 4448, 1162, 2677, 7935, 4170, 4796, 564, 1136, 4932, 7352, 6181, 1321, 2298, 5901, 6689, 8862, 2997, 6975, 8402, 4115, 3070, 3429, 4417, 53, 8583, 1626, 3683, 1434, 8503, 9278, 1124, 2950, 6791, 152, 7236, 961, 4947, 7800, 8448, 6230, 1503, 4629, 7550, 3800, 529, 590, 9014, 9877, 7564, 3767, 3991, 6985, 7195, 4760, 7037, 5777, 6385, 7072, 7210, 1239, 2701, 4685, 540, 9491, 4836, 7776, 451, 9782, 1927, 5251, 2363, 3429, 9879, 6265, 3580, 6759, 6854, 8945, 6635, 770, 2712, 6978, 4106, 6258, 1737, 1143, 2035, 4473, 4566, 5596, 5711, 7266, 6633, 6250, 3108, 1468, 377, 3559, 7602, 2303, 5161, 9964, 2083, 5039, 6228, 2015, 1797, 9434, 959, 8431, 6555, 3670, 5408, 660, 9928, 3496, 1802, 8314, 7968, 2719, 261, 30, 6336, 6893, 2632, 9444, 4713, 3008, 9354, 2314, 1663, 4514, 8629, 97, 9552, 4857, 2111, 7700, 642, 3070, 2482, 7196, 3091, 7890, 7855, 9370, 7737, 6009, 7683, 5705, 8727, 4296, 5734, 1415, 1188, 8365, 858, 2252, 7725, 211, 4565, 5739, 4724, 3194, 5835, 627, 4402, 7946, 8326, 1395, 7367, 807, 8590, 457, 5048, 2796, 9827, 2785, 8804, 3861, 4841, 3883, 8156, 574, 1649, 5696, 5291, 2506, 7947, 9367, 9068, 8864, 5105, 3791, 8409, 7291, 769, 9162, 5236, 9094, 556, 2602, 6252, 9145, 9411, 7652, 8292, 5589, 436, 3448, 9449, 5276, 3682, 3957, 2201, 5330, 9652, 3843, 7835, 3950, 9561, 6902, 9165, 4665, 7044, 7573, 1956, 7812, 6734, 3543, 3257, 3641, 2497, 5860, 9137, 8259, 3511, 7429, 3847, 298, 876, 3295, 1925, 4557, 7251, 4126, 9886, 3254, 4320, 4072, 3556, 3881, 7325, 2720, 4897, 4368, 6645, 3204, 8531, 9730, 6747, 1787, 3371, 5595, 7646, 8859, 3853, 7509, 6287, 7699, 7806, 3514, 7345, 9731, 4422, 948, 208, 659, 4201, 879, 4730, 4108, 4759, 2054, 3180, 6008, 2773, 6176, 9211, 1303, 5905, 2309, 9441, 5627, 7903, 7087, 4486, 8107, 947, 7124, 5805, 8752, 638, 9502, 4834, 1411, 449, 1393, 2070, 1001, 2272, 3151, 5109, 3382, 1557, 8288, 9389, 4329, 4463, 4952, 1984, 6719, 7260, 1424, 2346, 1515, 4862, 3183, 5973, 5808, 6658, 8130, 912, 7295, 7631, 5745, 5058, 8079, 7138, 7127, 9079, 5761, 6629, 4187, 9142, 8185, 8826, 4883, 8866, 9640, 9834, 849, 6359, 3445, 8624, 5056, 1311, 3486, 4590, 7284, 5645, 1247, 5413, 6556, 4894, 3043, 2301, 9951, 1121, 5790, 3429, 6551, 1550, 57, 738, 7043, 8242, 5915, 1925, 3459, 5555, 8110, 659, 8265, 1555, 9282, 3320, 9217, 9119, 4261, 6500, 4764, 5507, 8264, 1319, 400, 1306, 9971, 6702, 8778, 2112, 130, 5329, 13, 187, 2418, 7056, 4780, 4684, 8980, 4590, 238, 7090, 5248, 4854, 4996, 881, 4525, 4212, 10000, 8785, 712, 1115, 644, 5327, 8785, 1043, 6633, 5108, 4097, 1762, 7219, 4226, 3442, 7232, 764, 2211, 4287, 1895, 6895, 9618, 2836, 3484, 3059, 8083, 8338, 8054, 5316, 9214, 8618, 5315, 7999, 5681, 2781, 8642, 1007, 1565, 6036, 7639, 3024, 132, 5753, 243, 710, 5546, 3826, 7825, 7757, 4464, 6072, 1003, 4081, 8907, 4486, 3492, 6990, 9175, 1545, 8657, 8389, 162, 3971, 2739, 5842, 3103, 1380, 6849, 1019, 3767, 839, 4043, 251, 2943, 4285, 960, 8489, 4462, 5136, 2597, 8925, 1207, 3599, 9357, 114, 4436, 2848, 3455, 9963, 745, 2111, 4703, 7258, 2433, 7441, 9452, 1887, 5172, 6300, 2905, 5290, 3490, 6947, 5540, 2785, 7583, 2851, 1273, 2044, 7987, 3869, 7320, 9193, 3819, 6677, 5658, 8254, 5876, 5464, 8216, 6620, 3926, 9270, 3878, 2710, 6710, 9681, 4596, 8233, 2332, 7501, 3523, 5821, 4447, 5414, 4957, 2030, 8265, 6229, 425, 6251, 6449, 7745, 1795, 6619, 773, 3805, 4873, 6648, 9268, 9440, 9620, 3194, 8710, 9849, 2255, 1771, 9529, 6851, 6356, 1860, 4351, 6230, 4032, 5149, 1643, 8989, 7178, 9907, 1569, 3955, 2509, 4370, 1699, 4304, 988, 2471, 8108, 2212, 5470, 3727, 8004, 1441, 3272, 3065, 1289, 5527, 1187, 817, 2377, 7542, 9028, 3079, 123, 3060, 8227, 1766, 8400, 5405, 8024, 9968, 9359, 533, 689, 7409, 1188, 1677, 6231, 9295, 240, 8052, 9373, 8243, 9493, 2645, 1307, 781, 4523, 2494, 7950, 6899, 6387, 3329, 9977, 6510, 6388, 8203, 4627, 1139, 9959, 2650, 7459, 5669, 3182, 8147, 9429, 721, 6175, 5659, 15, 6415, 63, 5740, 4657, 9555, 4736, 2316, 335, 9258, 1161, 4636, 2508, 7547, 7965, 2484, 4056, 704, 7038, 5034, 1843, 3349, 7684, 9301, 5369, 7217, 7447, 1150, 7938, 3622, 3160, 4304, 6388, 3222, 43, 1044, 2776, 4778, 9711, 9463, 387, 871, 4098, 2894, 8418, 2062, 1729, 8825, 9118, 8767, 3859, 960, 8467, 7894, 260, 187, 5110, 4058, 1336, 3047, 4031, 4496, 3703, 418, 7717, 97, 7814, 493, 4875, 7524, 6307, 5261, 8395, 404, 4507, 3164, 8818, 6235, 8340, 7935, 1353, 8550, 8894, 9819, 6443, 5505, 6, 7905, 5914, 7693, 7303, 9945, 2188, 1005, 362, 6257, 1102, 4527, 6749, 2328, 2051, 3055, 3940, 6797, 9810, 8446, 6312, 8627, 4681, 1003, 2913, 6033, 9553, 8158, 2204, 2347, 3662, 8561, 251, 5928, 6253, 7554, 5872, 8441, 8558, 2585, 1049, 6011, 7112, 4149, 8338, 5514, 3555, 2278, 8662, 3364, 7075, 1325, 8343, 1755, 2327, 1255, 4140, 1879, 5765, 6343, 4226, 5778, 4903, 828, 1705, 1155, 8381, 7576, 5947, 3291, 161, 6995, 9301, 3624, 1143, 3991, 5489, 4697, 2620, 4150, 4413, 9694, 1826, 2755, 1449, 4152, 361, 5588, 2383, 6125, 1930, 2960, 1903, 3184, 3787, 3607, 4338, 2168, 7535, 6637, 1810, 4047, 3631, 1110, 7670, 1126, 1452, 3158, 2174, 4071, 3659, 6586, 3765, 5484, 9340, 1565, 5987, 6053, 3504, 8369, 2177, 5433, 1328, 431, 4968, 1467, 4038, 9305, 3634, 1572, 2293, 1795, 5618, 2276, 9256, 9639, 3401, 708, 9148, 5574, 4778, 9158, 2160, 4894, 993, 7851, 6458, 6979, 3903, 9961, 5348, 2432, 1745, 3027, 2862, 6712, 4493, 6899, 2369, 4478, 4822, 4661, 6272, 6791, 3288, 1880, 2781, 6688, 2587, 8280, 8614, 7364, 7437, 7125, 8610, 8429, 4975, 5067, 1760, 5230, 5028, 3459, 7661, 6772, 6485, 6874, 9836, 7330, 125, 2204, 8159, 4946, 3216, 783, 8089, 6504, 2662, 869, 9543, 5248, 5501, 8156, 8963, 2937, 1632, 7572, 7718, 2959, 2639, 9477, 8188, 4018, 2935, 2200, 7141, 5771, 9073, 3328, 9452, 9197, 1883, 7611, 495, 5099, 8393, 8583, 7954, 1054, 5803, 3848, 2653, 7655, 8356, 1615, 592, 9987, 5539, 4661, 2945, 4529, 489, 7484, 8546, 3423, 6035, 2038, 5545, 5108, 5366, 4997, 656, 7248, 2607, 1150, 8698, 7351, 6084, 3003, 8404, 8239, 6851, 1056, 5893, 5206, 9022, 2836, 5192, 912, 7496, 4489, 5440, 7984, 8324, 337, 7758, 4359, 8727, 3303, 9466, 4092, 4651, 121, 7691, 3609, 7623, 6389, 959, 58, 9391, 9362, 8296, 6241, 6769, 541, 7798, 2142, 3376, 9342, 3054, 7224, 3830, 4845, 1559, 2153, 1534, 9317, 6511, 260, 8971, 2328, 4351, 9973, 8801, 2041, 3581, 2775, 4781, 4539, 2832, 4172, 3900, 7480, 6764, 7020, 8020, 4562, 5513, 7747, 255, 4918, 4970, 4084, 9763, 6529, 2588, 1296, 2197, 5451, 1555, 1167, 4130, 2257, 1139, 2930, 4297, 4719, 2056, 5430, 5609, 4888, 9601, 9508, 8719, 2716, 2879, 6738, 3629, 8391, 836, 3883, 3309, 5806, 4318, 9423, 8686, 3258, 7070, 882, 8708, 8624, 8400, 2837, 880, 5890, 2119, 1528, 608, 4174, 6957, 6216, 5413, 2909, 2075, 4131, 1977, 1305, 7220, 1957, 6047, 8056, 5840, 5707, 213, 6509, 5129, 8898, 9766, 2198, 6131, 8473, 7173, 4530, 7662, 4404, 419, 6132, 2284, 7378, 6657, 5592, 9945, 2070, 4853, 8371, 2552, 6829, 6027, 6124, 8785, 2073, 531, 976, 7780, 7095, 7485, 9260, 5992, 7250, 7810, 8474, 2075, 4982, 3003, 9736, 5738, 9773, 5867, 8021, 3502, 8875, 3612, 3446, 944, 4816, 8168, 9848, 1644, 4194, 2323, 6781, 2618, 9205, 4108, 397, 6299, 1592, 6009, 2290, 5194, 3818, 763, 7268, 5151, 117, 3355, 888, 6241, 5573, 5260, 9742, 4447, 5224, 9539, 1743, 39, 7706, 1590, 1683, 8251, 264, 4815, 868, 9468, 8922, 7617, 5766, 6866, 3625, 4407, 2059, 7442, 1521, 9326, 2592, 7989, 2680, 9832, 4229, 8252, 5091, 3970, 2698, 314, 9860, 792, 353, 3917, 8733, 8387, 2167, 8996, 3201, 9386, 4815, 8474, 7002, 580, 5339, 6978, 1338, 7397, 4419, 2858, 3074, 3363, 846, 2105, 3194, 1426, 6708, 4636, 1747, 9406, 4950, 1606, 6549, 1654, 1874, 5282, 40, 4040, 4277, 9592, 9778, 9092, 8065, 3131, 6023, 9756, 109, 7361, 7152, 4527, 6570, 6578, 4241, 7416, 8682, 7434, 5193, 5390, 2070, 6940, 1147, 3371, 4897, 7695, 5024, 6771, 2976, 1415, 7162, 3605, 1006, 6939, 2696, 5422, 70, 5070, 5177, 178, 2430, 8681, 1056, 9000, 5258, 5297, 2767, 3939, 9082, 7959, 5680, 7503, 1250, 6826, 7225, 6147, 873, 2248, 2917, 3848, 3662, 78, 7452, 1019, 7017, 6499, 6441, 3438, 1569, 1617, 9967, 350, 297, 1022, 9349, 1906, 2670, 8467, 2197, 1752, 2778, 7876, 5606, 4027, 1054, 2831, 173, 1926, 1430, 3089, 5773, 1444, 9519, 9577, 2462, 2887, 2427, 8902, 6324, 3995, 6871, 6290, 697, 3519, 3663, 6397, 5425, 6333, 4864, 7621, 4436, 7641, 1848, 6393, 8019, 2901, 9223, 4544, 4826, 7005, 3984, 6951, 8448, 3502, 2879, 909, 6388, 5305, 6163, 9063, 5652, 3033, 5352, 6348, 2903, 5367, 2744, 8327, 8051, 3959, 2299, 8838, 7951, 499, 5230, 5970, 3399, 805, 513, 4577, 7809, 848, 7879, 6256, 4350, 7109, 7164, 737, 8765, 9678, 6152, 4416, 2710, 7855, 7115, 5613, 3221, 6211, 291, 1271, 169, 8942, 108, 4472, 9440, 1690, 441, 9190, 2494, 7305, 118, 6654, 8152, 4348, 2909, 8853, 1456, 6424, 5942, 6573, 6102, 2093, 7340, 5163, 9947, 4455, 7127, 9520, 7017, 3770, 790, 7185, 2711, 7250, 1656, 8502, 5291, 8448, 4043, 7784, 2104, 513, 789, 6608, 1212, 3697, 1812, 9020, 6472, 7753, 5592, 8925, 6197, 2931, 4088, 6144, 3737, 7566, 5663, 753, 1335, 2804, 4290, 397, 6405, 2297, 8898, 1695, 7097, 9293, 5830, 9200, 6157, 6618, 2159, 7368, 6666, 323, 6387, 3138, 8075, 1978, 2062, 4272, 4909, 2501, 6767, 4997, 67, 8781, 5750, 1401, 7936, 39, 1798, 4341, 2335, 7047, 2387, 9431, 2691, 8217, 4983, 8847, 1186, 3493, 6215, 7852, 3815, 8953, 7341, 8242, 931, 5754, 8865, 2191, 8255, 5631, 7187, 4673, 763, 9288, 6073, 8698, 9326, 4222, 9390, 1661, 7621, 1777, 7443, 311, 9993, 2425, 5510, 7530, 2270, 8076, 5381, 6084, 7028, 2721, 4325, 4310, 8475, 3189, 6500, 3081, 5171, 39, 7753, 5933, 9326, 177, 983, 8652, 4399, 372, 6664, 8371, 2148, 458, 5033, 8492, 9235, 542, 6022, 1504, 8617, 7754, 3939, 1997, 6827, 8264, 6306, 1653, 7804, 9158, 4733, 9327, 9196, 8837, 5259, 8521, 9013, 2593, 3524, 9763, 2965, 6539, 8133, 1464, 3349, 3166, 6308, 2583, 59, 2329, 438, 5028, 6434, 4376, 7024, 3260, 8991, 3329, 4912, 3147, 2486, 5996, 2473, 8033, 4832, 4083, 2906, 197, 6676, 6429, 9959, 9640, 9320, 4444, 7455, 2668, 3961, 3762, 1602, 371, 2442, 2039, 5398, 8876, 6414, 2421, 8487, 1757, 2102, 3399, 4903, 939, 5746, 7375, 5324, 6930, 1457, 8229, 7126, 8132, 1009, 3436, 4123, 6680, 4231, 1578, 9347, 8191, 1691, 948, 4914, 4133, 9338, 311, 3008, 5752, 9084, 1494, 7508, 7537, 1244, 2410, 4827, 6990, 6136, 150, 3919, 7592, 8378, 7396, 5724, 5739, 831, 6198, 2418, 1414, 7775, 8117, 5956, 9466, 5416, 869, 9950, 4754, 1180, 2957, 6857, 6615, 802, 716, 4151, 8398, 9477, 8977, 1739, 5612, 9127, 2009, 3203, 3856, 9404, 5278, 9594, 6586, 1476, 2012, 7999, 5602, 128, 307, 1419, 5543, 1175, 1368, 6648, 2354, 4324, 3504, 8968, 1478, 4219, 9470, 6227, 3695, 8447, 7965, 9306, 3925, 9973, 8861, 7780, 5728, 4138, 3726, 8665, 1965, 5737, 3016, 7567, 2216, 3322, 8985, 4110, 4496, 353, 758, 3202, 1028, 4261, 8521, 8857, 4832, 7991, 5083, 8526, 2789, 3047, 4184, 6713, 9371, 3044, 4492, 1450, 3533, 8217, 6467, 5498, 305, 9482, 3064, 8872, 9155, 8400, 2982, 2, 8752, 91, 3203, 6132, 703, 8076, 4988, 5534, 6066, 71, 412, 5206, 9469, 947, 1918, 5192, 3990, 2761, 2993, 3874, 7330, 9459, 9371, 7634, 5292, 8786, 2858, 798, 3538, 2191, 800, 2289, 2281, 354, 4772, 9335, 8429, 9760, 1221, 846, 6182, 7984, 6051, 2002, 8930, 4320, 7193, 9271, 7081, 6538, 3144, 4410, 2348, 8867, 8395, 7640, 4004, 7604, 4789, 7541, 9794, 5588, 6182, 8426, 5942, 953, 4113, 722, 7064, 5333, 1568, 3245, 3316, 3970, 5247, 2245, 8290, 8791, 1515, 1722, 5328, 1010, 6131, 7676, 9876, 877, 1667, 232, 8481, 6455, 7772, 4626, 2043, 305, 9404, 4336, 1258, 3516, 5057, 4673, 8848, 2976, 7918, 8515, 6946, 3164, 759, 1587, 1954, 8625, 3308, 7282, 9634, 5790, 1309, 5862, 3018, 2975, 6093, 7850, 9429, 216, 2476, 7823, 6873, 8231, 2158, 4482, 1746, 3567, 9154, 593, 6542, 7071, 5459, 9839, 6586, 6217, 1425, 8540, 1193, 1084, 2173, 7178, 6873, 9833, 3039, 6243, 2807, 5483, 4092, 8587, 2051, 2919, 6410, 8923, 1149, 4919, 9756, 9246, 8485, 8909, 6190, 1379, 5980, 1648, 1217, 2565, 4216, 8994, 7456, 5408, 77, 5980, 2586, 3302, 5812, 1976, 5896, 4970, 3811, 9987, 3557, 2213, 9258, 6318, 7487, 6758, 1236, 7242, 6004, 6073, 6150, 2193, 7451, 8481, 3841, 5019, 7398, 8056, 4012, 1205, 9816, 441, 7185, 2401, 94, 9348, 728, 5989, 4318, 4538, 5975, 7874, 3102, 1584, 4191, 588, 8342, 1778, 7829, 697, 4202, 331, 2889, 8004, 8811, 3081, 3023, 2560, 1137, 3386, 3765, 7304, 178, 7301, 6056, 271, 6648, 6783, 6259, 965, 7673, 8586, 8838, 774, 169, 9380, 1362, 4862, 7510, 9190, 5558, 1711, 9520, 8447, 6067, 4683, 7879, 9089, 7242, 5367, 8826, 7358, 2670, 9004, 4658, 8725, 5626, 1306, 5508, 1885, 2270, 9532, 470, 7460, 305, 6990, 3191, 1666, 1852, 7052, 7208, 7409, 8763, 3079, 2207, 4829, 7761, 86, 269, 1355, 5452, 5446, 8712, 8122, 801, 3370, 6846, 6427, 1027, 8705, 4663, 3296, 8236, 5132, 7107, 8541, 2121, 6650, 6558, 324, 3701, 117, 7733, 8815, 3196, 6291, 3643, 7308, 6376, 263, 5014, 8180, 2061, 78, 6301, 2861, 3447, 9498, 5639, 825, 4555, 301, 472, 2790, 5432, 7579, 7682, 3905, 580, 592, 4228, 4280, 708, 8312, 3095, 255, 4603, 3089, 3915, 7330, 9704, 5280, 5509, 1764, 5357, 8161, 976, 5155, 4011, 6615, 5979, 8565, 6915, 6451, 1354, 8699, 381, 5388, 8955, 960, 5979, 9534, 5239, 3038, 7846, 4685, 9645, 8800, 7774, 3559, 6129, 3829, 8838, 7990, 5592, 547, 6150, 2919, 5701, 160, 9533, 1680, 8724, 2800, 8130, 6430, 1498, 8510, 1817, 6804, 5821, 4147, 6337, 1059, 7184, 534, 2096, 6828, 9333, 6221, 6738, 1814, 49, 1928, 9803, 1992, 2474, 2304, 4910, 4526, 2464, 4443, 6205, 7539, 3594, 686, 320, 1443, 5547, 8488, 8246, 1367, 2634, 4582, 8778, 6170, 5116, 873, 9349, 800, 7093, 2439, 2613, 7141, 4366, 2415, 9132, 3191, 1071, 393, 7716, 3534, 1187, 273, 7424, 4780, 958, 4096, 6222, 6505, 2583, 819, 4223, 1569, 1753, 3000, 4090, 3220, 3872, 9790, 4019, 7316, 2228, 2984, 4456, 2945, 1750, 9939, 6135, 2820, 6684, 203, 2705, 7870, 475, 129, 2650, 7784, 4224, 5223, 640, 3158, 2394, 4863, 4726, 4146, 4214, 5167, 7365, 4438, 4957, 7735, 1753, 7184, 718, 2561, 6481, 2468, 8851, 8967, 5287, 5534, 9169, 7992, 3404, 5995, 4472, 2405, 3779, 5047, 3979, 4418, 4556, 6372, 9280, 5634, 6869, 3494, 800, 585, 4283, 5756, 8320, 6035, 9292, 5389, 8595, 5772, 4208, 3798, 1090, 9495, 9331, 259, 3838, 9086, 2605, 4661, 1490, 6383, 6059, 1821, 801, 614, 8192, 6432, 6247, 1413, 6277, 7047, 1997, 559, 9154, 6668, 2946, 8445, 2057, 7892, 568, 6264, 1689, 8010, 2110, 1020, 4620, 2299, 6457, 7224, 6959, 4299, 3607, 3017, 6119, 759, 9983, 662, 3542, 6229, 2074, 9819, 9627, 4071, 6729, 8781, 738, 9674, 3577, 9146, 7566, 497, 5410, 9254, 8506, 3871, 6625, 3125, 6170, 9434, 348, 3128, 3732, 306, 2497, 9850, 1064, 2479, 511, 958, 5059, 8937, 776, 4686, 9359, 7504, 3466, 6448, 3530, 7042, 5594, 1095, 7538, 7355, 6700, 2395, 1225, 9677, 5519, 3746, 9110, 2219, 3226, 9193, 2524, 5722, 9042, 9940, 4552, 5904, 897, 9610, 1192, 8024, 4295, 550, 1879, 4112, 6998, 1760, 1154, 2591, 2854, 5043, 6297, 5906, 3790, 3873, 1934, 9308, 7619, 7395, 7878, 844, 6587, 6754, 2917, 1980, 6693, 7468, 7883, 3941, 3429, 9075, 8316, 7724, 5976, 6546, 1835, 2973, 8306, 9340, 1915, 7511, 735, 8211, 3416, 4524, 8436, 1701, 183, 6054, 9095, 8061, 6897, 2033, 4814, 9813, 4012, 7858, 3632, 1895, 8150, 7060, 7321, 2817, 1135, 3296, 9362, 9322, 2621, 7667, 5013, 887, 5178, 5747, 5450, 4945, 6622, 3885, 6646, 3157, 9938, 2092, 1217, 3186, 4125, 2382, 9350, 4488, 6591, 2981, 6382, 1092, 6392, 54, 3908, 7527, 9702, 3269, 6848, 8674, 7288, 8212, 9560, 2465, 311, 5009, 3761, 6932, 5245, 6758, 88, 1534, 8850, 7656, 4719, 9326, 6389, 4068, 3813, 2979, 3400, 6547, 4070, 9792, 2952, 4329, 3670, 9005, 7598, 6869, 7678, 4885, 5080, 3590, 3701, 5390, 4950, 7461, 8674, 195, 4219, 5113, 1728, 9420, 9121, 6447, 5097, 5509, 6866, 5261, 4840, 6618, 1807, 5261, 6409, 1111, 9590, 6430, 115, 3539, 3298, 7793, 4775, 4729, 1382, 8475, 119, 6331, 2287, 5144, 2877, 2857, 256, 4605, 8628, 5728, 7403, 76, 1237, 620, 5337, 2428, 7237, 3495, 7688, 3645, 4605, 7277, 74, 4720, 7167, 9723, 8864, 1941, 4452, 6597, 6767, 922, 9279, 5406, 6065, 2156, 8262, 2672, 3112, 3242, 8400, 514, 3317, 5988, 1133, 5005, 8415, 4722, 8500, 6102, 8366, 9456, 9731, 4792, 527, 6897, 866, 9390, 8838, 5317, 2338, 5604, 2590, 1617, 1009, 5006, 124, 5623, 7678, 9587, 5216, 2429, 6452, 4884, 8416, 7584, 9889, 6830, 8657, 4740, 9283, 7023, 4195, 9013, 8166, 4722, 5910, 5383, 463, 4747, 7052, 2801, 6702, 9641, 769, 4063, 4647, 7244, 6037, 8676, 6830, 7604, 1104, 3281, 2487, 9519, 7216, 8727, 2700, 5873, 3466, 1982, 9247, 7661, 995, 3764, 2382, 3256, 9146, 2844, 4354, 6197, 1996, 1055, 2190, 2764, 1469, 6836, 6359, 3857, 5511, 3188, 1460, 2966, 6468, 3947, 2484, 3684, 2673, 1535, 5908, 6139, 3516, 5154, 151, 4510, 8917, 8884, 7765, 8062, 8079, 8470, 611, 75, 9525, 2800, 9190, 7345, 9635, 5549, 1202, 1497, 8736, 2661, 4462, 1556, 2959, 3297, 1591, 5632, 4831, 7498, 8122, 4698, 2651, 4624, 5560, 7919, 3507, 9676, 2332, 1585, 8146, 2942, 8011, 7670, 5741, 7201, 1366, 1727, 9101, 2567, 9575, 7836, 5228, 388, 5743, 4538, 3684, 7333, 169, 4866, 4830, 4642, 9564, 3832, 9265, 5123, 1750, 2771, 1150, 4082, 708, 9295, 7023, 8718, 3316, 9116, 5918, 4682, 7194, 5018, 7248, 6769, 9206, 8827, 7156, 4948, 3365, 7192, 8633, 9885, 2057, 3462, 879, 7972, 3646, 143, 9446, 5395, 9266, 596, 5828, 9973, 9890, 9203, 8690, 3206, 8318, 960, 7887, 5511, 2329, 1486, 8631, 7886, 6665, 5787, 9186, 6381, 2978, 7818, 6265, 1386, 7631, 7143, 5710, 1276, 3638, 5155, 3023, 2903, 2102, 8850, 9227, 1992, 8052, 4268, 1549, 2721, 5227, 5787, 4584, 3908, 7272, 3214, 1793, 288, 5352, 7330, 6668, 4681, 5147, 2933, 6067, 2778, 6427, 8128, 405, 64, 3282, 3427, 9318, 1736, 8629, 8544, 79, 3032, 2812, 1627, 2105, 4390, 7413, 6688, 8297, 1036, 6253, 6442, 7676, 1605, 3771, 4343, 6285, 8918, 7275, 8703, 8047, 54, 6830, 8451, 117, 6464, 8230, 5787, 8199, 6858, 4330, 8277, 9889, 7141, 6255, 1993, 1531, 19, 5032, 6179, 7406, 1285, 2620, 5081, 9241, 2743, 9424, 1877, 1660, 3050, 6932, 6058, 3103, 3761, 860, 9572, 6576, 9089, 5358, 4774, 5946, 6039, 9402, 2187, 9532, 5656, 531, 7414, 5674, 5563, 3592, 3080, 3199, 2564, 8160, 8791, 5306, 7583, 667, 3317, 6985, 7598, 9374, 87, 7711, 6585, 6010, 4286, 5674, 7719, 5412, 7971, 3758, 4813, 6509, 3289, 469, 7040, 702, 2494, 8954, 645, 1925, 2152, 9560, 85, 7294, 4865, 4019, 7960, 4533, 1003, 1910, 258, 7442, 9620, 6843, 9803, 257, 2516, 7522, 5668, 6838, 7631, 6833, 3347, 919, 3653, 386, 7972, 6146, 5691, 4968, 8071, 7842, 4528, 4507, 1487, 5744, 4877, 9446, 277, 5880, 7707, 6886, 9673, 3678, 3728, 9475, 287, 2595, 3348, 5954, 9433, 978, 9138, 9131, 8248, 2790, 9516, 2571, 5288, 5206, 7539, 9710, 9399, 8418, 4216, 885, 513, 9092, 6682, 7141, 1323, 741, 4027, 7347, 4418, 4106, 6822, 1056, 6701, 169, 7010, 2485, 7499, 2499, 1615, 5746, 5289, 7482, 8317, 6928, 9039, 2207, 6637, 4789, 6976, 7204, 2025, 7488, 2647, 5058, 4629, 3970, 5798, 8655, 7668, 6568, 9112, 4489, 7623, 5812, 1010, 984, 4648, 8508, 3483, 2614, 605, 5123, 95, 8921, 8402, 5485, 7479, 5038, 273, 4454, 8593, 2297, 1942, 1239, 7355, 2922, 1560, 3152, 7928, 9228, 6071, 7039, 68, 3694, 9203, 7429, 1029, 3850, 5936, 4511, 2816, 2893, 5985, 2910, 8165, 4386, 4747, 5644, 5775, 5019, 6449, 4367, 7316, 4742, 1958, 1022, 7663, 9869, 525, 1942, 9096, 6596, 8981, 5516, 6641, 8183, 2944, 7669, 8384, 5232, 8532, 1199, 8124, 868, 461, 2640, 5254, 5207, 8283, 1028, 225, 4732, 1747, 3892, 5825, 3704, 1265, 3488, 9924, 1790, 5429, 5372, 4737, 761, 887, 1377, 8943, 182, 5397, 3679, 1765, 280, 4877, 6240, 1148, 5337, 8880, 2753, 6895, 7162, 132, 7120, 8245, 1878, 7363, 4070, 1933, 8628, 3909, 1857, 6769, 5689, 7228, 1505, 6450, 4466, 9233, 1744, 4647, 981, 1774, 6412, 1261, 6651, 2651, 8760, 8339, 1530, 1512, 5234, 5044, 7995, 8705, 9640, 6225, 2419, 61, 8157, 7398, 3969, 6365, 4166, 6010, 9944, 5670, 2459, 761, 4902, 554, 1760, 2235, 2328, 4523, 9847, 5330, 3525, 8606, 20, 5055, 6469, 1605, 6450, 4463, 6661, 2441, 687, 9080, 2502, 5196, 6477, 6470, 7912, 643, 8831, 4208, 2664, 7641, 4968, 3918, 8195, 3079, 6152, 6874, 7601, 5998, 2203, 1126, 4603, 8574, 2532, 7423, 179, 8981, 8237, 6839, 1421, 8924, 5918, 3922, 471, 8747, 6744, 4734, 5741, 1926, 8941, 8404, 9567, 261, 2321, 4113, 3339, 4824, 986, 940, 821, 9540, 8417, 1775, 8113, 948, 9197, 8291, 9928, 3786, 1482, 7700, 9061, 3751, 7974, 9531, 2497, 1069, 616, 8237, 2994, 9557, 2993, 8912, 6169, 1665, 3024, 5859, 6489, 4009, 3150, 7309, 9900, 1566, 5436, 4365, 2513, 984, 2655, 8792, 4769, 488, 2844, 3829, 4239, 817, 9711, 6735, 8237, 327, 1324, 7582, 6235, 4316, 6494, 2403, 5980, 9517, 8261, 2468, 9878, 7763, 6129, 9777, 9328, 1564, 4141, 1841, 8899, 3148, 632, 3668, 3635, 3475, 7496, 4225, 643, 3559, 960, 5231, 3885, 8635, 2813, 119, 2950, 5658, 8873, 5281, 5174, 3485, 4101, 1403, 1247, 6581, 7532, 575, 4496, 8024, 8767, 3394, 7523, 9398, 7061, 1158, 9225, 909, 5382, 6219, 4467, 2693, 1450, 4703, 1327, 614, 1173, 628, 6271, 45, 2261, 7796, 3529, 6361, 5551, 1128, 2941, 3082, 8054, 3788, 1105, 6820, 7181, 8628, 2569, 594, 6137, 8145, 7854, 7870, 4364, 8672, 6915, 2165, 3374, 4593, 9130, 4546, 5221, 1752, 942, 7481, 5899, 822, 193, 1449, 1949, 9485, 4530, 2, 3272, 1987, 3173, 6804, 6966, 5742, 7397, 9454, 3886, 5250, 3675, 4601, 273, 589, 6765, 3646, 5182, 5894, 4543, 6754, 3997, 5484, 586, 9896, 2658, 778, 1344, 4606, 262, 2226, 960, 9885, 564, 4132, 6688, 7529, 6225, 437, 3334, 111, 2038, 7008, 4711, 2311, 7597, 7828, 2308, 9130, 73, 3203, 2235, 4070, 5038, 2820, 3965, 7695, 9949, 5308, 8653, 6562, 7533, 9612, 6446, 8096, 95, 9485, 1976, 6320, 9921, 5309, 6430, 1959, 8669, 7492, 621, 6265, 5319, 2928, 1746, 5392, 6130, 3980, 5813, 1168, 3151, 9777, 8862, 3099, 5084, 3866, 9660, 8969, 3477, 6105, 3416, 9924, 1941, 1744, 6243, 1862, 3404, 9024, 3820, 2072, 2867, 4440, 4688, 8186, 3719, 6433, 9929, 9849, 6764, 5741, 7368, 9914, 1869, 2581, 9364, 3304, 6447, 9023, 2272, 6275, 1479, 2040, 6198, 3420, 3783, 2440, 1633, 3538, 7815, 5452, 5610, 682, 6243, 297, 5219, 6313, 3082, 1499, 2513, 9845, 3591, 9880, 6111, 5459, 8813, 1826, 5114, 1611, 849, 7386, 7885, 8679, 5777, 4083, 8450, 5911, 2874, 82, 9448, 7041, 1885, 5057, 4074, 4479, 5354, 9292, 792, 4787, 7142, 3304, 983, 732, 9536, 3445, 2542, 8348, 5271, 7655, 9958, 2471, 1392, 4194, 1149, 3520, 8276, 9599, 9430, 7502, 9680, 8878, 894, 7917, 286, 4967, 2395, 1991, 4258, 3186, 6777, 7751, 6490, 7760, 4834, 2377, 1204, 3727, 724, 6474, 7733, 7033, 8944, 9125, 1226, 6445, 2644, 5854, 2395, 8426, 9707, 8426, 3655, 600, 6342, 3940, 5566, 8737, 5931, 6175, 1922, 9059, 3925, 4763, 3170, 5110, 7139, 4374, 8836, 4214, 7199, 6568, 1246, 2495, 2044, 8824, 5291, 4688, 1029, 7685, 9465, 735, 6110, 3119, 7686, 2452, 7058, 9603, 1188, 9340, 5777, 9461, 8399, 6053, 4224, 7920, 1162, 1362, 2293, 6349, 5576, 5844, 2916, 3173, 4690, 4960, 8348, 9980, 5999, 9376, 4016, 5463, 6462, 125, 4933, 4147, 8928, 1990, 3749, 6467, 7682, 5877, 5928, 2432, 8281, 151, 351, 5794, 7864, 8996, 2142, 9791, 1191, 1410, 9316, 5880, 6369, 7663, 2211, 8719, 3391, 6226, 4181, 9852, 2702, 9113, 3999, 7982, 7454, 4099, 4448, 1487, 6328, 375, 3918, 4608, 6877, 621, 402, 1093, 9616, 8895, 883, 806, 304, 6550, 3037, 3024, 4213, 1599, 1742, 7603, 4176, 2274, 3806, 3229, 7738, 7804, 1210, 5192, 8255, 5658, 6678, 4582, 2384, 6948, 5541, 9261, 7568, 2294, 353, 3535, 7541, 7587, 692, 7844, 4137, 3728, 868, 4701, 5326, 8961, 8655, 5853, 1235, 2460, 9081, 8972, 6616, 291, 515, 1222, 2300, 3545, 2155, 4683, 492, 7695, 3943, 4411, 6341, 647, 7945, 3881, 4586, 8636, 8076, 5074, 8715, 8943, 9774, 392, 4256, 8428, 6244, 5490, 7239, 5324, 4461, 3854, 1966, 1328, 1427, 4265, 4872, 3581, 8948, 5363, 1276, 9242, 9773, 3968, 6241, 4069, 7848, 826, 2704, 5923, 5899, 7770, 1218, 2024, 8161, 5473, 6803, 756, 7314, 4041, 6079, 8126, 4247, 4397, 9453, 5673, 8661, 4324, 9254, 7608, 6038, 6881, 3202, 2162, 848, 9442, 6230, 5047, 267, 5285, 7321, 2517, 3054, 4890, 4540, 7566, 6714, 1342, 8321, 4027, 5382, 752, 8505, 5980, 5148, 7957, 1653, 3808, 8633, 7258, 7768, 4670, 490, 969, 6832, 1337, 410, 3061, 2735, 7028, 4698, 55, 9544, 7751, 4945, 4083, 1669, 1658, 5424, 9989, 2037, 7157, 7092, 541, 3137, 2239, 8497, 1141, 2399, 7129, 8398, 166, 8151, 5239, 1134, 4982, 2927, 7895, 4394, 5661, 4922, 9091, 2067, 4465, 3194, 7011, 4899, 4862, 5021, 322, 1202, 3409, 3830, 8294, 3949, 6966, 532, 8797, 4458, 2930, 2278, 9207, 9447, 428, 4445, 6932, 1761, 7371, 4826, 6154, 3031, 6099, 5245, 1450, 6915, 4790, 4812, 1813, 9651, 9832, 8486, 7204, 3240, 2316, 5497, 3540, 5633, 2381, 2337, 6443, 1662, 4614, 5649, 1109, 1393, 94, 4392, 3153, 3816, 9218, 9306, 3199, 1668, 902, 4648, 4935, 5691, 9459, 6747, 1693, 5643, 1585, 8897, 5234, 252, 745, 8774, 2236, 3125, 1110, 8678, 4787, 2075, 4327, 2247, 3467, 772, 2990, 6619, 4587, 8559, 5924, 4137, 227, 3178, 8784, 5161, 8868, 4595, 8259, 6913, 237, 9843, 5809, 5470, 6446, 6553, 4243, 8682, 6030, 1704, 7359, 7168, 3778, 8037, 5766, 3596, 8808, 8755, 214, 9747, 7314, 2490, 3883, 7540, 5667, 9019, 9052, 886, 3613, 7310, 4150, 201, 3505, 9958, 5670, 9950, 2863, 6265, 8631, 8892, 4320, 2342, 2411, 4450, 378, 8176, 8045, 5538, 6930, 4611, 1636, 4243, 7100, 1870, 8134, 9118, 888, 7185, 6355, 852, 847, 505, 1052, 4351, 6814, 3074, 652, 9676, 9338, 5635, 4919, 3657, 7976, 7329, 8106, 4705, 5504, 2503, 242, 8786, 7113, 1877, 3028, 4212, 99, 7514, 9681, 986, 4698, 2387, 8190, 1896, 2891, 9241, 6246, 6057, 2314, 6898, 2084, 8003, 2532, 7003, 1660, 6859, 683, 6117, 1563, 2539, 8619, 1805, 1324, 5731, 33, 703, 6294, 6483, 8216, 2326, 7469, 9266, 1065, 5658, 1161, 307, 1250, 7407, 6363, 9916, 656, 8447, 7918, 9539, 1801, 9577, 6397, 2483, 2046, 4311, 5021, 7016, 2467, 6344, 9099, 8852, 7047, 1744, 5334, 5262, 422, 2802, 879, 1486, 4811, 2040, 1792, 2413, 5798, 8155, 2328, 6453, 6601, 245, 2343, 8401, 6174, 5091, 7235, 4571, 9401, 2256, 1586, 1868, 4951, 684, 719, 1997, 8780, 6052, 3611, 9201, 5206, 4489, 686, 6368, 2880, 2477, 8780, 8677, 6983, 7459, 5129, 9935, 7704, 3823, 4687, 229, 8913, 1922, 4799, 8314, 4177, 2736, 181, 5479, 9772, 899, 7476, 8551, 3302, 7438, 7751, 8507, 8278, 4788, 1227, 1158, 3616, 6, 9834, 599, 3817, 1315, 533, 1520, 5137, 5220, 8100, 4050, 3493, 9250, 2363, 4021, 1985, 8895, 9499, 1756, 6145, 3326, 6658, 9446, 763, 4408, 4305, 5393, 5547, 5531, 6550, 9163, 1888, 2735, 9761, 5704, 4049, 6645, 3575, 5538, 8216, 1674, 5939, 1708, 923, 4653, 5728, 9260, 3547, 5227, 1015, 6043, 8552, 4025, 5488, 5667, 4784, 6144, 1059, 331, 1674, 3960, 9493, 9914, 6694, 5605, 5617, 7095, 2249, 9192, 2632, 6817, 7217, 8570, 8524, 4492, 9574, 604, 3751, 3120, 2182, 1117, 5514, 7085, 5141, 1001, 2751, 9925, 3497, 161, 255, 1522, 4120, 6099, 1435, 7166, 1703, 7052, 4260, 303, 2595, 3243, 7119, 9811, 8164, 1995, 654, 7737, 2598, 4404, 7208, 4779, 5521, 2721, 1863, 7013, 73, 966, 6937, 3569, 1126, 3543, 1443, 1598, 9641, 2877, 8763, 7695, 6280, 9374, 7998, 5226, 8968, 1468, 1389, 7131, 3462, 2042, 1219, 2411, 6446, 8426, 3541, 8318, 7498, 5404, 5330, 7570, 2721, 2267, 7491, 198, 5809, 8933, 8147, 1802, 8161, 3261, 9496, 4441, 2634, 3845, 6018, 1601, 5313, 7406, 5083, 5126, 9448, 6301, 7537, 2245, 1078, 1077, 562, 8575, 2832, 5891, 6145, 1904, 4509, 9987, 2102, 6670, 8919, 6600, 8471, 7079, 9861, 7966, 7871, 8846, 1811, 3889, 447, 7123, 7646, 1881, 8600, 7093, 8182, 2488, 5689, 5611, 9917, 6250, 4186, 2748, 8493, 6682, 1004, 9353, 6668, 9457, 6022, 1938, 6056, 4492, 9016, 5916, 2458, 3239, 4762, 4268, 3479, 1560, 7742, 1124, 3440, 2693, 4569, 7973, 5181, 257, 9936, 5097, 2859, 4121, 4196, 7703, 802, 5199, 7055, 3821, 4655, 3077, 5758, 7063, 7568, 4773, 2978, 6377, 4363, 4091, 6996, 7841, 2002, 1089, 5317, 1794, 3782, 9885, 9766, 8962, 6493, 9701, 4058, 5703, 173, 4605, 3405, 7326, 9804, 460, 1146, 810, 9888, 6903, 7872, 7455, 8028, 7202, 184, 8742, 7644, 7179, 6583, 9646, 8268, 8251, 1439, 2049, 8135, 7556, 7362, 979, 3609, 7771, 6682, 3781, 2375, 6438, 1107, 8530, 6897, 8604, 9340, 3136, 1859, 3563, 591, 9886, 7116, 7126, 8627, 4760, 4304, 1561, 4405, 8923, 9811, 5843, 971, 4297, 3398, 4684, 1628, 7006, 2454, 8309, 7139, 4829, 4746, 4597, 9710, 7995, 3200, 9049, 1130, 5058, 8964, 8072, 1295, 6079, 5197, 6274, 7190, 5853, 7834, 1594, 4775, 3997, 3788, 2098, 4645, 3538, 6781, 6272, 6895, 9235, 4580, 4033, 415, 5678, 8629, 124, 24, 8181, 5525, 7505, 9590, 4488, 5577, 885, 6918, 7125, 7158, 4108, 2977, 1343, 2053, 4104, 1691, 5841, 6201, 6336, 9378, 2981, 2607, 6272, 8567, 3539, 6657, 8981, 5568, 1637, 5457, 5591, 6169, 981, 3095, 5759, 1820, 5023, 2995, 5089, 2148, 6504, 9196, 1476, 4198, 7601, 5579, 5889, 9793, 8131, 2224, 9170, 7464, 1182, 1793, 6030, 4720, 4801, 5011, 287, 2790, 467, 2229, 8958, 7799, 5324, 4716, 9618, 6698, 4062, 4706, 5197, 565, 254, 6673, 4763, 4206, 8603, 651, 3998, 3086, 9226, 9519, 549, 407, 7663, 6578, 1479, 2464, 7940, 8117, 5253, 4758, 346, 562, 2556, 2021, 5278, 8525, 8718, 5691, 9583, 3915, 6256, 6188, 6939, 1018, 393, 1893, 8020, 742, 4978, 3597, 260, 5526, 4003, 4274, 8456, 1833, 6737, 6395, 9950, 8341, 7505, 295, 8903, 60, 2315, 532, 4937, 7384, 6222, 871, 1298, 8829, 7058, 4588, 6198, 3802, 6481, 569, 895, 1458, 4165, 1154, 3336, 4520, 5427, 1791, 6352, 8516, 4537, 2653, 3208, 2041, 2947, 8462, 8453, 1613, 5345, 3389, 8997, 7919, 611, 6646, 6747, 4020, 1234, 9297, 7821, 4066, 9865, 5067, 5523, 4030, 6220, 5210, 8549, 7998, 3352, 1252, 2865, 7889, 3905, 6073, 9929, 3203, 886, 4733, 4816, 6231, 4473, 164, 4149, 5083, 3161, 7247, 9102, 746, 6543, 3274, 4811, 6408, 8340, 6686, 437, 911, 1895, 5337, 5261, 5247, 2940, 8125, 9487, 6844, 549, 5767, 6399, 1435, 500, 1214, 4017, 4972, 7729, 8165, 6407, 889, 5411, 5508, 1635, 8306, 5134, 6445, 4713, 3473, 9482, 1501, 736, 1377, 3189, 5996, 2975, 6128, 472, 2461, 9324, 1021, 8227, 2074, 8807, 8726, 3287, 2823, 50, 7367, 7339, 6456, 4607, 9101, 8315, 2593, 7406, 3448, 5390, 8470, 3273, 4871, 6322, 4008, 6247, 9510, 6355, 9221, 1990, 6826, 8033, 7665, 4198, 6260, 9738, 9356, 4985, 9376, 8530, 5034, 3094, 5868, 7841, 7700, 1321, 6156, 293, 8726, 9603, 2034, 3548, 9227, 6904, 9869, 3234, 9503, 5731, 5940, 5075, 7720, 9118, 3108, 1736, 3315, 9367, 1473, 9023, 703, 7200, 7552, 2089, 293, 9772, 9929, 7992, 1092, 2436, 4636, 6169, 2039, 6669, 9716, 1265, 3573, 5937, 851, 9427, 1667, 3142, 4501, 5738, 2259, 7608, 7473, 1926, 3326, 8945, 948, 4029, 6144, 4851, 6117, 6436, 4622, 2397, 779, 5713, 4833, 5415, 1882, 3223, 8435, 7949, 839, 8359, 3885, 8041, 7785, 1903, 1183, 2286, 7640, 9793, 6245, 5112, 1718, 9571, 408, 9017, 3599, 2903, 3868, 6067, 5690, 4841, 4815, 6469, 554, 9647, 8235, 8787, 9221, 6669, 3087, 60, 5028, 3324, 4452, 9164, 5226, 5634, 1449, 2866, 5427, 7694, 7977, 3496, 7264, 8385, 8865, 7214, 7639, 2732, 3280, 3329, 7572, 4446, 9797, 4477, 445, 8031, 9615, 9665, 1051, 9054, 6076, 2430, 2377, 528, 1594, 3954, 2513, 9394, 6819, 4291, 7087, 1148, 7787, 702, 5884, 6651, 7915, 3522, 5734, 7546, 6850, 9657, 8344, 6646, 486, 8788, 1028, 6452, 8452, 8431, 5505, 880, 7212, 4233, 7759, 8805, 8187, 271, 4551, 5005, 4562, 1637, 2504, 8700, 8691, 8387, 1702, 2957, 1909, 3787, 6855, 5110, 9795, 5198, 8108, 280, 3985, 5487, 3084, 8788, 3917, 4940, 6019, 1129, 9173, 3777, 6285, 7359, 4048, 835, 8715, 4961, 8824, 7571, 12, 3866, 5957, 8065, 6822, 4217, 8203, 28, 9327, 7997, 1577, 3786, 4629, 1913, 9272, 7712, 701, 9541, 9003, 3071, 7021, 8175, 6848, 3305, 1885, 7247, 492, 6952, 2207, 5667, 4522, 8570, 9532, 6830, 6634, 2705, 1047, 4836, 2733, 6725, 9184, 4309, 510, 3812, 6222, 6133, 7875, 3274, 5673, 6878, 6344, 2693, 1404, 9543, 5998, 3289, 6789, 2841, 6592, 8995, 8507, 1113, 3916, 4390, 7942, 549, 7094, 5340, 1736, 6178, 8416, 920, 487, 5277, 1083, 3060, 1410, 8958, 2685, 7082, 2187, 9028, 6127, 3590, 4923, 8476, 6878, 1711, 1316, 3469, 7058, 6174, 933, 973, 563, 5227, 7874, 4008, 6918, 9609, 186, 5334, 6880, 7024, 6962, 4315, 83, 8371, 3272, 2767, 1805, 1810, 8146, 7931, 5399, 3068, 6406, 8629, 4779, 4073, 8449, 8188, 246, 9382, 9160, 7160, 960, 3385, 1167, 7877, 9346, 1352, 3210, 6225, 8375, 172, 539, 8457, 4894, 162, 7575, 3050, 1971, 2073, 980, 3722, 1492, 3737, 2350, 2622, 7809, 798, 809, 4406, 6531, 9969, 1565, 7490, 3353, 2732, 5367, 2698, 4083, 4928, 5275, 8810, 1451, 2165, 3618, 2697, 8679, 1193, 5746, 7001, 9617, 6726, 722, 1108, 6814, 9423, 3730, 975, 221, 4538, 5380, 3103, 858, 3297, 593, 563, 6028, 5959, 3260, 6462, 7238, 4886, 5271, 8689, 3403, 5241, 1385, 2081, 6433, 7130, 9081, 2401, 207, 6155, 3508, 3373, 5577, 7237, 4347, 2149, 1775, 6078, 5252, 2632, 9374, 2196, 3194, 5401, 4506, 2806, 8215, 1743, 4043, 9837, 6783, 7445, 5077, 4519, 9525, 7861, 8001, 4958, 261, 8207, 1112, 3769, 7931, 3040, 7357, 2277, 5189, 9131, 8355, 6792, 8115, 7728, 5339, 7660, 9481, 9844, 6817, 4047, 1586, 860, 3883, 4721, 8304, 5312, 9239, 4181, 3172, 7239, 5490, 9785, 1798, 6601, 9905, 9728, 5992, 7261, 2005, 7532, 6392, 6711, 675, 858, 790, 6013, 8517, 270, 5856, 1686, 4316, 3794, 2545, 4551, 8514, 7200, 9862, 4104, 7732, 3033, 1343, 3221, 9169, 9492, 6173, 9073, 9219, 8517, 6334, 7575, 6048, 9077, 637, 6723, 9934, 1427, 2735, 4802, 1696, 4943, 6487, 2364, 5088, 5383, 6914, 3601, 8935, 6775, 4056, 3018, 6159, 1750, 6239, 5328, 1241, 8763, 752, 460, 7279, 7085, 4386, 9679, 6161, 5023, 6401, 2446, 6449, 5487, 7248, 4496, 6781, 86, 6859, 1868, 1821, 124, 1820, 7107, 6898, 5876, 124, 9409, 7625, 2714, 1088, 8866, 1477, 1839, 5677, 5107, 8924, 6414, 4785, 1436, 1436, 7537, 3882, 4236, 9376, 7481, 8732, 6156, 3918, 1942, 8024, 5738, 2066, 6195, 9196, 8963, 2070, 9320, 4723, 6047, 2033, 5810, 1264, 9861, 7649, 6940, 4968, 2924, 3353, 6104, 4359, 1141, 3641, 8240, 5376, 9368, 5720, 4107, 5523, 9638, 6049, 9898, 1727, 4466, 2445, 923, 3428, 4514, 6594, 4503, 6912, 8626, 312, 8175, 4839, 4312, 5114, 6158, 7235, 4819, 8613, 1594, 2311, 8605, 6185, 7686, 7972, 8257, 8145, 9847, 7894, 545, 9744, 5972, 5010, 8540, 3246, 4789, 3054, 9839, 9291, 9965, 4817, 5955, 4492, 9655, 266, 9605, 2164, 7501, 775, 776, 5446, 3085, 9381, 1630, 7123, 7352, 9886, 5267, 7198, 4131, 2163, 3294, 6455, 7172, 1833, 9700, 8312, 1238, 9539, 7603, 7555, 707, 9909, 2046, 6713, 174, 8002, 8876, 4026, 5129, 6003, 9471, 4565, 5383, 1101, 1687, 9087, 7338, 3305, 2636, 1469, 5467, 2281, 7923, 8990, 466, 3974, 7302, 8055, 9864, 1256, 5609, 570, 1164, 4006, 7282, 7689, 8360, 2509, 1715, 9840, 4864, 1185, 4404, 246, 8637, 6091, 5684, 5975, 5747, 4672, 3795, 1214, 6952, 8069, 6555, 3769, 8394, 3856, 1824, 8258, 1463, 3784, 5179, 8978, 4142, 8813, 6667, 2501, 1321, 8381, 2340, 6184, 5917, 3095, 2782, 906, 9185, 4817, 6880, 4932, 9488, 7026, 2497, 2792, 1446, 9051, 6560, 9839, 9259, 8383, 8096, 7073, 2167, 3275, 6051, 6308, 2087, 9069, 5160, 9759, 3801, 3851, 2295, 9717, 6945, 1428, 6974, 2482, 6244, 3853, 3765, 5732, 7230, 2613, 8523, 8675, 1663, 5082, 8514, 7273, 9817, 6609, 4346, 8335, 6235, 6748, 994, 4673, 5816, 6153, 4432, 9616, 6355, 3078, 5684, 3299, 4505, 2658, 2132, 748, 2862, 5896, 2831, 92, 4860, 7705, 5118, 6523, 9139, 3631, 147, 8955, 6592, 844, 3641, 9178, 7591, 4634, 3851, 3406, 7138, 4634, 9373, 3492, 7711, 1409, 3142, 8567, 418, 1626, 5666, 9631, 3873, 8497, 6074, 8733, 6201, 1192, 1607, 1691, 1174, 1753, 6997, 7765, 2597, 637, 3295, 187, 5270, 7145, 9945, 2407, 8130, 5669, 2250, 5840, 3429, 1744, 4406, 3846, 3369, 71, 9829, 3593, 4919, 5902, 2325, 7472, 7093, 3931, 9162, 4619, 5684, 6159, 8735, 4632, 6795, 2029, 4818, 8417, 9173, 1114, 7175, 3654, 3135, 5777, 9493, 6563, 3872, 250, 6761, 3592, 6673, 6589, 7184, 7943, 2490, 9509, 5414, 5935, 3439, 928, 6905, 5474, 3438, 5639, 105, 6584, 7668, 1275, 1352, 3192, 8740, 8527, 6846, 1874, 655, 2690, 8437, 4526, 9292, 5197, 8117, 5964, 8137, 5300, 258, 6978, 4808, 2024, 2912, 4599, 2951, 9816, 72, 2740, 1807, 6529, 9323, 9474, 4155, 7027, 9017, 2894, 5553, 5862, 4768, 6207, 4904, 3204, 732, 4195, 4752, 8848, 6510, 9240, 499, 6767, 6217, 5307, 8790, 5481, 6257, 8092, 1648, 2680, 7183, 3454, 9208, 2858, 9279, 3362, 9884, 8296, 6256, 1788, 509, 7375, 7994, 5412, 6930, 5077, 9606, 1681, 276, 2467, 7272, 774, 9234, 3488, 2432, 4375, 5320, 8688, 8819, 6968, 1368, 2353, 6773, 575, 5210, 6052, 289, 5093, 699, 2896, 6880, 1207, 270, 1225, 6619, 7199, 2653, 2576, 5231, 2928, 5043, 2502, 3702, 628, 2341, 2485, 1354, 7661, 1173, 6524, 980, 2540, 8877, 7752, 9466, 4086, 155, 6106, 5531, 853, 9001, 8762, 2060, 9270, 6339, 5030, 6468, 8991, 3957, 8050, 1919, 5351, 551, 1972, 5978, 2892, 4456, 3684, 6904, 1980, 207, 7883, 871, 9083, 5634, 6689, 9521, 5789, 2794, 1403, 2993, 8147, 164, 5052, 3768, 6502, 6433, 236, 1845, 390, 4637, 3763, 5740, 5188, 2086, 8070, 4431, 2893, 1753, 1334, 4873, 8311, 9216, 2095, 3746, 1201, 8783, 9618, 3341, 7929, 1020, 6334, 6075, 7535, 7737, 9842, 389, 4170, 6429, 2233, 911, 1066, 2347, 3002, 2605, 4432, 1071, 7035, 3676, 9175, 4720, 8548, 7486, 3935, 6995, 7583, 1487, 5777, 7200, 4828, 3705, 8219, 7513, 6131, 2105, 1601, 5973, 2493, 5770, 8753, 1077, 3032, 9818, 3423, 6034, 2422, 4206, 3456, 5808, 7882, 2631, 527, 2781, 6468, 813, 9775, 4050, 2300, 5552, 7601, 3479, 5608, 5819, 7343, 1739, 4275, 8943, 4063, 6768, 1065, 2815, 7844, 4096, 8985, 1267, 6481, 7758, 1824, 9937, 3566, 9705, 8919, 444, 2486, 5386, 1257, 8612, 5787, 9908, 515, 3387, 9738, 6123, 5557, 7080, 4213, 9831, 6022, 8275, 2950, 3438, 7441, 794, 3886, 6425, 8412, 366, 4183, 6587, 6654, 4100, 6292, 5572, 4543, 5129, 7309, 5799, 3740, 9447, 2058, 4255, 9185, 1795, 6729, 1093, 8874, 941, 924, 1248, 5567, 225, 1037, 3007, 1018, 4922, 9432, 5781, 1640, 9966, 2368, 8293, 4065, 5011, 217, 8607, 6491, 3877, 758, 230, 9676, 9167, 836, 8860, 962, 3916, 9953, 6187, 4856, 7228, 3786, 6774, 7452, 4823, 9781, 4822, 9744, 5564, 6954, 7735, 5529, 5673, 2380, 9593, 7035, 2596, 4551, 3525, 2824, 1660, 107, 2499, 827, 942, 7711, 1788, 4858, 4015, 4326, 6065, 1242, 8112, 2839, 5045, 2934, 2619, 9866, 9029, 4534, 3172, 6764, 62, 8844, 5495, 6006, 5879, 8090, 6908, 9403, 7265, 8568, 5861, 6116, 5746, 6803, 178, 3885, 8012, 4192, 8210, 4076, 1785, 2673, 3266, 6829, 5606, 2236, 3047, 987, 6769, 6218, 4102, 6830, 1413, 9596, 9187, 3643, 4037, 6095, 9398, 7653, 1014, 5258, 3768, 6759, 2060, 3945, 643, 6423, 8136, 5204, 499, 6272, 7877, 116, 3101, 9834, 2352, 6147, 820, 9120, 8716, 1273, 2302, 6480, 868, 1488, 123, 1256, 3934, 9520, 8909, 4947, 4777, 2676, 1705, 3189, 2973, 8699, 9611, 7460, 255, 6461, 3732, 8131, 6577, 6832, 7964, 8928, 9330, 5136, 4399, 4397, 6408, 6700, 876, 3628, 8188, 998, 4883, 2121, 6869, 3791, 7068, 7998, 2819, 5124, 1186, 5791, 175, 7148, 3250, 429, 9961, 3333, 4911, 2889, 6516, 9226, 1816, 2197, 4361, 2566, 6593, 7121, 9266, 3821, 748, 7453, 4818, 1982, 5925, 8039, 2125, 9344, 6036, 4943, 820, 7221, 7085, 994, 720, 6686, 7774, 680, 19, 2684, 3568, 6534, 1909, 1735, 8731, 2622, 4301, 5323, 9742, 3566, 5495, 6841, 7370, 6665, 5174, 3294, 4703, 7298, 8990, 738, 8592, 9809, 4310, 5676, 802, 1381, 2362, 4927, 2061, 2380, 7610, 1980, 5265, 5870, 3715, 3995, 8491, 4367, 5670, 4584, 4284, 1164, 7776, 1653, 7828, 2950, 1298, 8882, 6599, 287, 9619, 5191, 95, 280, 866, 7248, 1661, 9579, 2174, 3721, 1958, 9783, 2052, 7223, 2005, 5766, 7569, 495, 6484, 3238, 1431, 767, 754, 9206, 8771, 4933, 8507, 69, 3815, 5106, 6707, 9785, 296, 6802, 65, 7513, 401, 1725, 7092, 2575, 1797, 5401, 8709, 3848, 8975, 713, 5966, 6544, 7560, 2449, 6133, 5342, 9568, 3238, 899, 8338, 8171, 9406, 4758, 1985, 4511, 1465, 1769, 1158, 4618, 8185, 8670, 5018, 9909, 2113, 3944, 8057, 7514, 2653, 8257, 6488, 9717, 4222, 3031, 3628, 3022, 5516, 5321, 2589, 8753, 6220, 7279, 6923, 5625, 2036, 5259, 6487, 3500, 7028, 7644, 8117, 5212, 2665, 9487, 1473, 4778, 3430, 9529, 2291, 2434, 4137, 8778, 8503, 8358, 8161, 8482, 7732, 3676, 3803, 6672, 2428, 22, 3950, 9351, 1998, 5986, 961, 8484, 5837, 7988, 6127, 306, 9552, 8791, 9792, 7376, 9920, 3221, 3256, 2210, 2007, 7393, 7340, 509, 2102, 5500, 8990, 9833, 9175, 2792, 2857, 7954, 9165, 6806, 3656, 1162, 9143, 4617, 9645, 1332, 8956, 2123, 1637, 8507, 7266, 1428, 2234, 7185, 1000, 5490, 5747, 9358, 2882, 3086, 9866, 4983, 8585, 5208, 1168, 4111, 7999, 4024, 8416, 3516, 7181, 2072, 4677, 2676, 3040, 674, 4007, 1995, 2796, 5643, 6854, 6413, 3422, 9087, 9950, 773, 928, 5696, 131, 3809, 8781, 6348, 5144, 3717, 1555, 6311, 4179, 5906, 6686, 2594, 9421, 3866, 1017, 449, 2893, 408, 1122, 6899, 8755, 270, 8893, 5608, 6682, 8666, 1046, 6631, 9439, 1974, 2326, 5921, 5782, 7458, 8620, 7277, 1174, 175, 9939, 1704, 2432, 6624, 650, 8204, 6842, 8018, 8652, 9734, 8426, 9774, 6633, 7180, 43, 1877, 9139, 6724, 543, 184, 9707, 6333, 8509, 2032, 8605, 643, 5842, 7224, 7919, 7015, 3750, 7858, 5071, 2533, 4481, 5720, 736, 7674, 89, 9388, 7408, 4866, 9161, 392, 2045, 5555, 2268, 7535, 2278, 9162, 7719, 8336, 1846, 6227, 368, 450, 3221, 6209, 4026, 1140, 9575, 7775, 8997, 997, 6660, 9829, 3068, 7395, 3855, 3157, 6782, 1262, 8022, 2294, 8005, 6419, 7848, 6624, 3953, 6478, 5786, 8023, 4813, 7631, 602, 5180, 4433, 3822, 7740, 8458, 4961, 3667, 2584, 309, 4663, 9243, 6490, 7731, 6638, 344, 887, 9771, 7957, 5260, 2065, 2313, 1678, 9912, 8936, 5631, 6389, 1073, 5, 1202, 5056, 606, 2733, 9488, 4428, 6825, 7945, 5740, 491, 6880, 6049, 5153, 2475, 8890, 2883, 9112, 5585, 121, 5234, 3541, 5381, 7298, 5853, 3410, 3562, 1140, 5392, 9950, 2213, 5397, 7503, 7268, 6002, 236, 6755, 6781, 3412, 1051, 2521, 3902, 4282, 4921, 9054, 6756, 3810, 8289, 2219, 9394, 4761, 7453, 9286, 6493, 4750, 1490, 6255, 4663, 2629, 1646, 4613, 4841, 7042, 8467, 2108, 9396, 5054, 5214, 6176, 8465, 2616, 5048, 2366, 6898, 6320, 7772, 3653, 129, 2412, 5872, 5874, 7172, 3324, 1511, 17, 4425, 3000, 6271, 9088, 1981, 7916, 52, 6821, 1310, 8518, 5281, 7057, 9924, 6846, 9584, 8388, 9462, 4632, 754, 6359, 951, 4877, 11, 7432, 7288, 2234, 9657, 811, 1909, 7520, 827, 6334, 6871, 3449, 1773, 8851, 7717, 1824, 2024, 9026, 6693, 3656, 6082, 6616, 501, 5665, 1356, 6314, 6648, 8461, 9024, 3951, 3337, 5387, 7734, 6976, 7620, 7390, 7786, 9529, 4909, 4965, 2214, 8132, 4765, 3986, 6982, 2481, 2161, 9005, 1506, 5205, 9012, 3939, 1821, 9513, 5956, 9528, 2178, 2603, 7988, 1202, 6553, 1324, 6588, 4286, 8299, 4207, 8028, 2436, 87, 9288, 3752, 2300, 7419, 8517, 2637, 753, 997, 4797, 6109, 8855, 2, 5121, 2793, 8174, 985, 5100, 7701, 3162, 7703, 2040, 4363, 607, 3363, 950, 1245, 8013, 1509, 5624, 448, 1595, 1263, 4200, 3895, 5034, 9068, 6531, 5786, 64, 7680, 1894, 5270, 4033, 7014, 4415, 8558, 7998, 9514, 2610, 7512, 3568, 4649, 1874, 4175, 8011, 9176, 1771, 2375, 684, 3746, 2822, 8630, 5008, 3373, 8876, 41, 2440, 5407, 2178, 8856, 9438, 4072, 4125, 3470, 7437, 8539, 8379, 1787, 4405, 988, 9298, 7972, 5636, 7523, 8498, 9998, 6698, 268, 2372, 3733, 365, 1545, 2363, 1725, 1270, 7590, 1765, 3709, 2996, 3943, 8916, 8785, 4366, 9393, 8606, 1802, 4283, 6984, 3588, 8687, 7971, 9237, 6659, 9958, 6760, 5156, 9955, 9809, 1776, 8678, 9894, 2140, 223, 2256, 216, 1492, 6197, 1981, 1552, 9193, 2275, 6820, 4329, 6640, 6212, 2935, 4793, 6846, 9918, 8381, 5533, 4241, 3969, 2191, 4198, 728, 3698, 505, 537, 5473, 5534, 430, 3965, 2108, 9037, 4180, 3599, 5233, 2512, 1503, 777, 1138, 4674, 5106, 7777, 7237, 4392, 8922, 4082, 4309, 3654, 9614, 8549, 7622, 8156, 2747, 8350, 8206, 9603, 5238, 30, 5136, 2019, 3994, 7244, 7407, 4526, 7194, 8991, 3389, 5048, 9768, 4527, 9721, 1225, 8655, 6957, 5616, 3928, 7391, 6276, 7581, 3356, 4825, 5203, 1512, 3923, 3552, 9717, 9877, 5141, 9746, 5012, 7159, 92, 8607, 917, 969, 5801, 9907, 709, 7200, 6026, 1587, 6921, 7250, 6594, 229, 9217, 521, 3971, 1845, 8102, 7327, 6669, 3304, 5190, 6943, 3207, 1258, 3171, 4699, 7355, 8182, 8209, 7446, 3141, 9125, 4766, 8941, 9031, 1827, 6140, 5057, 3413, 9412, 8658, 6, 5993, 4227, 6879, 9963, 6071, 4980, 3641, 9091, 4635, 8830, 6033, 7841, 87, 9203, 2539, 7442, 3736, 7099, 1239, 6876, 6223, 2357, 2168, 5253, 4183, 4660, 6661, 3947, 4071, 1671, 3953, 6415, 5897, 831, 2730, 1967, 2162, 6370, 1057, 6796, 5200, 3441, 988, 1638, 8995, 9878, 9079, 2730, 6976, 6670, 5958, 3198, 9026, 8125, 4802, 3208, 2784, 1463, 3506, 3207, 3133, 3810, 5973, 5381, 992, 8702, 7347, 3153, 5072, 4755, 9948, 6623, 8195, 935, 8260, 7189, 812, 7339, 6270, 4139, 360, 2227, 7336, 9385, 6704, 2138, 8944, 9487, 9952, 2449, 9045, 9436, 6259, 5018, 4816, 7250, 3719, 2162, 6755, 5142, 6916, 3054, 1764, 1462, 3989, 24, 8650, 1152, 3714, 4919, 5291, 4073, 3498, 8978, 9809, 201, 1115, 8752, 6039, 7418, 7552, 5084, 6853, 162, 6453, 1668, 7412, 171, 181, 518, 1665, 3448, 3571, 3428, 4909, 3911, 9803, 9910, 5063, 9868, 1181, 6705, 3940, 4678, 2034, 100, 1230, 9501, 8851, 7268, 6918, 2755, 8703, 123, 2916, 5155, 8142, 6679, 1678, 8323, 7196, 3342, 8122, 767, 3121, 9383, 4677, 2924, 5644, 6091, 2791, 6824, 9147, 3083, 7853, 1181, 3182, 9082, 681, 8385, 2702, 7598, 1139, 1404, 4072, 4054, 2911, 2214, 733, 4588, 6888, 7928, 7929, 1361, 8694, 1049, 743, 9723, 324, 6387, 5813, 3115, 9562, 4960, 2549, 7415, 6140, 5730, 2848, 3172, 4114, 5549, 7121, 5252, 3305, 1193, 5658, 6215, 3406, 6390, 802, 293, 669, 5082, 1653, 5715, 2482, 8748, 5437, 2806, 1486, 7601, 2272, 1047, 2560, 4820, 8461, 5051, 549, 7661, 8222, 1015, 3209, 5343, 2618, 6513, 2887, 8275, 9079, 6292, 1016, 9880, 2936, 8037, 1313, 940, 3751, 3795, 6039, 5539, 6600, 7524, 3139, 5223, 8571, 2051, 42, 3383, 3453, 6942, 1043, 8027, 4308, 4252, 9721, 6926, 7116, 2607, 5200, 6195, 8898, 2568, 2426, 8185, 604, 3739, 5476, 4354, 7533, 1515, 6244, 484, 9038, 5734, 5706, 7608, 4136, 2099, 991, 7589, 5392, 2033, 5615, 9700, 2636, 1687, 6625, 6104, 4293, 8176, 2298, 9542, 743, 1075, 7726, 7698, 4813, 3201, 8403, 2345, 4715, 4646, 9180, 105, 6732, 1237, 7712, 867, 3335, 5054, 8455, 8727, 3439, 421, 4778, 2426, 2107, 1402, 8529, 2751, 5929, 7178, 2292, 3024, 8253, 6369, 721, 3065, 9570, 9124, 1762, 636, 121, 941, 7092, 6852, 2178, 1156, 7719, 1864, 6209, 2525, 6942, 5999, 9298, 1719, 8425, 7756, 9472, 6953, 507, 5401, 4131, 9150, 8424, 2383, 5519, 5496, 1799, 1440, 971, 3560, 8427, 1092, 853, 5519, 4295, 9382, 6674, 8365, 1245, 9234, 890, 8187, 5233, 6539, 6257, 9, 4294, 5729, 3313, 1152, 7481, 7443, 302, 2256, 6177, 5820, 7751, 4328, 3611, 8722, 7887, 2037, 6165, 8739, 7555, 6811, 8120, 580, 5176, 5717, 6166, 2417, 255, 1398, 8955, 6511, 7758, 9600, 8591, 1070, 752, 6071, 4865, 1053, 8326, 7393, 3224, 2429, 1720, 6834, 7502, 9607, 5222, 18, 4697, 9129, 6828, 9169, 9708, 8355, 4885, 5873, 771, 1491, 3622, 6077, 8001, 1379, 2029, 6592, 8801, 2780, 9014, 3665, 184, 3692, 7409, 9759, 6120, 9129, 2944, 3621, 5087, 8165, 9990, 9783, 7293, 6817, 5303, 7001, 5172, 6539, 9225, 2294, 8029, 9199, 4723, 6030, 577, 6751, 8973, 5729, 5882, 4338, 5745, 6065, 8029, 3154, 2175, 500, 2282, 5118, 472, 7368, 3282, 461, 3502, 575, 7278, 5157, 3927, 8801, 1695, 9503, 7446, 9724, 8701, 8520, 5753, 5630, 5270, 1077, 1358, 7503, 5414, 7103, 3567, 9795, 256, 2093, 294, 8889, 7210, 766, 2608, 492, 7578, 2461, 7418, 4855, 7617, 1344, 7, 9312, 846, 3805, 9035, 5899, 2324, 1139, 1528, 7594, 8567, 2885, 1448, 332, 6339, 5015, 126, 2946, 3459, 6772, 1834, 669, 3889, 793, 1160, 1466, 3254, 8577, 2673, 7222, 6272, 9031, 6533, 3469, 2835, 1919, 9367, 5159, 9409, 894, 9104, 7975, 131, 551, 8307, 6469, 1917, 4784, 9415, 5376, 1555, 7600, 6044, 5443, 8393, 3555, 3261, 7998, 8483, 5933, 5219, 1106, 4963, 8104, 4574, 7798, 22, 293, 9308, 9431])) \ No newline at end of file diff --git a/014-Longest-Common-Prefix.js b/014-Longest-Common-Prefix.js new file mode 100644 index 0000000..af2d058 --- /dev/null +++ b/014-Longest-Common-Prefix.js @@ -0,0 +1,50 @@ +/** + * https://leetcode.com/problems/longest-common-prefix/ + * Difficulty:Easy + * + * Write a function to find the longest common prefix string amongst an array of strings. + */ + +/** + * @param {string[]} strs + * @return {string} + */ +var longestCommonPrefix = function (strs) { + + var m = strs.length; + if (!m) return ''; + + var min = Infinity; + var minIndex = -1; + for (var i = 0; i < strs.length; i++) { + if (strs[i].length < min) { + min = strs[i].length; + minIndex = i; + } + } + + var s = strs[minIndex]; + + for (i = 0; i < s.length; i++) { + var ch = strs[0][i]; + var same = true; + for (var j = 1; j < m; j++) { + if (strs[j][i] !== ch) { + same = false; + break; + } + + } + if (!same) break; + + } + + return s.substr(0, i); + +}; + +console.log(longestCommonPrefix([ + 'abdc', + 'abc123', + 'abc234' +])); \ No newline at end of file diff --git a/015-3Sum.js b/015-3Sum.js new file mode 100644 index 0000000..9427264 --- /dev/null +++ b/015-3Sum.js @@ -0,0 +1,64 @@ +/** + * https://leetcode.com/problems/3sum/ + * Difficulty:Medium + * + * Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? + * Find all unique triplets in the array which gives the sum of zero. + * Note: The solution set must not contain duplicate triplets. + * + * For example, given array S = [-1, 0, 1, 2, -1, -4], + * A solution set is: + * [ + * [-1, 0, 1], + * [-1, -1, 2] + * ] + + */ +/** + * @param {number[]} nums + * @return {number[][]} + */ +var threeSum = function (nums) { + + nums.sort(function (a, b) { + if (a > b) return 1; + if (a === b) return 0; + if (a < b) return -1; + }); + // console.log(nums); + var ret = []; + for (var i = 0; i < nums.length - 2; i++) { + var a = nums[i]; + if (i === 0 || (i > 0 && nums[i] !== nums[i - 1])) { + + var j = i + 1; + var k = nums.length - 1; + while (j < k) { + var b = nums[j]; + var c = nums[k]; + + var sum = a + b + c; + + // console.log(a, b, c, '=', sum); + if (sum > 0) k--; + else if (sum === 0) { + ret.push([a, b, c]); + while (j < k && nums[j] === nums[++j]); + while (j < k && nums[k] === nums[--k]); + // j++; + // k--; + + } + else j++; + } + } + + } + return ret; + +}; + +console.log(threeSum([-2, 0, 0, 2, 2])); +console.log(threeSum([-1, 0, 1, 2, -1, -4])); +// console.log(threeSum([0, 0, 0, 0])); +// console.log(threeSum([1, -1, -1, 0])); diff --git a/020-Valid-Parentheses.js b/020-Valid-Parentheses.js new file mode 100644 index 0000000..7c3636e --- /dev/null +++ b/020-Valid-Parentheses.js @@ -0,0 +1,45 @@ +/** + * https://leetcode.com/problems/valid-parentheses/ + * Difficulty:Easy + * + * Given a string containing just the characters '(', ')', '{', '}', '[' and ']', + * determine if the input string is valid. + * The brackets must close in the correct order, + * "()" and "()[]{}" are all valid but "(]" and "([)]" are not. + */ + +/** + * @param {string} s + * @return {boolean} + */ +var isValid = function (s) { + + var stack = []; + for (var i = 0; i < s.length; i++) { + var c = s[i]; + switch (c) { + case '(': + stack.push(')'); + break; + case '[': + stack.push(']'); + break; + case '{': + stack.push('}'); + break; + default: + + if (!stack.length || stack.pop() !== c) { + // console.log(stack); + return false; + } + + } + } + + return stack.length === 0; +}; + +console.log(isValid('()[]{}')); +console.log(isValid('[()][]{}')); +console.log(isValid('(])')); \ No newline at end of file diff --git a/021-Merge-Two-Sorted-Lists.js b/021-Merge-Two-Sorted-Lists.js new file mode 100644 index 0000000..9d28735 --- /dev/null +++ b/021-Merge-Two-Sorted-Lists.js @@ -0,0 +1,71 @@ +/** + * https://leetcode.com/problems/merge-two-sorted-lists/description/ + * Difficulty:Easy + * + * Merge two sorted linked lists and return it as a new list. + * The new list should be made by splicing together the nodes of the first two lists. + * + * Example: + * Input: 1->2->4, 1->3->4 + * Output: 1->1->2->3->4->4 + */ + + +// Definition for singly-linked list. +function ListNode(val) { + this.val = val; + this.next = null; +} + +/** + * + * non-recursion + * + * @param {ListNode} l1 + * @param {ListNode} l2 + * @return {ListNode} + */ +var mergeTwoLists = function (l1, l2) { + if (!l1) return l2; + if (!l2) return l1; + + var n = new ListNode(0); + var t = n; + + while (l1 && l2) { + if (l1.val <= l2.val) { + n.next = l1; + l1 = l1.next; + } else { + n.next = l2; + l2 = l2.next; + } + n = n.next; + } + if (l1) n.next = l1; + if (l2) n.next = l2; + + return t.next; +}; + +/** + * + * recursion + * + * @param {ListNode} l1 + * @param {ListNode} l2 + * @return {ListNode} + */ +var mergeTwoLists = function (l1, l2) { + if (!l1) return l2; + if (!l2) return l1; + + if (l1.val <= l2.val) { + l1.next = mergeTwoLists(l1.next, l2); + return l1; + } else { + l2.next = mergeTwoLists(l1, l2.next); + return l2; + } +}; + diff --git a/026-Remove-Duplicates-from-Sorted-Array.js b/026-Remove-Duplicates-from-Sorted-Array.js new file mode 100644 index 0000000..90858a8 --- /dev/null +++ b/026-Remove-Duplicates-from-Sorted-Array.js @@ -0,0 +1,50 @@ +/** + * https://leetcode.com/problems/remove-duplicates-from-sorted-array/ + * Difficulty:Easy + * + * Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. + * Do not allocate extra space for another array, you must do this in place with constant memory. + * + * For example, + * Given input array nums = [1,1,2], + * Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively. + * It doesn't matter what you leave beyond the new length. + */ + +/** + * @param {number[]} nums + * @return {number} + */ +var removeDuplicates = function (nums) { + var n = nums.length; + if (!n) return 0; + var last = nums[0]; + var cnt = 1; + + for (var i = 1; i < nums.length; i++) { + if (nums[i] !== last) { + last = nums[i]; + cnt++; + } + else { + nums.splice(i, 1); + i--; + } + } + return cnt; + +}; + +/** + * @param {number[]} nums + * @return {number} + */ +var removeDuplicates = function (nums) { + for (var i = 0; i < nums.length - 1; i++) + if (nums[i] === nums[i + 1]) nums.splice(i--, 1); + return nums.length; +}; + +var arr = [1, 2, 2]; +console.log(removeDuplicates(arr)); +console.log(arr); \ No newline at end of file diff --git a/Easy_35_Search_Insert_Position.js b/035-Search-Insert-Position.js similarity index 91% rename from Easy_35_Search_Insert_Position.js rename to 035-Search-Insert-Position.js index 44a66c0..b76daad 100644 --- a/Easy_35_Search_Insert_Position.js +++ b/035-Search-Insert-Position.js @@ -1,4 +1,7 @@ /** + * https://leetcode.com/problems/search-insert-position/description/ + * Difficulty:Easy + * * Given a sorted array and a target value, return the index if the target is found. * If not, return the index where it would be if it were inserted in order. * diff --git a/041-First-Missing-Positive.js b/041-First-Missing-Positive.js new file mode 100644 index 0000000..97c8a4e --- /dev/null +++ b/041-First-Missing-Positive.js @@ -0,0 +1,45 @@ +/** + * https://leetcode.com/problems/first-missing-positive/ + * Difficulty:Hard + * + * Given an unsorted integer array, find the first missing positive integer. + * For example, + * Given [1,2,0] return 3, + * and [3,4,-1,1] return 2. + * Your algorithm should run in O(n) time and uses constant space. + */ + +/** + * @param {number[]} nums + * @return {number} + */ +var firstMissingPositive = function (nums) { + var n = nums.length; + var i = 0; + while (i < n) { + var c = nums[i]; + if (c > 0 && n < n + 1 && c !== i + 1 && nums[c - 1] !== nums[i]) { + swap(nums, c - 1, i); + // i--; + } else { + i++; + } + } + + // console.log(nums); + for (var i = 0; i < n; i++) { + if (nums[i] !== i + 1) return i + 1; + } + return n + 1; +}; + +function swap(nums, i, j) { + var tmp = nums[i]; + nums[i] = nums[j]; + nums[j] = tmp; +} + +// console.log(firstMissingPositive([1, 2, 0])); +// console.log(firstMissingPositive([3, 4, -1, 1])); +// console.log(firstMissingPositive([1, 1])); +console.log(firstMissingPositive([2, 2])); diff --git a/Easy_53_Maximum_Subarray.js b/053-Maximum-Subarray.js similarity index 93% rename from Easy_53_Maximum_Subarray.js rename to 053-Maximum-Subarray.js index 474aecc..b9c856b 100644 --- a/Easy_53_Maximum_Subarray.js +++ b/053-Maximum-Subarray.js @@ -1,4 +1,7 @@ /** + * https://leetcode.com/problems/maximum-subarray/description/ + * Difficulty:Easy + * * Find the contiguous subarray within an array (containing at least one number) which has the largest sum. * * For example, given the array [-2,1,-3,4,-1,2,1,-5,4], diff --git a/062-Unique-Paths.js b/062-Unique-Paths.js new file mode 100644 index 0000000..f5274b5 --- /dev/null +++ b/062-Unique-Paths.js @@ -0,0 +1,34 @@ +/** + * https://leetcode.com/problems/unique-paths/ + * Difficulty:Medium + * + * A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). + * The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below). + * How many possible unique paths are there? + * Note: m and n will be at most 100. + * + */ + +/** + * @param {number} m + * @param {number} n + * @return {number} + */ +var uniquePaths = function (m, n) { + + var arr = []; + for (var i = 0; i < m; i++) { + for (var j = 0; j < n; j++) { + if (i === 0 && j === 0) arr[0] = 1; + else { + var left = j - 1 < 0 ? 0 : arr[i * n + j - 1]; + var top = i - 1 < 0 ? 0 : arr[(i - 1) * n + j]; + arr[i * n + j] = left + top; + } + + } + } + return arr[arr.length - 1]; +}; + +console.log(uniquePaths(2, 2)); \ No newline at end of file diff --git a/063-Unique-Paths-II.js b/063-Unique-Paths-II.js new file mode 100644 index 0000000..0a090d6 --- /dev/null +++ b/063-Unique-Paths-II.js @@ -0,0 +1,39 @@ +/** + * https://leetcode.com/problems/unique-paths-ii/description/ + * Difficulty:Medium + * + * Follow up for "Unique Paths": + * Now consider if some obstacles are added to the grids. How many unique paths would there be? + * An obstacle and empty space is marked as 1 and 0 respectively in the grid. + * For example, + * There is one obstacle in the middle of a 3x3 grid as illustrated below. + * [ + * [0,0,0], + * [0,1,0], + * [0,0,0] + * ] + * The total number of unique paths is 2. + * Note: m and n will be at most 100. + */ + +/** + * @param {number[][]} obstacleGrid + * @return {number} + */ +var uniquePathsWithObstacles = function (obstacleGrid) { + var m = obstacleGrid.length; + var n = obstacleGrid[0].length; + var dp = []; + while (dp.push(new Array(n + 1).fill(0)) <= m); + + dp[0][1] = 1; + for (var i = 1; i <= m; i++) { + for (var j = 1; j <= n; j++) { + if (!obstacleGrid[i - 1][j - 1]) + dp[i][j] = dp[i][j - 1] + dp[i - 1][j]; + } + } + return dp[m][n]; +}; + +console.log(uniquePathsWithObstacles([[0, 0]])); \ No newline at end of file diff --git a/064-Minimum-Path-Sum.js b/064-Minimum-Path-Sum.js new file mode 100644 index 0000000..cea8096 --- /dev/null +++ b/064-Minimum-Path-Sum.js @@ -0,0 +1,39 @@ +/** + * https://leetcode.com/problems/minimum-path-sum/description/ + * Difficulty:Medium + * + * Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. + * Note: You can only move either down or right at any point in time. + * Example 1: + * [ + * [1,3,1], + * [1,5,1], + * [4,2,1] + * ] + * Given the above grid map, return 7. Because the path 1→3→1→1→1 minimizes the sum. + */ + +/** + * @param {number[][]} grid + * @return {number} + */ +var minPathSum = function (grid) { + + var m = grid.length; + var n = grid[0].length; + var dp = []; + while (dp.push(new Array(n + 1).fill(Number.MAX_VALUE)) <= m); + dp[0][1] = 0; + dp[1][0] = 0; + + for (var i = 1; i <= m; i++) { + for (var j = 1; j <= n; j++) { + dp[i][j] = grid[i - 1][j - 1] + Math.min(dp[i][j - 1], dp[i - 1][j]); + } + } + + return dp[m][n]; + +}; + +console.log(minPathSum([[1, 2], [1, 1]])); \ No newline at end of file diff --git a/Easy_70_Climbing_Stairs.js b/070-Climbing-Stairs.js similarity index 92% rename from Easy_70_Climbing_Stairs.js rename to 070-Climbing-Stairs.js index 0268e1f..0418d71 100644 --- a/Easy_70_Climbing_Stairs.js +++ b/070-Climbing-Stairs.js @@ -1,5 +1,6 @@ /** - * https://leetcode.com/problems/climbing-stairs/#/description + * https://leetcode.com/problems/climbing-stairs/description + * Difficulty:Easy * * You are climbing a stair case. It takes n steps to reach to the top. * Each time you can either climb 1 or 2 steps. diff --git a/Easy_83_Remove_Duplicates_from_Sorted_List.js b/083-Remove-Duplicates-from-Sorted-List.js similarity index 91% rename from Easy_83_Remove_Duplicates_from_Sorted_List.js rename to 083-Remove-Duplicates-from-Sorted-List.js index 1b37d2d..83cf3cf 100644 --- a/Easy_83_Remove_Duplicates_from_Sorted_List.js +++ b/083-Remove-Duplicates-from-Sorted-List.js @@ -1,4 +1,6 @@ /** + * https://leetcode.com/problems/remove-duplicates-from-sorted-list/description/ + * Difficulty:Easy * * Given a sorted linked list, delete all duplicates such that each element appear only once. * diff --git a/085-Maximal-Rectangle.js b/085-Maximal-Rectangle.js new file mode 100644 index 0000000..ed6fbb0 --- /dev/null +++ b/085-Maximal-Rectangle.js @@ -0,0 +1,85 @@ +/** + * https://leetcode.com/problems/maximal-rectangle/description/ + * Difficulty:Hard + * Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area. + * For example, given the following matrix: + * + * 1 0 1 0 0 + * 1 0 1 1 1 + * 1 1 1 1 1 + * 1 0 0 1 0 + * + * Return 6. + * + */ + +/** + * @param {character[][]} matrix + * @return {number} + */ +var maximalRectangle = function (matrix) { + var m = matrix.length; + if (!m) return 0; + var n = matrix[0].length; + if (!n) return 0; + + var dp = []; + while (dp.push(new Array(n + 1).fill([0, 0])) <= m) ; + var max = 0; + for (var i = 1; i <= m; i++) { + for (var j = 1; j <= n; j++) { + if (matrix[i - 1][j - 1] != 0) { + dp[i][j] = [1, 1]; + var top = dp[i - 1][j]; + var left = dp[i][j - 1]; + if (top[0] * top[1] === 0) { + dp[i][j] = [1, left[1] + 1]; + } else if (left[0] * left[1] === 0) { + dp[i][j] = [top[0] + 1, 1]; + } else { + var x1 = (top[0] + 1); + var y1 = Math.min(top[1], left[1] + 1); + var p1 = x1 * y1; + + var x2 = Math.min(left[0], top[0] + 1); + var y2 = (left[1] + 1); + var p2 = x2 * y2; + + if (p1 >= p2) { + dp[i][j] = [x1, y1]; + } else { + dp[i][j] = [x2, y2]; + } + + } + + max = Math.max(max, dp[i][j][0] * dp[i][j][1]); + } + + } + } + + // for (var i = 0; i < matrix.length; i++) { + // console.log(matrix[i].split('')); + // } + // console.log('======================'); + // + // for (var i = 1; i < dp.length; i++) { + // console.log(dp[i].slice(1).join(' | ')); + // } + + return max; +}; + +// console.log(maximalRectangle([ +// [1, 0, 1, 0, 0], +// [1, 0, 1, 1, 1], +// [1, 1, 1, 1, 1], +// [1, 0, 0, 1, 0], +// ])); + +// console.log(maximalRectangle( +// ["10100", "10111", "11111", "10010"] +// )); + +console.log(maximalRectangle(["010", "110", "011", "010"])); \ No newline at end of file diff --git a/091-Decode-Ways.js b/091-Decode-Ways.js new file mode 100644 index 0000000..46a646d --- /dev/null +++ b/091-Decode-Ways.js @@ -0,0 +1,50 @@ +/** + * https://leetcode.com/problems/decode-ways/description/ + * Difficulty:Medium + * + * A message containing letters from A-Z is being encoded to numbers using the following mapping: + * + * 'A' -> 1 + * 'B' -> 2 + * ... + * 'Z' -> 26 + * + * Given an encoded message containing digits, determine the total number of ways to decode it. + * For example, + * Given encoded message "12", it could be decoded as "AB" (1 2) or "L" (12). + * The number of ways decoding "12" is 2. + * + */ + + +/** + * @param {string} s + * @return {number} + */ +var numDecodings = function (s) { + if (!s.length) return 0; + var dp = []; + var n = s.length; + dp[0] = 1; + + for (var i = 1; i <= n; i++) { + dp[i] = 0; + var sum1 = parseInt(s[i - 1]); + var sum2 = parseInt(s[i - 2] + s[i - 1]); + + if (sum1 > 0 && sum1 < 10) { + dp[i] += dp[i - 1]; + } + if (sum2 > 9 && sum2 < 27) { + dp[i] += dp[i - 2]; + } + } + // console.log(dp); + return dp[n]; +}; + +console.log(numDecodings("0")); +console.log(numDecodings("12")); +console.log(numDecodings("10")); +console.log(numDecodings("01")); +console.log(numDecodings("100")); \ No newline at end of file diff --git a/095-Unique-Binary-Search-Trees-II.js b/095-Unique-Binary-Search-Trees-II.js new file mode 100644 index 0000000..d919271 --- /dev/null +++ b/095-Unique-Binary-Search-Trees-II.js @@ -0,0 +1,56 @@ +/** + * https://leetcode.com/problems/unique-binary-search-trees-ii/description/ + * Difficulty:Medium + * + * Given an integer n, generate all structurally unique BST's (binary search trees) that store values 1...n. + * + * For example, + * Given n = 3, your program should return all 5 unique BST's shown below. + * + * 1 3 3 2 1 + * \ / / / \ \ + * 3 2 1 1 3 2 + * / / \ \ + * 2 1 2 3 + */ + + +// Definition for a binary tree node. +function TreeNode(val) { + this.val = val; + this.left = this.right = null; +} + +/** + * @param {number} n + * @return {TreeNode[]} + */ +var generateTrees = function (n) { + if (n === 0) return []; + return _genTrees(1, n); +}; + +function _genTrees(start, end) { + if (start > end) return [null]; + // if (start === end) return [new TreeNode(start)]; + var list = []; + for (var i = start; i <= end; i++) { + + var leftTrees = _genTrees(start, i - 1); + var rightTrees = _genTrees(i + 1, end); + // console.log(leftTrees, rightTrees); + + leftTrees.forEach(left => { + rightTrees.forEach(right => { + + var root = new TreeNode(i); + root.left = left; + root.right = right; + list.push(root); + }) + }) + } + return list; +} + +console.log(generateTrees(0)); \ No newline at end of file diff --git a/096-Unique-Binary-Search-Trees.js b/096-Unique-Binary-Search-Trees.js new file mode 100644 index 0000000..fcb0e56 --- /dev/null +++ b/096-Unique-Binary-Search-Trees.js @@ -0,0 +1,50 @@ +/** + * https://leetcode.com/problems/unique-binary-search-trees/description/ + * Difficulty:Medium + * + * Given n, how many structurally unique BST's (binary search trees) that store values 1...n? + * For example, + * Given n = 3, there are a total of 5 unique BST's. + * + * 1 3 3 2 1 + * \ / / / \ \ + * 3 2 1 1 3 2 + * / / \ \ + * 2 1 2 3 + * + */ + + +/** + * G(n): the number of unique BST for a sequence of length n. + * F(i, n), 1 <= i <= n: the number of unique BST, where the number i is the root of BST, and the sequence ranges from 1 to n. + * + * G(n) = F(1, n) + F(2, n) + ... + F(n, n). + * G(0)=1, G(1)=1. + * + * F(i, n) = G(i-1) * G(n-i) 1 <= i <= n + * G(n) = G(0) * G(n-1) + G(1) * G(n-2) + … + G(n-1) * G(0) + * + * + * + */ + +/** + * @param {number} n + * @return {number} + */ +var numTrees = function (n) { + var dp = [1, 1]; + + for (var i = 2; i <= n; i++) { + dp[i] = 0; + for (var j = 0; j < i; j++) { + dp[i] += dp[j] * dp[i - j - 1]; + } + } + return dp[n]; +}; + +console.log(numTrees(1)); +console.log(numTrees(2)); +console.log(numTrees(3)); \ No newline at end of file diff --git a/Easy_100_Same_Tree.js b/100-Same-Tree.js similarity index 73% rename from Easy_100_Same_Tree.js rename to 100-Same-Tree.js index fed782b..4d96953 100644 --- a/Easy_100_Same_Tree.js +++ b/100-Same-Tree.js @@ -1,7 +1,9 @@ /** + * https://leetcode.com/problems/same-tree/description/ + * Difficulty:Easy + * * Given two binary trees, write a function to check if they are equal or not. - - Two binary trees are considered equal if they are structurally identical and the nodes have the same value. + * Two binary trees are considered equal if they are structurally identical and the nodes have the same value. */ /** diff --git a/111-Minimum-Depth-of-Binary-Tree.js b/111-Minimum-Depth-of-Binary-Tree.js new file mode 100644 index 0000000..6506c10 --- /dev/null +++ b/111-Minimum-Depth-of-Binary-Tree.js @@ -0,0 +1,30 @@ +/** + * https://leetcode.com/problems/minimum-depth-of-binary-tree/description/ + * Difficulty:Easy + * + * Given a binary tree, find its minimum depth. + * The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. + * + */ + +/** + * Definition for a binary tree node. + * function TreeNode(val) { + * this.val = val; + * this.left = this.right = null; + * } + */ +/** + * @param {TreeNode} root + * @return {number} + */ +var minDepth = function (root) { + + if (!root) return 0; + + var left = minDepth(root.left); + var right = minDepth(root.right); + + return (left == 0 || right == 0) ? left + right + 1 : Math.min(left, right) + 1; + +}; \ No newline at end of file diff --git a/120-Triangle.js b/120-Triangle.js new file mode 100644 index 0000000..9282916 --- /dev/null +++ b/120-Triangle.js @@ -0,0 +1,67 @@ +/** + * https://leetcode.com/problems/triangle/description/ + * Difficulty:Medium + * + * Given a triangle, find the minimum path sum from top to bottom. + * Each step you may move to adjacent numbers on the row below. + * For example, given the following triangle + * [ + * [2], + * [3,4], + * [6,5,7], + * [4,1,8,3] + * ] + * The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11). + * Note: + * Bonus point if you are able to do this using only O(n) extra space, + * where n is the total number of rows in the triangle. + */ + +/** + * @param {number[][]} triangle + * @return {number} + */ +var minimumTotal = function (triangle) { + if (!triangle.length) return 0; + var dp = [ + [triangle[0][0]] + ]; + + var n = triangle.length; + for (var i = 1; i < n; i++) { + dp.push(new Array(i + 1).fill(0)); + } + // console.log(triangle); + + for (var i = 1; i < n; i++) { + for (var j = 0; j < i + 1; j++) { + var a = j - 1; + var b = j; + if (a < 0) dp[i][j] = dp[i - 1][b]; + else if (b > i - 1) dp[i][j] = dp[i - 1][a]; + else + dp[i][j] = Math.min(dp[i - 1][b], dp[i - 1][a]); + dp[i][j] += triangle[i][j]; + } + } + var min = dp[n - 1][0]; + for (var i = 1; i < n; i++) { + if (dp[n - 1][i] < min) min = dp[n - 1][i]; + } + + // console.log(dp, min); + return min; + } + +; + +console.log(minimumTotal([ + [46], + [43, 61], + [10, -16, 3], + [-26, 41, 36, -72], + [-28, -76, -22, 26, 51], + [56, -53, 38, 67, 86, -45], + [58, 53, 47, -52, -54, -95, 56], + [-54, -93, 58, 68, 26, -4, -45, 86], + [75, 28, 27, 12, 33, 98, 35, 87, 1], [-13, 20, 25, -98, -13, 11, -44, -77, -59, -97], [-53, -14, 83, 80, 31, 89, 38, -1, 15, -88, 53], [-22, 86, -41, -94, -25, 68, -96, 87, 55, -18, -49, -25], [-93, -48, 39, 17, 8, 61, 57, -13, -92, -79, -29, 87, 51], [-63, 3, -72, 29, -9, 57, -93, -46, -84, 88, 29, 83, 69, -7], [15, -49, 43, 90, -43, 94, 29, 50, -21, -33, -16, 43, -26, 4, 90], [-61, -67, -96, 18, -63, 32, -91, 93, 16, -61, 86, 4, 67, 46, -27, -63], [-38, 0, 79, -48, 56, 51, 80, -17, -70, -53, 67, 49, -3, -52, 39, 12, -43], [43, -93, -7, -48, 91, -13, 44, -69, -27, -74, 74, 95, -25, -88, -43, 75, 90, 8], [8, 41, -35, 91, 48, -12, 35, -3, 62, 59, -86, -49, -83, 56, -42, -14, 84, -74, 72], [6, -44, -78, 31, -92, -82, -94, -81, -49, 57, 85, 36, -34, 4, 77, -66, -71, -34, 45, 25], [-95, 4, 15, -45, -3, -52, -11, 83, -67, 15, 32, 38, 47, 54, -54, 54, 48, -72, 72, 75, 85], [35, 11, -72, -61, -11, -62, -33, 31, 82, 68, 35, -37, -16, 66, 37, 31, -44, 20, 40, 47, -71, -45], [-6, 59, 0, -51, 7, 5, 97, -40, -10, 32, 70, -6, 47, -41, 31, -86, 89, -10, 59, 1, 29, -57, -32], [-34, 73, 0, 62, -9, -53, 91, 45, 17, 50, -54, 65, -65, 50, 40, -6, -83, -28, -59, -13, -80, 0, 94, -90], [-34, -39, 68, 67, 89, -89, -88, -67, 61, -12, 71, -48, 11, 62, 73, -72, -10, 95, 70, 1, 45, 10, 71, 38, 58], [-88, -98, 54, -12, 95, 64, 31, -44, 9, -25, -77, 20, -14, -45, -42, 73, -74, -14, -16, 65, -41, -12, -68, -45, -42, 32], [76, 44, -20, -8, 3, -32, -7, -66, 56, -11, 97, -36, 21, 7, 38, 43, -96, -76, 74, -62, 73, -99, 0, -66, 42, 58, 21], [73, 89, 56, -18, 43, 0, 61, -65, 79, -71, 27, -86, 61, 92, 87, -98, -9, -29, 39, -89, -49, 39, 85, -12, 12, 62, 87, 45], [4, 23, -56, -46, 12, 99, 35, -45, -24, -27, -34, -44, 1, 70, -54, -60, 39, -67, -59, -70, -19, 57, -59, 31, -4, -97, 96, 85, 64], [83, 7, -55, -17, 50, -2, 72, 49, -67, -96, -74, 5, -30, -42, 82, -60, 3, 98, 78, 12, -83, 85, 92, 73, -97, 24, -54, -95, 20, -69], [45, -20, 38, 89, 63, -12, -36, 35, -85, -27, 38, -83, 77, 84, -26, 36, -99, 53, 12, 56, -35, 5, 41, -42, -22, 43, 58, 0, 24, -45, 31], [-31, 34, -31, -65, -26, 33, -2, 85, 24, 70, 1, 40, 24, -15, 90, -63, -14, 20, 48, -81, 85, -47, 59, -80, 7, -21, 54, -92, -97, -91, 15, -52], [19, 60, -18, 93, -30, 79, 55, 94, 49, -44, 11, -27, 18, -21, 9, 80, 98, -65, 98, 60, -36, 34, 56, 71, -87, 10, 55, -85, -5, -53, -38, -85, -93], [43, 84, -47, -1, 39, -53, -52, 72, 35, -3, -10, -86, 82, -30, 88, -83, -55, 49, -19, 78, 5, -71, 90, 92, 60, 81, -13, -93, -80, 1, 89, 39, -38, -81], [-62, -98, -57, -38, 73, 77, 58, -60, 67, 40, -14, 55, 34, 30, -19, 91, -15, 63, -80, -25, 55, 79, -67, -81, 62, -71, -3, 28, 67, 58, 46, 81, 59, 88, -57], [9, 42, 77, 48, 9, -6, -89, -58, -72, 40, 22, -81, -98, -15, -85, -24, -83, 70, -15, -64, 32, 13, 32, -63, -20, -10, 60, -62, -73, 48, -20, 12, -9, -43, -62, 76], [51, -52, -82, 55, 65, 40, 74, 66, -98, 88, -80, -81, 59, 4, -46, -32, 94, 62, 5, -49, -48, -35, -11, -45, 89, 68, 67, -43, -97, -95, -66, 53, -71, -49, -15, 93, 67], [-41, 37, 69, -75, 56, 87, 83, -63, -82, -49, -69, 79, 32, -18, -92, 73, 70, -37, 63, 15, -93, -80, 17, 87, -70, -53, -84, -42, 32, 86, -75, 67, 23, 70, 91, -44, 34, 51], [-8, 51, 79, 23, 7, 11, 81, -8, -38, 28, 31, -75, -57, 37, -79, 37, 24, -72, 60, 16, -15, -31, -21, 9, -63, -98, -43, -72, -43, 90, 79, 49, 19, 58, -51, -74, -54, -93, -6], [7, 34, -75, 8, 76, 61, 6, -10, -38, 33, -49, 55, -82, 19, -66, 3, 32, -87, 59, 60, -31, 27, 16, 94, -54, -49, -80, -52, -27, -74, 42, 80, 59, 66, -35, 13, 5, 70, -97, 43], [-20, -70, -25, -26, 26, 9, 77, -42, 21, 13, 94, 66, -83, 10, 61, -38, 37, 57, -13, -89, 83, -71, 67, 19, 71, -91, -68, -47, 79, -88, 73, -41, -82, -52, 33, 43, 56, -13, -98, -46, 76], [72, -79, 93, -17, 58, -68, 96, -8, 18, -93, -25, 23, 50, 71, -28, 59, -97, 1, 15, 90, -26, 50, 85, 22, -17, 28, -45, 46, 6, -14, 0, -21, 6, -30, 38, -59, 1, 34, 32, 96, 18, 84], [-4, -32, 55, 67, -73, 34, -54, 18, 2, 19, -31, -13, -82, 28, -85, -27, -25, -2, 35, 51, 53, -59, -79, -9, -42, 21, -98, 66, -6, 19, 27, 90, 64, -18, 34, 67, 93, 79, -14, -5, -24, 54, 81], [-7, -18, 72, 42, 33, -30, -23, -16, -77, -6, 4, -10, 28, -97, -8, -5, -4, -89, -78, -14, 74, -19, 97, 42, -26, 76, -72, 68, -48, 58, 49, 45, -60, -2, -36, 73, 68, 41, -43, 67, -65, 38, -42, 63], [40, 49, -65, -64, 36, -67, -1, -12, 13, -4, -70, 86, -51, -66, 31, 1, 91, -43, -77, -69, 55, -14, 80, 23, -96, -85, -33, -84, 52, 24, 55, -8, -50, 89, 4, 63, -78, 79, -49, 12, -25, -43, -25, 24, -10], [-93, -98, -42, -37, -76, -35, -82, -14, -54, 17, -10, -40, 84, 5, 88, 8, -40, -20, 35, -74, 60, -2, -76, 40, 48, 35, 91, -95, -89, -8, -29, 93, -7, 28, -44, -7, 69, -26, 79, 91, 67, -54, -72, 51, 27, -84], [-63, 63, -28, 71, 65, -67, -54, 88, 49, 93, 1, 40, 74, -12, -90, -55, -19, 2, 49, 13, 72, -5, 86, 28, -13, 31, 73, 14, -18, -23, 30, 18, -60, 78, -34, -95, -89, 11, 69, 36, 4, -30, -23, -45, 34, -14, -1], [-85, 64, -75, 28, 13, 20, -9, -59, 83, -78, 90, -3, -19, -33, -96, 98, -17, 59, -35, -36, 69, 75, -89, -17, -43, -43, 36, 11, 91, 98, 87, 82, 62, 88, -13, -24, -15, 55, -7, -32, 53, -16, 42, -66, 27, 22, -67, 87], [-19, -26, -49, -72, -51, -39, 10, -18, 18, -54, 93, -14, -56, 57, -32, 82, 45, 55, -65, -69, -13, 28, -25, -60, 88, -83, -26, -8, 16, 6, -21, 96, 56, 7, -99, 81, 67, 10, -36, -38, 32, -66, 24, 75, 90, 69, 35, 12, 24], [69, 19, -89, -26, 71, -50, -61, 87, 0, 31, -20, 82, -90, -46, 38, 16, -46, 20, -39, 64, 60, -1, -4, 93, -99, -51, 60, 69, 83, -51, -7, 29, 68, -20, 80, 39, 6, -81, 3, -93, 49, 60, 65, 36, -86, 4, -71, -33, -99, -34], [-69, 60, 42, 4, 30, 42, 52, -10, 11, 12, 15, 80, -82, -17, -40, 97, 98, 42, -83, -21, 25, 42, -61, -9, -45, -48, 71, -16, 18, 71, 26, 26, 31, -32, -93, -39, -90, 35, 27, 20, -53, -58, 0, -36, 2, 36, -61, -23, -44, -45, 55], [80, 73, 93, -52, -71, -78, -81, 12, 17, 66, -85, -80, -3, -17, -74, 34, -8, 60, -62, -87, 83, -20, -11, -76, 58, -74, -38, -65, -19, 16, 90, -62, -33, 60, -37, -5, 82, -42, 83, -24, -75, 97, -5, -2, -20, 20, -67, 72, -43, -30, 61, -60], [26, -50, -37, -16, -25, 25, 19, 32, -82, -14, 70, -16, -54, -90, 78, -95, -33, 61, -20, -9, 36, 51, 66, -84, -29, 75, 64, 27, -55, 25, 43, 48, 52, -93, -91, -96, 31, 27, 36, 48, -87, -17, -90, -64, -8, 87, -83, 35, 26, -3, -96, -38, -75], [69, -46, -27, 44, 95, 76, 65, 20, 20, 13, -51, 26, 22, -47, -66, -74, 88, 58, -84, -52, 67, -49, 39, 55, -33, -49, -42, 40, -46, -4, 42, -77, 49, -85, 66, 44, 90, 32, -58, 10, -78, -10, -87, 20, 42, -54, 23, 7, -95, 38, 54, 48, 65, -30], [3, -91, 21, 37, 26, 51, -67, -32, 74, 82, -18, 17, 3, -51, -74, 44, 36, -52, -88, 25, 44, 30, 48, -33, -62, 29, 81, 68, -23, 46, -61, 80, 32, 36, 17, -42, -13, 27, 2, -62, 9, 60, 55, 88, -91, 80, 10, 21, -95, 21, -53, 26, -72, 94, 92], [-35, 23, 74, -89, 99, -3, -74, 56, -71, 38, -49, -37, -75, 77, 64, -60, -37, 24, 71, -49, 10, 28, 37, -69, 33, -65, -46, -64, -37, -52, -95, 4, 70, 78, 14, 47, -47, 39, 3, -42, -46, 30, -2, -21, 7, -38, -5, 69, 63, -34, 97, -50, 93, 11, -20, 3], [46, 11, 15, -91, 58, 20, -11, 6, -25, -96, -47, 27, 19, 32, 62, 73, -37, -40, -71, 69, 21, 0, 16, -39, 65, -10, 10, 35, -99, 67, -84, 46, -22, 30, 31, -87, -50, -79, 18, 25, -99, 47, -71, -4, -20, 90, -31, 42, -50, -26, -12, 48, 73, 80, -91, 15, -30], [-4, -72, -29, -60, -57, 93, -6, 72, 25, 6, 99, 22, -98, 24, 22, 48, 52, -82, -95, 20, -36, 46, 69, 14, -88, 17, -35, 91, 3, 56, -61, 75, 83, 9, 91, -97, -21, -15, 52, 80, 67, 51, -21, 45, -48, -99, -29, 80, 95, -25, 0, -64, 98, -30, 26, 86, 63, 90], [77, -57, 24, -84, -82, 7, 1, 85, 10, 57, -30, -38, 37, -85, 89, -83, 36, -59, 93, -93, -79, 65, -41, -2, 77, -43, 44, 4, -57, 7, -29, 96, 50, 94, 89, 44, -21, -10, 7, 88, -76, 53, -73, 61, 67, 92, 54, -19, -90, 24, -13, -70, -10, 22, 4, -33, 55, -52, 47], [97, 55, -81, 71, -18, 89, 60, -97, -32, -73, 9, -67, -49, -37, -64, 88, -93, -72, 42, -13, -63, -57, 51, -56, 32, -27, 47, 76, -71, 72, 0, -97, 4, 18, 50, 85, -15, 10, 64, 52, 14, -49, 62, 64, -10, 97, 29, -4, -97, -29, 60, -61, -10, -12, -41, -77, 60, 83, 75, 65], [55, -25, 45, -41, 70, -5, -79, -45, 82, 61, 83, -4, -88, 45, -63, 1, 20, 65, 74, 22, -87, 34, 37, 2, 98, 96, 1, 58, 56, -24, 1, 11, 28, -77, 46, -2, 17, 43, 29, -24, 4, 12, 71, 16, -65, -92, 93, 54, 72, 67, -24, 61, -22, -87, -36, -24, 85, 64, -88, 41, -82], [-11, -71, 45, 11, 51, -80, -95, -6, 25, -19, 75, -63, -71, -32, -52, -86, -39, -98, 62, -94, -46, 24, -40, -33, 87, 13, -71, 28, 1, 70, 22, 89, 75, -56, -23, 27, -37, -42, 97, 87, 15, 72, -98, 44, -60, -51, 57, -22, -72, -4, -17, -19, -80, 19, 24, 83, -68, 53, -11, 32, 0, -89], [-2, -25, -45, 74, 78, -6, -90, 53, -41, 24, 25, -40, -32, 42, -15, -98, -80, 12, -2, -21, 70, 17, 97, -6, -22, -70, -53, 66, 38, 46, 53, -63, 98, -92, 87, 53, -21, 96, 6, 37, 21, -68, 73, 65, 50, -42, 67, 69, 47, -58, -52, -6, 35, -55, 87, -87, -49, -88, 55, 89, 57, 9, -97], [32, -7, 89, -14, 71, 86, 91, -15, -16, 99, -42, -51, 49, -7, -84, -5, -83, -66, 42, 10, 69, 64, -26, 81, -85, -15, 14, -96, -80, -77, -94, 51, -8, 72, -86, -36, 58, 82, 25, -58, 81, 83, -33, 8, -47, -40, -97, -31, -7, 22, 55, -38, -14, -71, -79, 0, 14, 34, -19, 33, 33, -37, -39, -75], [-65, -25, -12, 92, -43, -86, -89, -85, 73, -45, -1, -74, 14, 2, -29, -93, -99, -74, -54, -14, -46, -34, 85, 44, 99, -57, -23, 32, 6, 38, 56, 40, 89, -78, 10, -54, -88, -3, -63, 61, 51, 36, 86, -35, -85, -66, -28, -85, -41, 17, 0, -11, 59, -38, -66, 35, -18, -13, -33, 87, -75, 99, 27, -86, 97], [-86, -64, 85, 11, -27, 46, -38, 85, 9, 27, 99, 42, 75, 90, 77, -31, -33, -33, -95, 5, -23, 39, 86, 63, 82, 73, 65, 58, -22, 55, 56, -9, 91, 18, 78, -59, -35, -59, -97, 73, 44, -98, -7, -4, 68, -30, 41, -65, 13, 45, 39, 89, -16, 26, 53, -57, -24, 18, -99, 53, -50, 33, -78, -82, -48, 99], [-65, -7, -83, -63, -34, 60, -85, 58, -67, 82, -94, 73, -83, 18, -5, 33, 8, 55, -64, -62, 97, 11, 32, 75, -58, 81, 8, -60, 99, 36, -84, -66, -71, -67, -52, -5, 69, -38, -70, -97, -55, -88, 52, -62, 30, -75, 47, -85, 79, 82, -48, 54, -29, 83, 29, -11, 41, -63, 28, 17, 73, 43, 51, -98, 52, 75, -27], [22, -63, -20, 1, -42, -9, -70, -4, -79, -46, -80, -65, -66, -97, -37, 87, -50, -77, 16, 38, 64, 29, -57, -19, -21, 62, -91, -42, 15, 83, 7, -86, 97, 86, 14, -45, -22, 43, 27, -25, 74, 47, -13, -92, 26, 49, 71, 75, 49, -36, -10, 13, 69, 32, 70, -51, -6, 79, 6, -91, 39, -87, -78, 36, 76, 12, 68, -69], [-67, -5, -18, -93, -81, 68, 90, 44, -5, 61, -4, -56, -98, 85, 33, 70, 17, 3, -81, -88, -41, 1, 96, 75, -9, 95, -12, -56, -16, -44, -26, 16, 51, 55, -1, 46, 1, -11, -9, 72, -73, 86, -84, -95, 49, 25, 75, -34, -95, 70, -46, -36, -28, -49, -84, 39, -54, 3, 82, 29, 59, -67, -77, -13, 87, 21, -90, -35, 87], [0, -63, 90, -36, -71, 95, -87, 53, 47, -22, 58, 17, 9, 98, 65, 59, 90, 4, 81, -7, -37, -13, -71, -5, -14, -8, -40, 84, 2, 1, 71, 78, 38, 38, -58, 43, 10, -69, -26, -43, -14, -68, 74, 94, -93, 39, 30, 96, -79, 11, -34, -17, 74, -28, 55, -39, 63, 91, -55, -58, -8, 92, -79, -93, 30, -61, 50, -82, -30, -76], [-26, 32, -68, -75, 26, -85, 64, -44, 87, 61, 43, -47, -79, -6, 24, 52, 54, -35, 43, 98, -17, -87, 90, 3, -81, -2, 19, 45, 15, 65, 45, 65, -3, 76, 90, 99, 67, 31, -68, 54, -31, 51, 84, -11, -55, -15, -58, 99, 49, 61, 74, -90, 73, 42, 12, 69, -83, -92, -9, 31, 72, -63, -27, -54, -87, -37, -55, 80, 70, -47, 11], [-61, -96, -5, 5, -51, 80, 23, -75, 6, -16, 98, 15, -65, 40, -95, 80, 56, -88, -29, -36, 61, 7, 37, -93, -3, 76, -71, -46, 24, -19, 64, 39, -38, -63, -56, 10, -83, 66, 11, -1, -72, 9, 91, -61, -73, 95, 95, 82, 83, -34, -76, 21, 50, 37, 5, -53, -10, 10, 0, -86, 90, -59, 30, -71, -23, 73, 15, -7, 17, -74, 69, 21], [35, 60, 59, 61, 32, 54, 20, -8, 96, 43, 90, 46, -20, -5, 69, 47, -95, -31, 60, 71, 10, -10, -99, 86, -59, 15, -43, 57, 41, -97, -45, -47, 39, 90, -86, -29, 44, 33, 39, 17, -46, 29, -36, 33, -76, -90, -43, -95, -21, -82, 76, 65, -16, 53, 28, 1, -55, 61, -65, 85, 63, -11, -62, 2, -21, -72, 49, 99, 61, -11, 17, 91, 94], [57, 1, 95, 66, 58, 99, -78, 75, 52, 86, -64, -18, -8, 37, 27, -47, 71, 12, 93, -62, 27, -5, 16, 54, -78, 16, -8, -13, -90, -17, -19, 43, 84, -47, 9, 19, -70, 8, -29, 81, -6, 6, -36, 62, -80, 90, -84, 68, -21, -91, -94, 82, -20, 21, 37, -22, -86, -94, 64, -77, -34, -77, 65, -73, -25, -48, 45, -19, 59, -84, -37, -70, -2, 3], [92, 18, -30, 84, -14, 25, 92, -32, 8, -51, 88, -78, 27, -97, -73, -9, -98, -8, -10, 44, -5, 42, 95, -60, -77, 31, -45, -38, 60, 30, 41, 29, -52, -89, 13, 10, 13, 5, 54, -79, 54, 42, -58, -42, 21, -55, 25, 0, 14, -84, -56, -91, 34, -61, -51, 33, 69, -20, 95, 6, -90, 36, -64, -66, 24, 48, 20, -63, -69, -26, -43, 61, 93, -25, -81], [-9, 19, 43, 90, -90, 35, -66, -81, -31, -51, -33, -97, 94, 23, 74, -22, 10, -13, 13, 20, -89, -62, -59, -76, -32, -9, -43, -94, -39, 31, -76, 52, -72, 44, 42, -63, -21, 53, -45, 25, -98, -2, 4, 73, 98, -22, -49, 8, 64, 40, -72, 52, 77, -55, 75, -77, 36, -67, -72, 96, 63, -71, 48, 67, 72, -32, -95, -72, -79, -64, 52, 98, 11, -44, 71, 9], [10, 98, -83, -25, 38, -79, -73, -7, -34, 78, 15, 78, -89, 19, 74, 51, 47, 0, 18, 19, 44, -1, 24, 41, 35, -24, 39, -77, 9, -12, 31, -81, -37, 47, -30, -98, 67, -27, -29, -90, -48, 85, 87, -38, 4, 62, -87, -71, -61, 8, 47, 59, -93, -29, 0, 18, 24, -84, 40, -67, 3, -29, -72, 43, 94, -25, 21, 39, 47, 91, 48, 75, 76, 13, -85, -43, -48], [-96, -15, -10, 11, -90, -74, -5, -43, 25, -87, 80, 40, 30, 89, -79, 77, 94, 63, 49, -31, -16, -35, 92, -25, -87, 45, -72, 2, 59, -16, 53, 39, 69, -80, -72, 55, -55, 22, -88, 69, 11, 92, -13, -82, 58, 7, 95, 52, -53, 21, 97, 30, 85, 90, 81, 74, 35, -91, -23, -29, -31, -70, 86, -85, -50, -86, 69, -6, 12, 81, -59, -99, 73, 27, -82, 8, -89, 89], [-39, -43, 10, -42, 63, -5, -75, 21, -30, 36, 6, 46, 83, 74, 75, 70, 89, -98, 83, 58, -27, -4, 39, 13, -4, -11, -83, -10, 97, -73, -20, -65, -40, 89, -31, 99, -15, -6, 20, 54, -70, -74, -23, -86, 99, -48, 60, 65, -69, 43, 24, 3, -84, -60, -84, -12, 6, -91, 78, 3, -65, -42, 14, -29, -76, 82, -30, 8, -47, 89, -61, -40, 91, 15, -50, 90, 44, -90, 33], [51, 52, -43, -46, 45, -27, -54, -67, 78, -46, 87, -42, -35, -55, 71, 35, -54, 54, 81, 53, -93, 47, 69, -34, 38, -39, 15, 5, 81, 1, -62, 32, -46, -29, 85, 75, 44, -69, -92, 22, -39, 95, 80, 25, -83, 51, -63, -38, -18, 94, 92, -34, 41, 38, 8, -21, 98, -99, 61, 80, 1, 98, 12, 31, -53, -25, 6, 90, 5, 14, -11, 43, -14, -31, -32, -21, 97, -18, 41, -44], [-24, 10, 21, -82, -52, -93, -27, -54, -93, -89, -97, 7, 86, -8, -61, -67, 66, 44, -77, -52, -65, -12, 90, -3, 57, -64, 76, 31, 17, -6, 86, 69, -96, -15, 63, -49, -9, -86, -27, -26, -76, -47, 80, -90, 44, 95, -81, 10, 17, -82, 34, 51, 6, 25, -51, -60, 60, -98, 70, -46, -5, 33, 99, -2, 94, 63, 25, -38, 76, 74, 35, 76, -96, -7, 63, 47, -12, 81, -66, -95, 99], [68, 33, 5, -30, 58, 44, -93, 59, -9, -63, -69, -99, -64, 28, 95, 75, -70, -66, 28, 80, 46, 5, 84, -61, -32, 31, 3, -51, 42, 8, -52, -13, -82, 29, 56, 75, -50, 62, 11, 40, 98, 41, 18, -89, -54, -10, 86, -48, 23, 14, -68, -31, 95, -84, -16, -37, 24, 87, -11, -34, -28, 13, 52, -11, -57, 8, -59, -8, -53, 28, -90, -78, -31, 27, -68, -9, 93, 94, 42, 16, -14, 73], [62, -19, 89, -54, 44, -10, -67, -67, 55, 4, 45, -16, 69, 64, 68, -90, -66, -85, 14, -80, -87, 59, 23, -79, -50, 16, -84, 91, -91, 1, 42, 70, 58, 8, -83, 2, 97, -74, 11, 29, 30, -66, -87, -24, 97, 80, -37, -92, 71, 76, -73, 83, 36, 49, 80, 85, -58, 95, 54, -49, -27, -4, -79, -68, 80, -86, 10, 77, -60, 98, -17, 46, -68, -5, -78, -94, -48, -16, -86, -77, -62, -83, 82], [73, 43, 62, 35, 84, 58, -34, -65, -92, 38, -67, -84, 18, -54, 3, -28, -15, 1, 54, -69, 32, -51, -70, 14, 0, -10, 4, -1, 27, 21, -19, -23, -59, -56, -87, -75, 78, -45, -63, 62, 93, -31, 78, 11, 14, -42, 83, 76, 58, 14, -93, -33, 63, -87, 80, -60, 3, -15, 39, -93, 82, 96, -16, 99, -60, -27, -76, 94, 27, -63, 57, 20, 5, 12, -91, 96, 69, 91, 72, 4, -18, 55, 70, -78], [68, 50, -38, -52, -88, 77, -46, 70, 73, 37, 69, 90, -90, 70, 61, 37, -93, 18, -43, -11, -93, -35, -15, 52, -67, -66, -44, -8, 88, -74, 13, 56, 53, 74, 80, 64, 28, -65, 35, -21, 71, -19, -54, 58, -49, -93, -5, -65, 2, 28, 23, 8, 70, 84, -62, 79, -82, -7, -29, 82, 19, 84, 16, -28, 35, -4, -87, -59, 30, 24, 19, -21, -94, 41, -63, -67, 47, 8, -56, -74, -64, 43, 34, 82, 27], [48, 62, 21, -59, -90, -19, 59, 70, 96, -92, -17, -8, 97, 0, 99, 21, 95, -22, 3, 36, 14, 36, -40, 98, 79, -14, -66, 23, 96, 93, -73, 44, 32, 25, 84, 41, -94, 21, -11, -98, 5, 48, -30, 2, -52, -31, -76, -57, 23, 26, 78, -86, -61, -62, -88, 95, 23, -77, -5, -4, -84, 21, -60, 47, -54, -75, -35, -72, 22, 53, -94, -73, 1, -24, 29, 25, 21, 52, 67, -78, -45, 22, -65, -29, 60, -76], [-34, -40, -54, 60, 33, -39, -19, 72, -92, 4, 73, -51, 8, -5, -97, 14, 22, -20, 89, -49, -94, -13, 79, 49, 8, -66, -28, 20, 4, -91, 43, 69, -55, 88, 6, 77, -74, 87, 27, -90, -32, 0, -42, 75, 95, -63, -11, 17, -6, -45, 67, -24, 19, 46, -75, -96, 56, -27, 23, -39, -19, -57, -93, 3, -92, 13, -43, -67, -23, 83, -81, 21, -16, -23, -27, -21, -10, 39, 72, 83, 70, 39, -41, -11, -38, -39, -30], [94, 33, 92, -68, 91, -87, -61, -6, -80, 28, 27, -70, 81, 11, -52, -21, 94, 24, 51, -50, 91, -10, -78, 74, -62, 37, -89, 26, 75, -29, 95, 69, 80, 65, -98, 71, 77, -83, -58, 73, 44, 69, -97, 2, -20, -49, 80, -49, 51, 8, 0, 42, 75, -2, 17, -87, -65, 4, 15, -90, 74, 11, 78, 54, -47, 56, 3, -93, 72, 21, 79, -7, -10, 82, 94, 46, -90, 51, 73, 60, -63, -50, 3, -88, 47, 96, -76, 58], [0, 38, 67, -49, -74, 23, 81, -22, -21, -16, -39, -71, 82, -59, 21, -51, 99, -7, 72, -91, -79, 45, 45, -43, 95, -52, -32, 19, -79, -32, -22, -3, -93, -78, 47, -91, 44, 29, -36, -99, 89, 24, -94, 71, 41, 26, -79, 40, 95, 92, 25, 93, 14, -29, -50, -14, -5, -5, -94, 16, 62, -40, 89, 45, -19, 14, 54, -97, -80, -82, 79, -91, 18, 84, 57, -40, 10, 54, 76, -17, 23, 2, -24, -86, 49, 2, 0, -56, 96], [-18, 36, 36, 41, 26, -19, 98, -60, -88, -99, -41, -94, 79, -56, 24, 63, 77, 60, -49, 8, 36, 10, -69, -85, 62, -55, 63, -36, 21, -92, -62, -97, 20, 73, 20, -54, -46, -5, -38, -57, -27, -3, -52, -71, 18, 48, 69, -5, 8, -80, -96, -78, 6, -89, -64, -32, -45, 76, 31, 52, 60, 68, 31, -20, 41, -49, 3, 72, 23, 64, 91, 95, -61, -61, -76, 56, 87, 92, -49, -28, 88, -69, -7, -6, -58, 6, 61, -4, -41, -30], [-74, -81, -85, 56, -2, 33, 84, -99, 5, 7, 42, -27, -21, 80, 11, 2, 13, -25, -28, 63, 24, -40, 94, 93, 31, -64, -1, -31, 8, 57, 38, 33, 52, 30, -10, -49, -37, -26, -72, 44, 57, 46, -83, -64, 3, 27, 14, -84, 79, 85, 79, 3, -77, 50, -4, 53, 62, 72, -78, -30, 6, 37, 80, -41, -33, -53, -14, 29, -3, -10, -50, -46, -63, -34, -34, 39, 69, 79, 55, 48, 65, 11, -72, 87, -39, 24, 17, 99, -27, 15, -54], [55, -48, -74, -86, -5, -51, -24, -99, 45, 66, -50, 75, 79, 15, -59, 18, -38, -79, -50, -90, 62, 60, -62, 49, 97, 38, -34, 96, 87, 57, -80, 42, -90, -55, 33, -19, -29, 85, -41, -84, 51, 8, 91, 7, -99, -91, -74, -38, -71, -25, -52, 90, -87, -38, 16, 86, 76, 58, 60, 63, 16, 79, -17, 2, -99, 92, 59, -29, 77, -82, -36, 6, 3, -45, -87, 3, -60, -85, 41, -54, -10, 65, -87, -21, -72, 29, -35, -96, -36, -75, 44, 56], [-96, -96, -65, 81, 95, 94, -48, 49, -88, 15, -45, 14, 46, -32, 93, 86, -41, 11, -68, 25, -23, -56, -96, 4, 49, -54, -16, 90, -30, -95, 46, -49, -92, 81, -68, 79, 75, -40, 29, 63, 75, 83, -45, -2, -72, -52, -16, -13, 59, -8, -88, -87, 13, 92, -7, -38, -62, 76, -48, -16, 58, 75, 34, 42, 33, 42, 22, 8, -97, -72, -52, 54, 87, 2, -48, 92, 50, 36, -44, -14, -95, -56, -2, 17, -64, 90, 79, -50, 43, -92, 34, -22, 59], [-55, -79, -8, 87, 19, 76, 66, 23, -75, 20, 10, 26, 71, -21, -47, 7, 34, 15, -11, 78, -87, -94, 90, 79, 61, -59, 0, 46, 51, 77, 5, 95, 74, 97, 59, -7, 73, 25, -84, 74, -55, 3, -22, -83, 81, 7, 0, -7, -77, 88, -29, -88, 94, -62, 68, 32, -22, -32, -22, -94, -78, 83, -98, 96, 57, 60, -34, 7, -14, -41, -18, 30, 61, 36, 23, 19, -57, -76, -88, -35, 88, -41, -23, 82, -3, -55, 15, 51, -11, 69, 57, 10, 52, 58], [6, 9, -5, 72, -83, 57, -69, -25, -35, 68, -89, 87, -13, -47, 87, -24, -5, 76, 34, 48, 35, -69, 92, -73, 82, -42, 96, 39, 67, 25, -26, -49, -65, 45, 99, -72, 3, -70, -21, 44, 74, -34, 31, -62, 18, -4, 13, 89, -28, -52, 37, -93, -22, 6, -89, -40, 63, -93, 75, 8, 31, -74, 58, 42, 48, 57, 46, -49, 63, -98, 71, 37, -33, 2, 74, 62, 97, -12, 51, -54, 35, -11, -70, 89, 94, -60, -73, 58, -77, -98, -57, 53, -95, -99, -27], [52, 57, 95, 79, -3, 97, 50, -66, -36, -71, 84, -74, -96, -28, 77, -51, 83, -57, -22, 73, -63, -6, 99, 71, 16, 77, -86, -53, 81, 90, -4, 10, 24, -9, -11, -79, -35, -84, -69, 29, -55, -84, 31, -52, -36, -15, -27, -52, 27, 28, 97, 41, -78, 96, 12, 15, 50, 3, 61, 9, -7, -66, -81, -82, 24, -15, -62, 66, 0, -31, -5, 21, -16, -97, 68, 24, -35, -58, 71, 91, 69, 68, 32, 67, 41, -78, -18, -8, 24, -80, 77, -83, -47, 95, -66, 54], [-43, -28, 20, 57, 17, 91, -22, 77, 70, -76, 1, -65, -58, -27, -96, 87, -82, 35, 54, 36, 56, -86, -95, -20, -90, 81, -26, -60, 53, 7, 93, -89, 55, -10, 67, -51, -42, -78, -74, -72, -78, 27, -60, -37, 76, -57, -50, 70, 54, 81, 6, 11, 71, -13, 67, 80, -32, -59, -80, -78, 25, 89, -68, -20, -44, 75, 29, -10, 73, 31, -5, 95, -65, 34, -42, -89, 76, -15, 58, 30, -57, -59, -82, -86, 28, 62, 70, 72, 79, 67, 70, 4, 33, -98, 61, 66, 53], [-33, -44, 27, 74, 50, -1, -90, -16, 56, 96, -63, -82, 54, 44, -40, 95, 38, -50, 0, 0, 97, -28, -43, 64, -57, 60, -26, -79, -2, -60, 51, 41, -4, -22, 16, -54, 53, 25, 7, 9, 21, 20, 4, -47, -59, 40, -75, 79, 67, 24, -44, 64, 72, 12, 5, 91, -50, 78, 89, 47, -81, 40, -11, -9, 94, 81, 13, 47, 6, -80, -67, -96, 17, 36, -44, 57, -46, -20, 13, -79, 80, 69, 84, 53, -19, -34, 21, 7, -56, 10, -45, -61, -50, 20, 29, -79, -22, -80], [67, 83, -61, -99, 63, 32, 13, -80, -10, 43, -24, -97, 63, -43, 48, 24, 86, -70, 89, 7, 36, -89, -82, 67, -74, -56, -36, 32, -58, 41, 51, -91, 1, 66, 85, -35, -1, -24, -39, 65, -81, 36, 67, 59, 92, 16, -40, 78, 22, -73, -14, -65, -63, -20, 79, -38, 0, -80, 70, 18, 61, 21, 27, -61, -12, -11, 3, 86, 41, 63, 51, 37, -23, -5, -27, -31, 87, 32, -52, -14, 58, 10, -2, 71, 66, -23, -66, -57, -4, -96, 61, -66, 2, -35, -50, 89, 30, 29, 52], [-51, -30, -20, 85, 46, 74, -65, -85, 39, 66, -61, -75, 25, 25, 22, -4, -32, 75, 6, 11, -51, -13, -51, -41, 88, -10, 8, 54, -80, -62, 6, -55, 7, 85, -93, -70, 36, -59, -56, -25, -92, -40, -23, 9, 84, 75, 81, -70, 51, -12, 17, 99, 51, 65, -42, 16, -68, 43, -53, -72, 80, 52, -27, -36, 14, -21, -7, -73, 20, 13, -21, 4, 72, 55, -87, 34, 7, 93, 40, -42, -42, -43, -66, 85, 98, -31, 1, -70, -88, 47, -43, 68, -24, 6, -68, 66, 85, 1, 70, -18], [90, -51, 85, 63, 80, 74, -26, -13, 44, -86, 22, -97, -53, 55, 64, -55, -76, -57, -26, -65, 66, 7, 79, -80, -86, -89, 85, 75, -12, 55, -66, -21, 80, 95, -81, 37, 69, -31, -75, 13, -18, 23, -8, 5, -22, -66, 49, -21, -24, 99, -10, -58, 6, -30, -39, -4, -20, -76, -52, 45, 55, -19, -99, 36, -24, -81, -50, -55, -13, -26, 35, 45, 73, -96, -50, -48, -63, 75, 30, -11, 74, -80, 31, -43, -11, 68, 30, 46, 91, 77, -32, 47, -41, -32, -40, 11, -14, 9, 33, 49, 60], [-32, -29, 33, -52, 20, 61, -38, -28, -32, 50, -54, -12, -42, -21, 53, -73, -91, -24, -82, 63, 20, 41, -78, 87, 77, 9, -50, -13, -58, 98, -76, -14, -31, 56, 34, 65, -5, 95, -63, 62, 22, -41, -73, 80, 38, 57, -93, 23, -67, -99, -14, 53, 42, -16, 17, -4, 93, 67, 82, -65, 42, 82, 21, -88, 16, -68, 53, -89, -96, 67, 72, 25, -74, 99, -18, 40, 33, -12, -36, 65, -34, 49, -5, 84, -89, -87, -20, -96, 56, -60, -85, -2, -78, 35, -14, 37, 43, -83, 47, 46, 83, -3], [-51, 85, -27, 30, 26, -94, 95, 89, 47, -39, 15, -80, -78, 2, -91, 1, 5, 64, 40, -3, -61, 62, -91, 2, -24, 52, 18, -76, -25, 1, -3, 23, -14, 69, -69, 88, 51, -74, 54, -2, -37, -53, -6, -16, 48, 2, 84, -69, -34, 2, 27, -18, -59, 35, 83, 16, -36, 1, 16, 39, 78, -87, -38, -59, 58, -31, -70, -14, -6, 83, 84, 33, -70, -45, 93, 55, 57, 55, 85, -77, -43, 12, 4, -3, -76, -36, -87, -12, 64, 29, -73, 42, 18, -35, 60, -23, 34, 89, 39, -95, 49, 0, 15], [56, 55, 8, 11, 12, -37, -4, 11, -4, 84, 92, 92, -92, -44, 82, -28, -79, -12, -2, 39, 82, 40, -1, -64, -49, -35, 75, -68, -85, -25, 46, 70, -70, -68, -19, 41, -6, 53, -47, 90, 37, -55, 59, 21, 0, 18, 93, -3, 82, -32, -63, 65, 84, 12, -99, -65, 77, 52, -33, 68, -72, 89, 15, -43, -79, 72, 75, -8, 25, -72, -41, -61, -51, 94, 36, 48, 13, 29, -77, -28, 74, -41, -63, 35, 47, -85, 70, 1, 66, -86, -31, 70, 79, 83, -72, -99, 55, -97, -8, -43, -93, 50, -5, -45], [21, -91, 79, -66, 37, 78, -17, -12, -86, -4, -76, 61, 10, 70, -38, -46, 60, 8, -99, 39, -32, -72, 39, -76, -93, -92, -43, 89, 34, 29, -79, -44, 37, 77, -34, -49, 55, 48, 39, 69, -55, 39, 7, 31, 9, 45, 61, -31, -47, 62, 84, 21, 66, 24, 21, 73, 8, 77, 39, -80, -17, 60, -25, -80, 14, 17, -29, -54, -34, 86, -85, 10, 25, -2, -82, -89, -56, 79, -44, -27, 41, -60, 70, 7, 40, -9, -43, -51, -54, 73, -32, 28, 10, 19, 25, -76, -64, 95, -31, -22, 81, -39, 87, -17, 58], [82, -7, 78, 61, 48, -71, -21, 64, 98, 62, 5, -33, 96, 53, -11, 69, 97, 93, -21, -7, 18, 2, 28, -10, 47, -93, -52, -92, 70, 30, 43, 52, 99, -2, -10, 24, 26, 45, -11, 25, 8, 93, 68, 4, 23, -43, -27, -3, -50, 28, 89, 68, -93, -6, -42, 53, 0, -17, 38, -52, -87, -19, 76, 89, 55, -56, 13, -18, 88, -98, 83, -4, 71, 51, 76, -29, -92, -74, 67, -66, 53, 33, -98, 59, -72, -63, -10, 4, 19, -72, 51, 8, 8, 5, -3, -60, 48, 87, 21, 13, 88, 4, 86, 37, -68, 62], [-92, -61, 65, 75, -27, 18, -15, -49, -45, 12, -36, 44, -83, 59, 71, 44, -55, -44, -51, 41, -5, 73, 28, -83, -13, -6, -3, -27, -69, 29, -88, -85, 44, 76, 66, 93, -28, -48, -55, 26, 63, -15, -30, 56, -55, -59, 1, -11, -27, 49, -93, 44, 0, 12, 60, 86, -94, -65, -64, -87, 40, -53, -73, -16, -99, 93, -22, -28, -78, -1, 97, 84, 60, -56, 41, -95, -39, -81, -30, 33, 44, -46, -23, -56, 65, -85, -93, 70, -74, -58, 59, 65, -34, 85, -74, -57, 55, -20, 14, 53, 55, -12, 38, 16, 31, -44, -3], [91, -26, 67, 1, -82, 97, 77, -61, 62, 68, -55, 9, 93, -36, -32, 35, 6, -70, 61, 48, 62, -59, -61, 15, 96, 26, -70, -11, -66, -15, 85, -98, 35, 29, 2, 30, 26, -44, 45, -12, -98, 89, 96, 71, -70, -36, 7, 12, -29, -55, -63, -67, -38, -25, 47, -65, 77, 77, 23, 87, -61, 9, 88, 51, -62, -33, -19, 64, 23, -97, -71, 24, 68, -74, -5, 98, -34, 78, 10, 36, -77, 47, 45, -15, 98, -7, 19, 53, -30, -80, 40, -15, 28, 29, -64, 42, 95, -7, -17, -5, -5, -11, 95, -36, -9, -32, -61, 56], [-54, 25, -30, -54, -51, -85, 7, -75, -16, -74, 77, 30, -78, 17, -84, 26, -77, -49, -31, 95, 21, 28, -33, -84, -83, -37, -44, 7, 7, -29, -59, 52, 96, -13, 74, -78, -22, -19, -54, 62, -16, -77, -31, 5, 17, -16, -68, 16, 12, -23, -12, -67, 81, 55, -75, 98, 94, -42, -18, 1, 28, 22, -70, 24, 85, 81, 46, -36, -38, 68, -97, 45, 91, -29, -72, -15, 32, -41, 77, -56, 12, -34, -24, -7, 97, -23, -32, 91, 34, 50, -31, -37, -51, -25, 63, -65, -44, -14, -25, 18, -45, -23, -60, -77, 24, -33, -16, -44, 2], [-39, -1, -86, 26, 51, -16, 23, -71, 51, -9, 39, 1, 59, -98, 50, -65, 42, 84, -33, -72, -64, 84, -41, 12, -98, -19, -87, -32, 41, -31, 70, -97, 67, 60, 28, -4, -56, -71, 1, 95, 19, -60, -27, -44, -81, -77, -33, 60, 83, 33, 64, -81, -5, -76, 7, -4, -19, 20, 40, -77, 88, 10, -75, 32, -52, 29, -95, -32, 34, 5, -37, -46, 22, 36, -14, 40, 35, 52, -23, -4, -15, -59, 14, 56, -59, 98, -48, 22, 18, 92, 21, -17, -21, 45, 91, 3, -49, 73, 71, 85, -22, -66, -84, 76, 46, 1, 16, -41, -70, 69], [54, -9, -89, -55, -52, -49, -57, -24, 49, 37, -55, -30, 96, 24, 91, 65, -73, -57, 38, 74, -95, 92, 85, 96, 69, 31, -26, -15, 66, 3, -45, 20, 93, -58, 65, -59, -31, -92, -6, -81, 22, 38, -35, 18, -38, -43, -17, -34, -24, -79, -83, -20, 90, -98, -47, 59, 10, 26, -79, -24, -71, -48, 96, -78, -7, 38, -60, 62, 22, 33, 57, -56, -52, -78, 62, 10, -45, -78, 52, 30, -80, 68, 86, -90, 47, -61, 68, -43, 64, 88, 32, 69, -59, 5, 68, 10, -57, 84, -51, 65, -6, 82, -91, 41, 81, 47, -72, -64, 46, 79, 43], [65, 25, 29, 51, -28, 45, 19, 5, -14, -16, -63, -44, 1, 19, -99, 88, 61, 84, -63, 3, -22, 96, -11, -81, 77, -64, -53, -87, 81, -97, 55, 23, 4, -38, -26, 52, -93, 69, -43, -31, -69, -29, 24, 8, 89, 1, -4, 27, -15, 10, -69, 39, 6, 19, 58, -17, 31, 81, -28, -10, 83, -72, 89, -12, -34, -36, -83, -28, -90, -26, 40, -60, 21, -58, 25, 10, 19, -79, -86, -95, 30, -56, 43, -87, 39, -22, -28, -52, -41, 44, 37, -80, 48, 3, -16, -86, 43, 0, -38, 53, 50, 78, 69, -29, 96, -6, 57, 16, -8, 71, 20, 98], [91, -60, -88, 31, 18, -17, 55, 53, -96, -31, 72, 51, 71, -67, 41, 15, 33, -97, -55, -17, 58, -86, 31, 54, -15, -12, -30, 76, -41, 66, 74, -49, -93, 62, 58, 1, -77, 13, -69, -74, 81, 80, 54, 52, -87, -28, -56, 45, -25, -12, -94, -90, -21, 36, 63, 63, -99, -66, 16, -40, 99, -33, -13, 82, -93, -55, -40, -71, 57, -9, -69, 15, -29, 84, -56, -17, -43, -12, -94, 8, 52, 87, 17, -69, 0, -43, 70, 0, -10, -37, 36, -33, 7, -77, -74, 13, -33, -14, 41, -99, 53, 48, 15, -76, 33, 36, -17, 66, -76, -35, -49, 75, -48], [44, 83, 28, -99, 30, -71, -32, 93, 41, 11, 0, 64, 13, -87, -92, 75, 30, -91, 28, -22, 0, 51, 87, -64, -88, 30, -64, -24, 80, 88, 28, 1, 71, -67, -21, -22, -62, 23, -29, 79, -66, 47, 43, 23, 36, 50, -1, -34, 35, -73, 21, -87, 55, -15, -52, 66, -84, -16, -58, 72, -51, 46, -26, -80, 79, 29, -3, -83, -48, 45, 72, -38, -8, 15, 84, -94, -57, -17, -52, 54, 10, 68, 66, -35, -46, -85, -69, -54, -25, -51, -82, 23, 95, -32, 19, 51, 73, 92, 44, -75, 14, 17, -14, 83, -68, -52, 88, -49, 30, -64, -94, -83, 81, 71], [-42, -88, 62, -35, -43, -86, 14, -49, 36, -14, 19, -68, -63, -8, -98, 80, -6, 15, -3, 56, -2, 6, -96, -14, 33, 11, -1, 38, 27, -20, -13, 62, -9, -74, -73, 47, -60, 40, 97, 52, -97, -7, 84, -61, 62, 85, 96, -44, 0, -30, 88, 75, 52, 92, -39, -14, -20, 59, -99, -93, -84, -13, 68, 6, 13, 72, -70, 52, -11, -95, 4, -8, -3, -35, 7, -64, -50, -20, -32, 27, 50, -43, 2, 2, -74, 39, 64, 5, -24, 65, -12, -9, -48, -43, 74, 41, -94, -96, -30, -6, 84, 51, 85, -41, -84, -30, -6, -57, 49, 62, 46, -24, 95, -75, 55], [-79, 63, 19, 25, -61, -16, -87, 7, 13, -54, -42, -69, -49, -39, 1, 22, -77, -71, -16, -19, -79, 53, 74, -37, -20, 13, 85, 55, 8, -90, 10, 5, 50, -93, -93, 65, -10, -80, -28, 79, -58, 29, -89, -30, 67, -12, 68, 89, -7, -48, -53, 13, 82, 97, 53, -38, 11, 38, 93, 95, 25, -19, -22, -25, -13, -16, -60, 53, -20, -11, 33, 22, -82, 20, 68, 61, 84, 36, 27, -23, 87, 73, 89, 46, 71, 42, -92, -41, -42, -98, -69, 82, -18, 8, -43, 45, 69, -27, -2, -51, 61, -69, 47, 56, 27, 15, 17, 11, -72, -78, 87, -84, 71, 77, 61, 42], [-4, 46, 77, 53, 24, 85, 12, 82, -7, 45, 27, -61, -81, -75, -12, 56, -67, -65, 12, 59, 27, -93, -29, 54, -72, -42, 46, 75, -88, 8, 18, 8, -69, -28, -62, 54, -43, 27, 13, 27, -28, -60, 65, -10, -59, -70, -76, -27, -35, 35, -67, 91, 18, 3, 45, 22, 37, -8, -2, 49, 76, 92, -66, 83, -36, -52, 14, -2, 74, -73, -98, -53, -57, 43, 13, -17, 73, 36, 56, -62, -51, 65, -94, 66, -32, 27, -34, 81, 95, 63, 30, 48, 55, 40, 31, 95, 65, -78, -30, 39, -52, -29, 62, -10, -85, -47, 50, 87, 65, -17, -98, -86, -52, -93, 57, 15, 10], [99, -27, 6, 62, 80, -46, -6, 20, 62, -11, -15, 83, 59, -98, -91, -70, 40, -25, -79, 92, -75, -92, 58, 7, 85, 48, 31, 68, -18, -77, -21, -19, -4, 61, -57, -24, 91, 13, 72, 53, -97, -42, 14, 61, -64, 22, 67, 75, 73, 65, 68, 75, 49, 3, -41, 35, -49, 90, 3, 10, -87, 81, 90, 8, 42, -89, 60, 11, 23, 33, -36, 2, 67, 54, -60, -97, -47, 84, 54, -73, 49, 22, -98, -2, -98, -40, -90, -70, -73, 13, 39, -60, -29, 6, 24, 90, 16, -15, 1, -83, -82, 41, -5, 84, -4, 35, 63, 48, 19, 17, 51, -32, -83, 29, 42, -82, 66, 52], [-53, 92, -58, 85, -91, -11, -31, 33, -44, 84, -82, 33, 77, -88, -25, -27, 95, 47, 84, 58, -28, 3, -25, -99, 47, -9, 29, -34, -14, -5, 94, 32, -12, -87, -5, -4, 2, 63, -94, 34, 24, 99, -32, -21, -89, 19, 28, 82, -34, 12, 17, 14, -85, 69, 14, 38, -63, -56, -96, 22, 38, 98, -68, -97, -89, 26, -24, -11, -34, -19, -76, 66, -19, -9, -55, -32, -90, 72, -49, -48, -16, 67, 65, -25, 13, -20, 89, 50, 0, 93, -28, -85, 68, 3, -82, 55, -94, -7, -78, -29, 50, -78, -85, -92, -11, -41, -24, -2, -91, 3, 26, -8, -30, -32, 44, 60, 24, 33, 10], [-76, 3, 81, -61, -52, -38, -67, 80, -56, 25, 78, -8, -48, 99, 6, -40, -12, 64, 12, 62, 72, -85, -12, -58, -16, 32, 62, -56, -43, -28, 30, -20, 52, -11, 18, 76, 50, 50, 56, 70, -48, 11, -38, -19, 10, 44, 40, 74, 9, -48, 36, -42, -34, -99, -24, 26, 33, -85, 47, 89, -13, -46, -54, -84, 42, 64, 91, -31, -9, 25, -60, 20, -64, -22, -99, 46, -77, 17, 20, 8, 45, -66, 42, 87, -66, -81, -10, 43, -90, -86, 9, -4, -32, 55, -12, -90, -4, -20, -21, 86, -95, -5, -17, -60, 72, -40, 62, 71, 76, -40, -21, 21, -30, -78, -15, -20, -83, 75, -76, -74], [88, 32, -1, -44, -13, 63, -57, 82, -57, 21, 46, -53, 92, -94, -36, 64, -34, -97, 36, -58, -61, 91, 40, 8, 89, -75, 65, -94, 76, 88, -91, 65, -3, -16, 97, 61, -53, -60, 20, -33, 37, -34, -10, 29, -51, 30, -29, 14, 33, 83, 55, 48, 74, -28, -66, 64, -26, 98, 46, -50, 86, 31, -85, -40, 91, -87, -79, -84, -71, 41, -18, 66, 83, 71, -5, -68, 2, 65, 45, -88, 48, -22, 36, 0, 49, 69, -59, -77, 44, 86, -27, 7, -5, -36, 67, -37, -47, 87, -22, -18, 5, 36, -52, -11, -15, 42, 20, 63, -15, -57, 74, -67, 20, -13, 9, -31, -66, 49, -31, 77, 36], [18, -15, -92, 81, -48, -30, -65, -84, 25, 16, 21, -39, 40, -90, 45, -41, 6, 8, 43, 48, -41, 53, -55, 23, -38, -9, 56, -88, 59, 33, 24, -23, -82, 31, -42, -54, 77, -31, -38, 2, 61, 82, 40, 1, 91, -15, 60, -26, 70, -20, -77, -94, -67, -33, 28, -28, 57, -16, -17, -7, -82, -93, 46, -88, 14, 81, -42, -32, -50, -4, 47, 88, -22, -13, -11, -54, 48, -74, 19, 18, -17, 18, 1, 15, 62, -71, 63, -4, -10, -54, 89, -16, -71, 35, -5, 19, 16, 29, 87, 43, -75, 34, 31, -21, 97, 96, 24, 45, 99, -56, -59, -18, 38, 41, 73, 0, 46, 37, 96, -64, 82, 62], [-4, 88, -3, 68, 7, 90, -3, -29, 33, -1, 81, -59, 77, 78, -63, -21, 24, -87, 22, 64, -6, -40, -18, -32, 37, -72, 81, 33, -59, 40, -5, 36, 28, 68, 4, -87, 35, 78, -17, -55, -23, -35, -15, -69, -57, -1, 9, 43, 11, -92, -16, 82, -55, 65, -73, 81, 70, -92, -9, 87, 47, 62, 23, -24, 7, -95, -12, -57, 82, 47, -13, -64, 88, 49, -34, -91, -75, 52, 51, 12, 59, -64, -6, -96, 77, 20, 61, 24, 27, -71, 11, -25, 90, -65, 27, -2, -61, 91, 17, 97, 38, 80, -67, 4, 6, -2, 12, 30, -73, -37, -57, 86, -25, 13, 66, -70, -66, 28, 53, 37, 33, -35, 88], [24, -24, 15, 98, 14, -17, 15, 11, 98, -28, 20, 2, 78, 94, -86, 8, -78, -47, 27, -92, 28, -59, 50, 57, -49, -45, 10, 64, 88, 51, 53, 12, -73, -55, -13, 40, 28, -98, -72, 26, -27, 47, -95, -72, 42, -82, 36, 40, -30, -60, 47, 74, -43, -3, 31, -16, 29, -81, -51, 17, 69, 78, -94, 96, -77, -8, 13, 27, -7, 18, -47, 42, -58, -66, 70, 60, -49, -17, 0, -2, -1, -76, -28, 33, -2, 80, -83, -73, 98, -58, 43, 44, -80, 48, 40, -57, -83, -69, 46, -14, 25, 99, -95, 66, -90, 51, 27, -39, -66, -96, 35, 10, -72, -93, -80, 2, 86, -64, 28, 61, -45, -52, 6, -26], [72, -77, -7, 88, -70, -60, -26, 54, -84, -22, 21, -75, -70, -75, -38, -60, -95, 96, 26, -91, 80, 45, 10, 43, 58, -62, -18, -87, -15, 87, -37, -66, 86, 33, -78, -83, 72, -28, 47, 64, 50, -32, 65, 56, -31, -95, 72, -49, -99, -1, -41, 57, -56, 69, 1, 78, -93, 82, 90, -31, 46, -46, 2, 9, 86, 1, 25, 35, 72, -27, -24, -1, 17, -59, -68, 63, -55, -95, -86, -77, -20, -28, 79, 0, -82, -43, -21, -75, -84, -31, -30, 38, -1, 48, -52, -38, -74, 49, 73, 75, 98, -51, -26, 16, -33, -17, -44, 11, -13, -54, 33, 43, 17, -10, -57, 35, 23, 21, 36, 16, 67, 82, -69, -34, 30], [-45, 5, 33, -95, -45, 8, -97, 4, 58, -5, 70, -59, 27, -42, 4, 72, 68, -53, -33, -42, -10, 78, 57, -89, 14, -50, 54, -27, -19, 97, -97, 35, 2, 12, 16, 56, -80, -4, -63, 78, 90, -93, -81, 18, -35, 23, -33, -90, 69, 33, -33, -64, 11, -99, -76, -75, -72, 77, -26, -15, 74, -46, -80, -24, 65, 13, -90, 85, -91, -54, 63, 98, -70, 81, -7, -29, -19, 60, -20, -72, -7, 23, -37, -95, 0, -14, -94, 27, -59, -20, -88, -85, 33, -91, -32, -2, 21, -46, -40, 6, -24, -77, 4, 5, 81, 74, 52, -61, 11, -91, -34, 80, 8, 6, 61, -91, 68, 67, 12, -91, -76, 1, -76, 33, -14, -32], [-92, -93, 21, -32, 12, 96, -33, 92, -21, -52, 43, -69, -13, -46, -83, 29, -88, 24, -65, 72, 9, -96, 16, -78, 88, 39, -1, 88, -51, 84, -44, -66, 90, 76, -22, -21, 73, 44, -52, -48, 69, 68, -41, -67, 98, -25, 61, -90, 99, 73, 82, 8, 53, -2, 6, 41, -85, -95, 30, -37, 88, 62, -4, 55, 39, 73, -89, -11, -5, -64, 40, -36, -96, 75, -27, -98, -49, -66, 88, -73, 83, 70, 34, 36, -32, -82, -45, -18, -78, 84, 22, 87, 46, 94, 19, -38, 45, 30, 50, -60, 42, -33, -20, 45, -57, 52, 23, -7, 62, 11, 19, 46, -42, -70, -18, 3, -76, 13, 61, -77, -3, -17, -90, -79, -45, 28, -41], [99, -65, -90, -84, 76, -47, -28, -2, -5, -76, 98, 87, 85, -14, -17, 8, 44, -10, 90, -53, 13, -20, -92, 35, 77, -32, 21, 74, -1, -50, -90, -2, -39, -81, -10, -85, -51, 61, -11, 43, 61, -36, 8, 46, 50, 67, -45, -29, -43, -78, -6, 70, 1, -22, 5, -45, 22, -73, -94, -79, -47, -84, -5, -10, -89, 84, -19, -41, 22, 47, 79, -17, -89, -13, -70, 60, -46, -39, -92, -12, -41, 1, -42, 36, 56, 39, 68, -22, 42, 50, -1, 71, 65, 93, -61, 53, 55, 19, 88, -23, -34, 44, 60, -46, -69, 66, 90, -38, -96, 98, 49, -38, -24, 83, 74, -68, 22, 42, 10, -58, -7, 85, -87, -65, 55, -49, 64, 10], [47, 30, 87, 89, -26, 24, -57, 5, -33, -66, 43, -30, -68, -8, 8, -16, -25, -18, 16, 73, -98, -97, -85, -6, 87, -95, 5, 42, -68, -30, -70, 78, 99, 93, 45, -27, 17, 87, 54, 83, -79, -26, -70, -71, 65, 37, -10, -83, -81, -94, 67, -80, 84, 81, -10, 71, 62, 95, -10, 94, -58, -4, 49, -59, -11, -6, -10, 82, -18, -78, 42, -21, -5, 71, -15, -62, 8, 74, -69, 27, 56, 97, 23, 40, 56, -86, -12, 18, 85, 54, -11, -73, -49, -61, -56, 16, 32, 10, -1, 90, 31, -59, -53, -96, -87, 8, -82, 20, -18, -52, -76, -85, -77, 47, 54, 78, 37, -81, -27, 22, 72, 62, 25, 99, -99, 68, 16, 9, -45], [-85, 0, 86, -45, 23, 66, -56, -69, 83, 41, -11, -92, 64, 3, -70, -12, -66, 84, -98, -71, -42, 0, -99, 96, -75, -99, 96, 69, -7, 5, -75, 7, 81, 87, 38, -19, 53, 82, 11, 13, 23, 76, -3, -36, -44, 4, 52, -34, -12, 53, -6, 22, -46, -5, 18, -45, -28, -9, -75, 64, 73, -51, -52, 54, -64, 85, -87, 65, 44, 0, -45, -56, -23, 51, 8, 9, -45, -63, 75, 20, 66, -31, -58, 96, 40, 37, -48, -88, -72, -47, 52, -99, -22, 76, 32, 13, 62, 44, -45, -17, -56, 9, 4, -3, -63, 88, -93, -8, -98, 58, 88, 67, -73, -93, 41, 67, 43, 69, 55, 71, -78, -15, 48, -1, -39, -20, 88, 99, -99, -80], [-40, -78, 5, 63, 18, 41, 51, 1, -90, 52, -64, 97, -4, -37, -95, -86, -93, 47, 82, 38, -5, 80, -77, -56, -44, -16, 0, -56, -40, 1, -60, 19, 22, 44, -18, -83, -14, -90, -5, -5, 38, 30, -30, -65, 69, -26, -52, 75, 97, -92, 14, -30, 87, 13, -10, -56, 73, 89, -36, -66, -33, -19, 52, 88, -75, -88, 82, -13, -79, -46, 59, 59, 83, -71, 70, 53, -21, 94, 5, -47, -98, 95, 22, 66, 9, -88, 86, -18, 78, -50, 15, -55, 30, -32, -89, 32, -44, 69, -81, -24, -77, 77, -88, -94, 82, 81, 35, -62, 53, -59, -9, 31, -64, 89, -3, 21, 78, -17, -96, 56, 10, 18, 77, -83, 62, 64, 48, -82, 33, 44, -29], [55, -2, -18, 38, -42, -59, -50, -5, 93, -10, 85, 24, 3, 52, 98, -76, 30, -42, -96, -37, 44, -1, -83, 61, -39, 81, -14, -44, -9, -93, 3, -53, 5, 84, 61, 62, -98, -89, -66, 94, -22, 96, -4, 57, 48, -29, 57, -22, 5, 61, 17, -50, -40, 33, -89, -3, -9, -27, 29, 82, -20, -68, -94, 61, 93, 66, 0, 94, 53, 33, 66, -92, 29, -61, 64, -46, -14, 22, 31, 90, -40, -75, -60, 19, 58, -73, 92, -74, 0, 22, -92, 56, 53, -87, -6, 23, 78, 93, 18, 9, 3, -39, 16, -90, -1, -42, -37, 61, 56, 71, 51, -84, 95, 91, 11, 30, 94, 3, 56, -6, -75, 63, -73, 55, 76, 20, -22, 31, -10, 72, -83, 70], [-67, 33, 79, 8, 67, -58, -31, 23, -87, 97, 15, -91, 88, -97, 15, 82, 5, -29, -46, 7, -88, -43, -61, 64, 54, -7, -28, -79, -34, -11, 90, -25, 98, 69, 60, 42, -88, -94, -35, -99, -97, 56, 85, 67, 58, 1, 27, -60, 48, 57, 46, 59, 90, 61, 0, 44, -45, 72, 65, -3, -62, 55, 71, -64, 2, 8, 77, 13, -9, -81, -10, -30, 74, -24, -85, 9, 76, 41, 48, 24, -25, -28, -39, -35, -67, 60, 86, -13, 32, 51, 83, 69, -17, 32, 81, 84, -83, 35, -26, 7, 53, 64, 54, 4, -60, 68, 89, 92, -14, 38, -7, 60, -90, 53, -98, -81, -9, 87, 6, -77, 15, -34, 69, 98, 97, 27, 59, 91, -37, -66, -2, 92, 74], [-48, -26, 90, 96, -37, 82, -18, -99, -25, -81, 86, -94, -79, -94, -4, 84, -12, -5, -23, 53, -59, -25, 28, 68, -89, 19, -92, -79, 93, 99, 94, -77, -27, 84, -81, 13, 43, -22, -10, 95, -4, -46, -99, -7, -64, -27, -22, 23, 67, 54, -47, 85, -94, 57, 53, -84, -47, 37, -86, -76, 36, -92, -77, 86, 69, -59, -1, -11, -5, 65, -16, 91, -81, -39, -16, -46, 33, 38, 76, -22, -31, -93, -37, -49, 40, 92, -56, 93, 29, -43, -83, -58, -59, -61, -72, -90, -44, 3, -1, 28, -31, 59, 19, -36, -79, 79, 18, 30, -5, -29, -92, 63, -23, -53, 91, -82, -84, -65, 87, 44, -9, 80, 63, 31, 95, 67, 18, -72, -29, 93, 55, 16, 52, -49], [79, 72, -69, -3, -20, 2, 45, -36, -58, 98, 11, -67, 92, 3, -33, 79, -75, 34, 36, 87, -57, 31, 54, 37, 59, -98, 30, -9, 17, -41, 42, -26, -68, 72, 47, -12, -49, -8, 51, -8, -9, -61, 25, -17, 42, 68, -60, 66, -20, 75, 53, -1, 7, 7, -64, -57, 9, 42, 33, -97, -99, -25, -24, -91, -76, -99, -4, -26, -8, -52, 66, 59, -14, -32, -80, -72, -87, -41, 70, -8, -66, 23, 67, 17, -92, -97, 36, -7, 21, -30, -5, 22, 21, 48, 30, 45, 25, -96, 95, -83, -49, 38, 53, 13, 82, 72, 18, 95, -92, -12, -36, -59, 88, -68, 35, 72, -89, -29, -35, 32, 17, 36, -69, -61, -39, 60, 60, 85, 63, 32, 79, 90, -29, 32, 4], [-70, -19, 98, -75, -12, -14, -34, 5, -26, -3, -60, -77, -16, -12, -13, -84, -95, -99, -54, -80, -39, 83, 56, -53, 23, -11, -74, -9, 36, 34, 94, 65, -85, 92, 67, 2, -45, -67, -93, 6, 6, -76, 28, 89, 11, 92, 82, -8, 92, -72, -11, -47, 87, -55, -24, -12, 33, 1, 78, -31, -88, 72, -88, -74, 41, 78, 27, 72, -89, 11, -22, 16, 34, -93, 5, -55, 98, -36, 13, 67, -31, -98, -80, -44, -76, -4, 43, 56, 73, 21, -97, 85, -30, -86, 87, 87, 91, 15, 60, 78, -74, -62, -6, 36, -79, 75, 57, 95, -60, -30, 62, 8, -51, 59, 40, -28, -68, -39, -72, 81, 58, -93, 66, -71, 96, 31, 92, 64, -54, 52, 42, -52, 67, -87, 83, 64], [88, 40, 37, -95, 86, -24, -11, -65, -65, -71, 6, -57, -11, 11, -75, -52, -6, 90, -47, -9, -2, -78, -45, 43, 74, 97, 67, 18, 86, 27, -41, 74, -33, 95, 55, -69, -51, -56, -35, -40, -50, 48, 3, 15, -64, 27, 39, 29, -6, 91, 96, 92, -86, -71, 35, 64, -97, -20, -41, 88, -93, -6, 63, -49, -33, -5, -19, 15, 39, 22, 74, 65, -30, -23, -20, -18, -96, -80, 88, -25, 87, 84, -33, 77, -87, 78, 18, -85, -42, 53, -96, -35, -52, 43, -8, 14, -62, 72, -94, 53, -29, 79, -5, 18, -66, 75, 99, -86, 71, 87, -12, 35, 49, 54, -10, 61, 33, -92, 53, 67, 61, 33, -91, 85, -47, 0, -24, -10, -51, -19, -79, 20, -63, -8, -62, -53, -56], [-86, -39, -85, -98, 25, 27, 50, -20, -83, -12, 89, -99, -82, 33, 38, 50, 42, 23, -97, -81, 98, -30, -32, -44, -33, 64, -30, 58, 78, 16, 79, 91, 76, 93, 92, -21, -3, 19, 58, 13, 84, 24, 14, -98, -43, -48, 29, 75, 52, 8, 94, 27, 54, -61, 83, 97, -97, -47, 33, 80, 45, 12, 71, 22, 5, 41, -99, 79, -63, 35, -8, -79, -64, 82, 99, -31, -88, 5, -55, 63, -87, -61, -10, 44, -46, -50, 41, -44, -21, -26, -87, -75, 85, 60, 23, -32, 1, 0, -53, 38, -65, 15, 35, -53, -25, 11, 15, -14, -84, 59, -51, -94, 74, 15, 49, -72, 42, -33, -40, -79, 18, -28, -78, 3, -67, 44, 47, 10, -56, 70, -75, -45, -14, 37, 1, 60, -52, 93], [-54, -36, 52, -29, -54, 4, 62, 94, 31, -19, -62, 68, 2, 55, -83, 0, -41, -74, -55, 82, 36, -35, 53, 37, -3, -84, -26, 74, 75, 22, 67, 97, 62, -3, -55, -92, -99, 83, 78, 8, -35, -84, -47, 43, 71, -30, -57, -93, -5, -36, 65, -69, 29, 18, 45, -74, 33, -81, 99, -15, 17, 44, -18, -21, -59, 3, -37, -82, -13, -59, 2, 51, -66, 55, -29, 81, -75, 13, 87, 19, 77, 29, 27, -17, -52, -51, -15, 57, -33, -39, -57, 61, -95, 1, -83, -55, -95, -20, -61, -32, -3, 41, 95, 30, -27, -34, 11, -26, 78, -25, 69, 32, -95, -4, 91, -71, 21, -24, 85, 88, 37, -72, 26, 18, 6, 42, 40, 10, 98, 78, 77, -27, -4, 72, -97, 45, -85, -9, -81], [69, 42, 88, 2, 23, -39, -30, 51, 82, 23, 37, 47, -63, 41, -27, 54, -53, 91, -6, 33, 67, -50, -13, -60, 45, -64, -81, -9, -50, 9, -14, -80, -71, -26, -2, 51, 35, 67, 3, 17, -33, -83, -59, 3, 34, 13, -42, 58, -19, 51, -9, -52, 77, 55, -13, 23, 90, 6, 90, -59, 91, -24, -63, -80, 27, 34, 48, -38, -22, -72, 55, 45, -56, 95, -52, 54, -15, -18, 12, 65, -89, 80, -86, 87, 12, -23, 10, 2, 82, -23, 19, 51, 30, 32, 47, -43, -34, -5, -5, 21, 22, -73, -34, 42, -78, -10, -3, -17, 72, 85, -52, 82, 65, -62, 69, -23, 15, -43, 56, -26, 10, -48, -75, -60, 84, 72, -27, -73, -33, 67, 47, 89, 93, 89, 8, 91, -20, -95, -26, -71], [90, -1, -89, 32, 36, 56, 86, -49, -87, 19, 25, 0, 70, 26, 39, 31, -2, -87, 58, 42, 56, 5, 8, 27, -5, -84, -5, 51, -79, 69, 79, 87, -55, 89, -4, 57, 45, -18, -91, 35, -99, 10, -65, 48, -87, 50, -21, 11, 39, -63, -47, -4, 19, 37, 99, 90, 52, -6, 41, 49, -60, 20, 36, -16, 9, -67, -58, -69, -9, -73, 42, -8, 13, 53, -83, 25, 4, -28, -87, -57, 9, -58, 15, -95, 78, 14, 94, 31, 85, 35, -20, -75, -45, -83, -14, 40, -74, 27, 47, 16, 30, -33, 84, -57, -80, -99, 44, 0, -27, 57, 20, 58, 98, -88, 39, 77, 26, 33, -15, -12, -55, 64, 12, -24, 57, 97, 92, 59, 1, 39, -24, -92, 82, -63, -50, -97, -62, 71, -21, -13, 5], [98, -78, 3, -89, 60, -43, 13, -30, 18, -99, 14, -17, -11, 66, -83, -36, 58, 76, 64, -26, -71, 72, -43, -35, 98, -64, -21, 46, 14, 65, -49, -10, 63, 31, -23, 23, 64, 89, 69, -17, 66, -17, 42, -68, -51, 35, -5, 83, 11, -63, -42, 16, 85, -9, 81, 60, 26, -40, 7, -83, -97, 34, 6, 65, -35, 82, -34, -93, 48, -65, -11, -9, -5, -92, 0, 20, 42, 94, 4, -69, -92, 38, 46, 92, -71, 4, 53, 54, 64, -63, 47, 43, 70, -69, 8, -87, 89, 50, -81, 38, 85, -16, -94, -43, -9, 5, 76, -90, -23, -20, -60, -39, -82, 63, -46, -77, -33, 83, 76, -92, 96, 1, 50, 43, 31, -64, 55, 20, 85, 50, -65, 47, -89, -59, -96, -22, 22, 80, -12, 75, -63, 4], [-63, -68, -33, -33, -46, 11, -73, -92, 18, -77, 8, -54, 42, -61, -19, -2, 58, -57, -75, 93, 90, -64, -89, 93, 13, 9, 50, 77, -38, 87, -18, -2, -81, 25, 41, -28, -87, 67, -21, 31, 66, 63, 53, 8, -98, -66, 82, 37, -24, 84, 30, -57, -80, 17, -63, 9, -97, 86, -13, -36, 50, 45, 38, 68, -53, -21, -82, -40, -77, -27, 67, 65, -63, 20, -49, -62, 53, -67, 51, -94, 93, -42, -51, 89, 74, -38, -1, 77, -52, 62, -82, 98, 7, 56, 43, 53, -88, 60, -87, -65, -66, 79, 76, -30, -1, -73, -16, -71, -63, -64, -88, -70, -7, -40, -80, -55, 21, 18, 98, 45, -43, -84, 20, 63, 48, -36, -7, 60, -99, -17, 94, -89, -38, 70, -43, 38, 74, 41, 43, -89, 53, 54, -60], [-77, 90, -64, -56, -12, 30, -81, -66, 86, -65, 30, 26, 82, 93, -80, 19, 71, 2, 13, 81, 40, -39, -61, -45, -65, 56, 98, -78, -14, 29, -62, -15, 20, -26, 6, -92, 80, 24, -82, 67, 35, 48, -30, -5, 18, -11, -86, -11, 67, 4, -29, -15, 64, -14, 39, 75, -81, 14, 73, 4, -56, -89, 65, 40, -39, -29, 24, -58, 95, 42, 85, 30, -33, -68, -75, 84, -2, -61, -49, -35, 42, 21, 26, -17, 83, -34, -65, -98, 79, -92, -18, 99, 94, -53, 16, -44, 18, -59, -26, 13, 59, -64, -57, -74, -33, -55, -90, 64, -17, -40, -93, -98, 57, 32, -16, 17, 97, -5, -5, 54, 2, 76, 30, -4, -76, -53, 28, 41, -13, -98, -69, -54, -63, -50, -52, -19, -6, -66, -55, 53, -29, -49, 31, -95], [60, 91, 22, 57, -14, -83, -12, 87, 70, -81, -39, 93, -35, 88, 11, 28, 90, 18, 50, -96, 67, 97, -16, -61, -92, 6, 68, -22, 33, 0, -17, -7, -9, 81, -72, 54, 97, 15, 41, 44, 10, 78, 37, 51, 67, -75, -44, 34, 42, -94, 14, -13, 79, 98, 25, 87, -19, -30, -35, -86, 69, 24, -16, -62, 5, 11, 91, -20, -97, 9, -76, -10, -12, 38, -59, -68, 62, -3, 65, -18, -21, -21, 45, -41, -46, -53, -77, 34, 16, -36, 25, -14, 88, 85, 0, -30, -4, -9, 49, -25, 76, 50, 64, -36, -12, 82, -5, -73, -44, -63, -15, 34, 16, -70, 69, 46, -24, 68, -42, 92, -67, 82, -45, 97, 44, 54, -33, -60, -78, 93, -9, 97, 43, -44, -61, -92, -62, 33, -66, -7, 70, -4, -96, -37, 25], [73, -91, -98, 41, -34, 70, 50, -75, -75, 47, 68, 55, -85, 84, 76, -92, -24, 50, 27, 31, 88, 34, 45, -1, 44, -85, -31, -60, 94, 31, 42, 44, 16, 20, -14, 82, -10, -87, -93, -9, 60, 52, -77, 51, 36, 75, 35, -88, 25, -38, 19, -9, 95, -59, 89, 16, -68, -65, 33, -73, 42, -25, 70, -42, 71, -67, -83, -62, -54, -99, 28, 82, 52, 50, 33, -12, 2, -32, -23, -73, 29, 72, -6, 1, -86, -17, 93, -55, 17, 26, -29, -41, 77, -58, 17, 48, -49, 33, 85, -4, 10, -10, -22, -38, -83, -89, 50, 18, -45, -96, 22, 83, 75, -84, -39, 88, -1, -45, -89, 92, 57, -42, -48, 35, -24, 45, -40, 27, -45, -54, -77, 65, 35, -22, -73, 29, -12, 53, -53, 43, 33, 45, 3, 9, 61, 41], [-26, -40, 95, -16, -71, 29, 42, -20, -36, -82, -98, 24, 21, -43, 46, 44, 98, -42, -78, -75, 86, -14, 55, -66, -94, -12, 78, -14, 73, 16, -73, -52, 52, 98, 31, 81, 27, -50, -62, 91, -55, -60, -8, 65, -4, -62, -14, -6, -5, -16, -5, -18, 70, -73, -8, 52, 15, -53, -62, -35, 63, -36, 12, -8, -61, -79, -27, 66, -53, 11, 34, -9, 50, -74, -66, -77, -60, -4, -7, 34, 80, 64, 92, 27, 91, -39, -21, -17, -15, -6, 47, -75, 34, -63, 16, 73, -43, 66, 16, 3, -23, -50, 71, -96, -48, 81, -97, -9, -23, -28, -98, -66, -64, 71, 37, -96, -68, -83, -37, -7, 10, -89, 17, -56, -76, -66, 93, -20, 99, 9, 59, -47, 58, 30, -67, 86, -12, -65, -46, 65, 6, -67, 75, 18, -96, 13, 22], [-88, 6, 84, 5, 92, 71, -78, -87, 94, -68, -93, -26, -69, -8, -66, -40, -72, 40, -8, -86, -71, 26, -32, 70, -91, 0, 45, 27, -20, -65, -51, -9, 17, -67, 72, 9, 81, 71, 22, 75, -97, 5, -73, -66, 96, -63, -7, -76, 53, 85, -85, 81, -12, -18, 28, -3, 58, -49, -76, -85, -15, -28, -18, -97, -19, -45, -12, -61, -74, -90, 91, -72, -9, -82, -62, -12, -69, 8, -12, 60, -30, 2, 42, 57, 60, -53, -69, -5, -3, -46, 9, 59, 2, 68, 38, 60, 99, -74, 98, -75, -87, 89, -71, -20, 83, -56, 67, 90, 28, -67, 51, 97, 34, -30, 31, -28, 16, 39, 66, 90, 92, -47, 26, -28, -79, -36, -68, -80, -34, -93, -79, -45, 73, -74, 35, 56, -31, -21, 24, 73, 11, -25, 70, -77, 21, -21, -6, -86], [-82, -40, -96, 86, -11, 29, -42, 9, 69, -34, 28, -64, -50, 25, -33, -77, 51, -98, 55, 96, -42, -21, 70, 45, 30, 17, 67, -72, 72, -62, -58, 89, -25, -78, 53, 63, 28, -89, -27, -3, -46, 77, 9, -20, -20, 76, 2, -69, 54, -66, -96, -88, -10, 73, 57, 96, -32, 1, -75, -60, 39, -57, -70, -86, -36, 82, 76, 91, 69, -74, -34, 99, 80, 74, -21, -40, 50, 57, -10, 5, 68, -30, -7, -42, -56, -50, -69, 11, 28, -45, 50, -33, -26, 56, -20, 38, 15, -67, 6, -38, -41, 71, -62, -84, 46, 17, -25, -27, -49, 41, 54, -81, -89, -52, -47, -46, -26, -16, 41, -98, 15, -31, -55, 89, -98, 1, 4, 17, 34, -90, 55, 69, 58, 92, 84, 4, -14, -41, 53, 14, 76, 8, 9, 86, 32, 62, -82, 82, -77], [35, 61, 37, -96, -94, 3, -94, 7, -93, -1, -82, 93, -69, 63, 51, -77, 47, -45, 9, 82, 84, 99, 58, -8, 8, 21, -99, -30, 38, 83, -31, -26, 21, -93, -46, 26, -14, -64, -90, -7, 11, -96, -14, 41, 66, -63, 64, -10, -32, -50, -51, -48, -51, 83, 21, 33, 5, -2, -96, -80, -19, -28, -7, 78, -45, 24, 5, 41, 59, -9, -89, -29, -28, -4, -88, -85, 9, 52, 5, 76, 78, 30, -95, -96, 14, 2, 37, 95, -99, 17, 91, -42, 65, -38, -63, 97, 85, 18, 38, 44, -91, 25, -85, -43, -79, -96, -28, 6, 32, 53, -18, 11, -17, -37, -9, 73, 65, -72, 45, 42, 44, 37, 99, -13, 98, -64, -16, 83, 30, 98, 4, 16, 23, -4, 72, 43, -1, -56, -51, -92, 96, 7, 18, -43, 46, -90, -70, -12, -86, 52], [-70, 35, -11, -93, -78, -13, -58, 5, -53, 72, 3, 50, -35, -74, -54, -63, 45, 21, -19, 70, 29, -46, -46, -76, 10, 76, -67, 17, -35, -76, -31, -29, 58, 34, -23, 79, 97, 19, -39, -56, -32, 40, 70, 32, 42, -83, 45, -36, 14, -74, -89, -57, -43, -36, -56, 43, -83, -24, -40, -19, -24, 5, 52, -66, -61, -71, 89, -87, 24, -50, -44, 68, 89, -73, -23, 8, -80, 99, 71, 10, -98, 81, 53, -42, -55, 96, -98, -61, -51, -62, 19, 25, 20, -52, 35, 58, -46, 25, 71, 54, 51, -96, 0, 18, -93, 76, -74, -97, 75, 97, 13, 77, 78, -34, -88, -99, -61, 89, -61, -36, -72, 34, 65, 47, 59, -22, -18, -87, -97, -70, 66, 30, -66, -34, -52, -83, -80, -26, -80, 71, -52, 32, 25, -74, 74, 37, -97, 89, 26, -59, -70], [30, 52, 95, -23, 11, -27, 36, 23, -48, 65, -34, 58, 75, 9, -93, 69, 28, -43, 88, -24, 4, -3, 78, 6, -52, 15, 9, -86, -82, 26, -57, 25, -22, -85, 78, 88, -13, 14, -12, 15, -43, 54, -26, -91, -37, -43, 77, 67, 13, 42, -80, 93, -61, 97, -1, -14, -11, 84, -1, -16, 11, 19, -91, 88, 33, 86, 54, 97, -22, -58, 12, 34, 72, 62, 42, -65, 95, -3, 78, -15, -61, 98, -22, -22, 72, 54, 40, -38, 15, -83, 45, -74, 12, 53, 91, -55, 16, 45, -58, 93, 63, 31, 4, 36, -7, -76, 47, -34, 20, 26, 50, 58, 1, -94, -87, -27, 59, 30, 11, -26, 23, -44, -23, -65, -91, -32, -21, 2, 89, -2, -5, 29, -71, 76, -35, -2, 99, -87, 63, -4, 15, 14, -69, 92, 19, -79, -58, -45, 27, 53, 5, -50], [-91, 81, -39, 94, -74, 39, -4, 91, -86, 67, 21, -58, 20, 85, 40, -4, 74, -20, 91, -34, 70, 99, -65, -11, -80, -23, 20, 46, -93, -74, 72, -85, 83, -67, 85, 86, 48, -42, 77, 62, -74, -25, 80, 45, -39, -3, -58, -88, 77, -90, -45, 47, -91, -11, -86, -95, 42, 10, 27, 48, 35, -1, 40, -4, 8, 25, -18, -43, 83, -41, 95, 85, 34, 75, 7, 71, -27, 48, 59, -73, 35, 90, 73, 20, -43, 63, 2, 98, -26, -71, 47, 85, 5, -13, -19, -87, 88, 62, -54, 71, 98, -82, 56, 9, 70, -36, -43, -57, 88, 92, -54, 0, 83, -81, -79, -60, 59, 22, -85, -67, 27, 38, 94, -68, -98, -24, -78, 90, -85, -56, 61, 89, -38, -5, -25, -68, 35, 8, -49, 23, 1, -4, -76, -39, -9, -79, -23, -50, 19, -32, -41, -54, -93], [-69, -45, -92, 6, -24, 97, -3, -4, 36, -36, 57, -69, 38, 65, 65, -53, -84, -35, 24, 11, -35, 61, 79, -15, -85, -94, 80, -18, -58, -73, -35, -28, -42, -27, 54, 10, -53, -49, -94, 59, -9, 63, 66, -93, 5, 8, -47, 21, 73, 53, -91, -85, -9, 64, -23, 5, 70, -43, 63, -88, -40, -71, -40, 17, -22, -86, -73, 24, -59, -90, -16, 32, 49, -50, 38, -46, 58, 67, 51, 8, -3, 37, 22, 64, 1, 98, -31, -29, -44, -91, -41, -8, -63, 18, -90, 14, 8, -87, -84, 49, 98, -24, -42, 47, 25, 72, -98, -40, 39, 29, 67, -87, -34, -33, 76, 67, -35, -78, -85, -3, -70, -26, 89, -56, 68, 75, 34, -23, 64, 26, -97, 63, -98, -40, -13, 4, -68, -35, 63, 47, 94, 8, 36, -40, 74, 12, -73, -84, 10, -58, -10, 16, -8, -21], [59, -40, -69, -29, 13, 71, 96, 15, 11, 75, 74, 98, -21, 82, -37, -58, 29, -43, 26, -35, 17, 0, 53, 20, -7, -37, 38, 82, 79, -70, -62, 15, -33, -55, 62, 79, -84, 36, -5, 27, 11, -31, 2, 89, -48, 64, -92, 57, -78, 34, 99, 15, -89, 52, -88, 3, 92, 50, -38, 48, 56, -24, -37, -77, 20, -97, -97, 13, 38, -26, -83, -51, 19, 18, -85, 47, -18, -78, 5, -20, 55, 4, 71, 66, -67, 83, -54, -75, 10, -15, 49, -34, 60, 89, -11, -42, 91, -32, 70, 29, 41, 86, 54, -40, -19, 68, -92, 39, 89, -11, -80, 22, 69, 67, -12, -98, 50, 10, -96, -63, 94, 52, 3, 32, 41, 91, 89, 9, -64, 36, -62, 76, -1, 68, -87, 79, 36, -80, 18, 3, 8, 14, -75, -23, -41, -11, -44, 85, 75, -64, -77, 47, 64, 25, -21], [-17, -7, -32, 91, 28, 80, -93, -19, -21, 74, -7, -42, -12, 13, 52, 67, 97, -56, 91, -48, 2, -43, -16, -13, -68, 19, 9, 78, -17, -66, -66, 65, 26, -22, 34, -69, -42, 40, 11, 36, 14, -95, 70, 78, -6, 0, 45, -32, 43, 13, -4, -55, 69, 79, 31, 78, -2, -82, 33, 58, -72, 67, 0, 31, -55, -66, 61, 3, 73, -50, -84, -35, -69, 63, -80, 24, -37, 65, 68, -94, -22, -35, -73, -75, -79, 34, -97, 19, 51, 35, -46, 79, -21, 30, -13, 24, 64, -52, -96, 14, -3, 95, 55, 27, 58, 75, -72, 97, 17, 73, -97, 71, -62, -94, 95, -42, 40, 74, 53, -32, -13, 83, -76, 65, 14, 10, -34, -22, 35, -54, 68, -91, -58, 24, 13, 76, -24, 40, 74, 92, 13, 53, 63, 27, 59, 36, 62, -24, 10, -8, 20, 73, -24, 44, 16, 89], [-69, 81, -56, 65, -72, -88, 51, -54, 12, -36, 98, 87, -96, 72, 56, -6, 3, 20, 97, -38, -67, 59, 14, 19, -48, -66, -7, 27, 54, -91, -7, 85, 66, 36, 27, 70, 24, -45, -84, -86, 18, -85, -99, -1, 63, 57, 92, -34, -46, 66, 4, -14, 26, -82, -95, 54, -48, -26, -42, 82, -18, 50, 44, -74, -37, -51, 95, 63, 3, -88, 76, -78, -97, 54, 20, 65, -12, -11, -91, 41, -45, 12, -96, 57, 30, 84, 11, 58, -41, 45, 40, 17, -5, -38, 42, 34, 10, 38, -2, -87, 26, -26, -89, 5, -72, 7, -30, 15, 72, -45, -67, -95, 67, -87, 61, -26, 74, -50, -68, -67, 94, 48, 26, -33, 86, -54, -99, -4, 60, -2, -14, -14, 49, -27, 90, 76, 80, -63, -31, 52, -8, -22, 56, -64, -32, -5, 9, -58, 21, 40, -26, -8, -35, 76, 58, -48, 98], [59, 24, 58, -43, -90, -79, -94, -17, 87, 59, -60, -75, -95, 68, -7, -41, 25, 28, 26, 96, -63, 67, 17, 53, -82, -91, 94, 94, 44, -77, 69, 3, 47, 28, 36, 33, 48, 19, -84, 36, -45, -68, 37, -41, -99, -70, 17, 2, 34, -56, -2, 47, 87, 91, 0, -94, 76, -29, 76, -3, -6, 45, 99, -59, -27, 13, 50, 98, -68, 43, 11, -14, 74, -52, 21, 74, -46, -85, -24, 64, -65, 50, 11, -77, 18, 87, -95, -28, -42, 80, 68, 28, 2, 45, 45, 52, -42, -4, 50, -34, -61, -62, 28, 89, -15, -51, 64, 15, -60, -83, -44, -25, 44, 66, -26, -61, 30, -22, 10, 64, -42, -44, -7, 59, -99, -85, 11, -42, -13, -62, 23, 25, -25, -72, -8, 36, -24, -67, -72, -8, -74, -17, 66, 69, -74, -60, -91, 55, 17, -5, 20, 51, 50, 89, -12, 50, -96, 75], [84, -32, -86, -16, 69, -35, 11, -39, -98, 63, -7, -71, -44, 19, -11, 98, -35, 14, -61, -50, -30, 32, 45, 66, -16, -5, 55, 71, -77, 35, 46, -93, -97, 36, -9, 72, -98, 78, -90, 79, 42, 3, 84, 74, 98, -27, 72, -37, 87, 87, 13, -66, 20, -42, 99, 80, 29, 31, 28, 51, -57, -49, 35, -77, 87, -74, 94, 65, 80, -96, 44, 22, -17, 5, -27, -19, 78, -54, 44, 42, -67, -66, 52, 29, -9, 28, 9, 96, -41, -63, 48, -22, -12, -40, 0, -25, -38, -29, -83, -58, -48, 60, 41, 34, -58, -86, 92, 96, -64, 36, 38, -31, 46, -33, 97, -63, 94, 7, -90, -70, 20, 34, 8, -92, 93, -92, -41, -45, -21, -25, -3, 7, -88, -62, -59, -46, -72, -67, -50, -36, 45, 65, 32, -9, -91, 6, 4, -96, 89, 14, -67, 10, -52, 17, -6, -58, 2, 53, -4], [80, -95, 69, -36, -83, -93, 4, -53, -65, 14, -27, -2, -41, -62, -93, 50, -53, -11, -69, -73, -21, 44, -64, 65, 69, 53, -41, -89, -45, 88, -17, -88, 93, -47, -25, -90, -64, 78, -67, -53, -8, 5, 21, 28, 20, 27, -45, 66, -83, -15, 69, -28, -93, -95, -86, 75, 57, -28, 62, -88, -62, -55, 99, -69, -26, -26, -83, 10, -70, -51, 56, -2, 53, -45, -74, -50, 81, -20, -84, 74, 42, 61, -77, 48, 66, -64, 23, 23, -15, -15, 12, 22, 29, 11, 52, 80, 62, 45, -33, 91, 70, -77, -11, 0, -46, 15, 50, -64, 71, 65, 86, 13, 27, -90, -39, -30, -78, 60, 69, 6, -55, -19, -72, 51, 69, 56, 31, 31, 1, 97, 22, -29, 96, -89, 71, -49, 2, 21, -37, -49, -37, -74, 63, 66, -65, -98, -64, -66, 61, -94, 39, -93, -37, 67, 34, -68, 23, -35, 39, -98], [-61, -39, -51, -88, -51, -80, -61, 27, 17, 1, 77, 57, 27, 41, 0, 38, 19, 36, 71, -20, 18, -12, -37, 57, -45, 96, 66, 54, -62, 5, 32, -47, 43, 81, -35, 91, 77, 3, -5, -28, 81, -27, -71, -15, 90, 28, -77, 9, -59, 71, 88, 35, -41, -48, -30, -10, -75, -64, -79, -37, 17, 53, 15, -40, 11, 56, -72, -35, -40, 23, 36, -59, 95, 41, 2, 85, -53, 24, -6, -13, -28, -41, 99, 7, -13, -31, 73, -11, -19, 71, 28, 97, 1, -80, -42, -88, 76, -15, -24, -87, 84, 89, -70, 79, 30, 31, 41, 76, -68, -88, -59, 4, -52, -60, 87, 34, -15, 38, 99, 65, 9, 27, 62, -90, 47, 96, -79, 23, -41, -27, 35, -57, -38, 64, 99, 69, -5, 40, 45, 26, 29, 62, -93, 76, -98, 71, -13, -37, 9, -13, -72, -82, -86, 67, -73, 60, 63, -76, -40, -78, -27], [94, -58, 12, 35, -59, -19, -70, 57, -97, 33, -14, 65, 16, -61, 43, -13, 3, 83, 95, 89, -89, 89, 79, 54, -84, 17, 18, -84, 76, 16, -34, 48, 57, 77, -17, 74, -65, -10, 9, -63, 99, 94, 78, 15, -89, -1, -97, 13, -18, 74, -21, -31, 64, -42, -76, 56, 51, 18, 49, 28, -66, -85, -24, 68, 91, 35, 42, -74, -98, -49, -61, -99, -77, 94, 16, -90, -30, -5, -1, 51, -54, 77, 96, 86, -88, -80, 43, 63, 37, -31, -32, 48, -17, 43, 16, -49, -45, -65, -47, -43, -37, -9, -43, -38, -38, 49, -29, 31, -79, 69, -41, -33, 23, -44, -47, 34, -48, 72, -26, 66, -59, 41, 14, 0, -39, -93, 50, 16, -82, -97, 49, -20, -29, -94, 18, 9, 32, 88, -82, 52, 34, -24, 95, -66, 8, -51, 68, 60, -79, -81, 26, -61, 60, -83, 38, -79, -77, -34, 13, -60, -55, -38], [-3, -8, -32, -85, -98, 76, 80, -81, 28, -9, -29, 24, 25, 79, 49, -30, 16, 46, -12, -81, 84, -52, -65, 0, -54, -66, 42, 58, -50, 86, -79, 23, -44, -35, 38, -66, -59, -5, -71, 45, 85, -1, -31, 10, -45, 94, 56, 70, 41, -55, 65, 2, -31, 99, 78, 14, -90, 20, -50, -63, -16, -30, 59, 39, 11, -3, 72, 51, 68, -99, -27, 54, -1, 19, -59, 31, 13, 97, 1, -46, -81, -33, 33, -36, -57, 11, 55, -70, -91, -95, -34, -8, -49, -75, -69, 61, -1, -97, -11, -33, 79, 61, 97, -45, -20, -61, 85, 70, -87, -36, -99, -92, 7, 33, -29, 49, -78, -74, 55, -70, -93, -79, 21, -43, -77, 28, 94, 21, 7, -17, 64, -14, -78, 62, 40, -22, 77, 3, -52, 66, 66, -74, 73, -27, 58, -56, 98, 56, -53, 54, 85, -47, 51, -17, -13, 73, -89, -19, -6, 17, 41, -41, -97], [39, 97, 20, -83, 74, 99, -58, 40, 65, -33, -10, -85, -98, 10, 89, 58, 56, 43, 43, 86, -28, -73, -27, -55, -86, 30, 16, 31, -29, 74, 10, 86, 48, -93, -96, -1, -94, -78, -84, 70, -12, 5, 61, -34, -85, 51, -76, 48, -29, 44, 34, 42, 47, 83, 87, 60, -10, 3, -9, 38, -46, -98, 24, 78, -92, 27, -23, -86, 25, -8, 60, 89, 73, 22, -44, 87, -50, -21, 12, 20, 99, -77, -37, 46, -94, -73, 7, -27, 6, 74, -89, 36, 52, 34, 14, 60, -61, 90, 50, 63, -41, -13, 53, -91, 85, -91, 95, -65, -36, -15, 32, -59, 7, 71, 86, -10, 97, -7, 62, -20, -55, 72, -84, 96, 6, 29, 33, 44, -4, -40, -15, 31, 47, -62, 39, 9, -77, 11, 44, -37, 95, -24, 3, -20, -53, -33, 69, -79, 36, 8, 0, 80, -43, 15, 77, 62, -79, 10, -16, 16, 70, 45, -76, -6], [59, 62, -97, 81, -27, 23, -79, -54, 98, 1, 25, -78, 67, -6, -81, 3, 78, -5, -16, -65, 86, -62, 73, -93, 47, -66, -1, -6, 78, 22, 87, 37, -16, 90, -5, 34, 13, -7, 79, -11, 93, 4, -13, 37, 74, -17, -60, 29, 77, 0, 63, 64, 14, 13, 47, -61, 47, -53, 32, 2, 68, 20, -60, -70, -13, 11, 40, 76, 80, 19, -35, 73, 99, 29, -13, 50, -88, 4, -21, 65, 80, -58, 29, -5, 54, -23, 33, -22, 0, -35, 80, -55, 61, 96, -26, -52, -16, 90, -98, -35, 9, -57, -85, -15, 71, 2, -65, 59, -94, 13, 25, 85, 31, -46, -43, -14, 7, 89, 63, -93, -68, 20, -48, 92, 16, 2, -82, -99, -7, -81, -35, 78, -39, -21, -36, -90, 57, -25, 68, 39, 88, -30, 2, 19, 1, 58, 81, -92, 48, 22, 91, 79, -58, -80, 48, 35, 21, 65, 35, 90, 60, 76, 46, 98, -68], [86, 84, 66, -39, 52, 5, -51, 99, -93, 45, 0, 65, 3, 7, -10, -75, -25, -31, -56, -6, 93, 55, 92, 36, -33, 59, -4, -57, 5, -29, -49, -9, -45, -83, 52, 84, -1, 77, 83, 5, -1, -17, -53, -97, 66, 36, -96, -81, 81, -76, 12, 75, 78, -19, 11, -55, -59, 83, -36, 45, -68, -8, -86, -14, -15, 65, -53, 83, 19, -93, -11, -81, -11, 12, 97, -67, -51, -99, -72, -70, -98, 39, 81, 79, 97, -8, -98, -62, -47, -58, 59, -16, 33, 72, 46, -81, 14, 93, -98, -66, 99, -33, -71, -34, 79, -74, -25, -72, -97, 2, -66, -96, -82, -84, 60, -85, -16, 61, -71, 13, -97, 65, 96, 13, 14, 20, 31, -94, -10, 32, -84, -34, 76, -56, 8, 55, -54, 82, 59, -52, -39, 69, -71, -21, 61, 65, -30, -54, 26, -24, 58, 5, -82, 32, 94, 8, -71, 25, 13, 18, -65, 28, 83, -89, 48, -31], [42, 93, -49, -22, -81, -11, -76, -76, 44, 85, 88, 90, -69, -9, -34, 65, 95, -40, -26, 67, 68, 2, -8, -42, 96, 3, 86, 57, 13, 11, -74, -68, 5, -47, -14, 0, 41, 10, 23, -15, -5, 11, -24, 2, -98, 18, -56, 73, 55, 18, 40, 23, 96, -67, 57, 93, 35, 20, 27, -74, -68, 52, -66, 36, -95, -3, -87, 46, -93, 35, -92, -22, -54, -17, 79, -76, 78, 99, 96, 33, 17, 14, -67, -9, 23, 89, -39, -65, 10, 87, -40, 41, 16, -29, -46, 20, 67, -34, -57, 50, 77, -49, -72, -77, 10, 83, -54, -12, 82, -81, -79, -23, 32, -70, 44, -45, -80, -95, -10, 6, 68, 26, -53, -16, 73, -23, -96, 40, 19, -76, -33, -4, -26, -6, -5, 83, -46, 17, -51, -63, 35, -54, -10, -55, -24, -66, -1, -28, -62, 65, 77, 82, -8, -99, -34, -58, -23, -54, 82, 95, -31, -74, -32, 19, 20, 62, -20], [50, -21, 28, 86, 90, 50, -24, -65, -74, 9, 11, -3, 23, -24, -26, 5, 44, -49, 47, 86, 27, 93, 45, -1, -61, 47, 43, 58, -56, 5, -85, 94, 60, 42, 80, 51, -31, -66, 62, -5, 19, -27, 68, -57, 26, -80, 24, -53, -30, -28, -90, 74, -58, 31, -50, -20, -21, 93, -85, 22, -25, -71, 16, -64, 47, -26, 63, -83, -16, 25, -12, -97, 75, -44, -55, -22, -48, 69, 1, 22, -82, 11, -27, -41, -81, 22, 38, -3, -8, 53, 96, 67, 58, -11, 79, 6, 39, 42, 22, -77, -56, -90, -74, 95, -58, -53, -27, -6, 92, 74, 92, -90, -38, -58, -32, -20, 40, 83, 54, -67, 13, 50, 99, -29, -84, 55, 76, 55, -3, -25, 77, 17, -39, 79, 13, 3, -73, 62, 73, -81, 13, 42, -71, 51, 83, -27, -68, 23, -44, 62, 32, 68, -11, 31, -83, 4, -14, 92, -64, 59, -32, -86, -46, 28, 92, 66, -92, 95], [5, 80, -85, 95, -1, -57, 46, -18, -8, 77, 82, 48, 16, 14, -7, -95, -77, 9, 9, -15, -21, 44, -78, 23, 34, -25, -72, 4, -82, -64, -1, 22, 92, 13, 17, -31, 32, -59, 50, -75, 94, 9, 49, 11, -76, -81, 15, -54, 28, -99, 30, 83, 45, 28, 6, -44, -97, 10, 59, -80, 45, -64, 19, 15, 25, -87, 83, -42, -47, 10, -41, -52, -80, 84, 58, -80, -97, -50, -35, 7, -49, 71, -10, 72, 0, 72, -72, -21, -17, 64, -1, -95, 99, -82, -4, 24, -70, -21, 58, -40, 66, -83, 7, 62, 77, -58, 81, 80, -9, -77, -13, 18, 70, 54, -10, -53, 26, 18, 26, -91, -18, -75, 90, -42, -81, -14, 81, -75, 42, 40, -16, 8, 33, 67, -53, 11, -91, -72, -32, -23, -73, 54, 94, 96, -15, -15, -56, -88, 79, 69, 96, -62, 70, 86, -5, 65, -27, -47, 89, 91, 69, -26, -1, 3, -82, 45, 90, -73, 49], [-42, 3, 75, -88, -26, 71, -26, 35, 91, -15, 14, 37, -42, 51, -16, -78, -77, -51, -29, -24, -84, -38, -55, -34, 37, 24, -17, -41, 14, 9, 84, 71, 88, 59, 60, -60, 7, -66, 74, -24, -5, -11, -87, 29, -83, -3, 50, -83, 22, 97, -8, 37, -41, 13, -97, 72, -85, -14, -69, 28, 71, -85, -23, 37, 50, -86, 76, -65, -53, 50, 10, 18, -84, -1, -76, -90, 72, 51, -74, -5, 48, -6, -91, 84, -93, -88, 56, -79, -26, 64, 26, -55, 55, -97, 58, 6, 92, 34, 40, -84, -38, -73, 33, -46, 25, 33, -37, -2, -16, -12, 92, -67, 81, -99, -83, 65, 88, 49, 62, -38, 13, -12, -16, -54, -33, -81, 51, -41, 53, -32, -26, 91, -6, 83, -55, -81, 17, 8, -7, -99, 72, -38, -90, 54, -60, -97, 19, -72, 52, -19, -33, -58, 46, 27, -13, -87, 45, -62, -51, -25, -18, 22, -34, 52, -17, -12, 48, 99, 72, -59], [76, 44, 3, 86, -2, 42, 88, 93, 46, 17, -25, -87, 59, 97, 16, -54, 86, -61, -39, -65, 13, 42, 34, 56, -28, -83, -56, -80, 92, -84, -40, 45, 59, 62, 31, -65, -19, -3, -72, -72, -86, -21, -83, 72, -24, 10, 95, -37, 48, -67, -26, -39, 51, -92, -83, -77, -99, -63, -58, 69, -71, 2, 15, 65, -59, -77, 99, 22, 19, -96, 26, 10, -17, 42, -41, 35, -71, -46, 74, 76, -14, -51, -62, -62, -67, -69, -63, -66, -55, -21, 79, -27, 80, -6, -62, -79, 17, -86, 19, -87, -82, -55, 22, -23, 64, 81, 88, 92, -88, 63, 69, -25, 88, 83, -11, 97, -86, 25, -92, -65, -96, 87, 8, 60, -19, 45, 81, 74, 36, -23, 87, 53, 22, -14, -70, -37, -56, -82, -45, -44, 57, -99, 7, 22, 60, 72, 20, 51, -3, 27, 85, -22, 14, -7, -62, 72, -84, 95, 46, 51, -27, 33, -19, 71, 96, -13, -66, -60, -19, -35, -5], [-61, -57, 78, 60, -97, 50, -43, 30, -75, 84, 16, 2, -2, 85, 16, -30, -99, 12, 93, 28, 61, 3, -91, 9, -1, -5, 19, 39, 76, 60, -89, 91, 79, 89, 28, 59, 16, 85, -11, 40, 69, -95, -81, -56, 67, 35, -9, 67, -76, -16, -27, 61, 86, -19, -30, -14, 53, 65, -98, 6, 25, -88, -3, 5, 77, -75, -36, -6, 86, 52, -89, 55, 34, -70, 76, 1, 64, -33, -55, 64, 27, 17, 25, 13, 75, 71, 75, 5, 36, 53, -89, -39, 42, -16, 42, 19, 8, -94, 89, -5, 35, -99, -73, -54, -93, -97, 23, 70, -54, 44, 11, 72, -61, -64, -14, 90, 83, -62, -5, 19, 91, -18, 56, 33, 65, -1, -71, -27, -19, -81, 44, 92, 95, 48, -85, -98, 50, 37, 48, 96, -41, -64, 68, -3, -52, -69, -13, -69, -54, 81, 26, -86, -37, -18, 46, -95, 57, 51, -23, -84, 46, 98, 84, 41, 46, 99, 19, -27, 13, -56, -31, 71], [-21, -85, -55, 26, -78, 31, 56, -33, -11, -18, -43, 28, 41, 79, 32, -25, 31, 86, -33, -23, 84, -48, 95, 7, -72, -9, 79, 17, 35, -74, -34, 90, -83, 10, 17, -85, -58, -50, -18, 7, 9, 15, -64, -73, -5, 44, 1, -74, 30, 68, -21, -9, 96, -49, 97, -76, 42, 54, 17, -46, 79, 82, -79, 72, -7, 37, 86, 11, 64, -55, 94, -50, 60, -70, -24, -45, 74, 53, -20, -19, -2, 35, 72, -6, 86, 69, -6, 5, 23, 88, 58, -21, 70, 55, -49, -60, -30, -62, 27, -66, -41, 22, -17, -81, 51, 35, -27, 2, -35, 29, 83, 63, -58, 55, -66, -72, 1, 5, 9, -98, -7, -56, -20, -60, 98, 8, -20, -32, 22, -93, 1, 80, 28, 60, 99, -43, -28, -51, 35, 37, 55, -5, -23, 73, -73, 10, -99, 28, 91, -14, 29, -16, 29, 85, 24, 27, -7, 80, 95, 91, 86, -27, 72, -8, -89, 48, 25, -18, 73, -63, 95, 5, 32], [-28, -22, 58, 59, -45, -37, 50, 40, 68, -88, -31, 54, 12, 73, -76, -8, 45, -84, -45, -82, 87, 23, -95, 12, -52, -36, -15, -15, -41, 90, 93, 8, -55, 51, -33, 0, 91, 93, -83, 59, -95, -14, -10, 16, -64, 14, 84, 80, 6, -60, 74, -30, 62, 79, 81, 87, -80, -57, -51, -22, -90, -58, 62, -45, 69, -71, 31, 60, 99, 47, -3, -96, -90, 86, -3, -55, -23, -19, -98, 82, 20, 76, -48, -40, 32, -67, -76, 51, -47, -51, -94, -38, -10, 68, -7, -64, 73, -76, 73, 72, 48, -30, 76, 57, -67, -27, 79, 10, 30, 80, -8, -72, 56, 21, -13, -35, 30, -13, -84, 82, 35, -78, -78, -98, 89, 14, -63, 39, 15, 86, 12, -37, -67, -35, 96, -34, 14, 75, 75, -56, 56, -56, -29, -11, 64, 34, 31, -5, -79, 46, -46, 32, 44, -25, 33, 10, 66, 47, -50, -42, 33, 38, 20, 66, -97, -7, -91, 16, -31, 60, 36, -98, -96, -92], [-33, 45, 18, 97, -83, 39, 21, -30, -52, -35, 22, 81, 52, -35, 28, 78, 22, -62, 16, -58, 80, 18, 11, 88, -89, 79, 48, 46, 57, 29, 53, -75, -49, -51, 98, -33, 87, -4, 13, -88, 38, -88, 92, -10, -24, -3, -32, 97, 35, 83, -84, 15, -22, 27, -19, -12, 6, -71, -66, -59, 34, 64, -58, 84, -87, -60, -49, 76, 13, 41, 87, -49, 52, 57, 17, -71, -46, 84, -97, 65, 44, -81, -19, 98, 45, 61, -14, -72, 66, -4, -55, 1, -63, -14, -15, -51, 3, 13, -98, -84, -46, 89, -57, 82, 23, 59, 87, 76, 43, 90, 42, -36, 85, 99, -38, 30, 37, 24, 34, -20, 96, 79, 80, -66, -35, -57, -18, 44, 32, -39, 59, 85, -73, -98, 44, 49, 37, 32, 2, -43, -1, -79, 20, -16, 96, 58, -86, 33, -41, 24, 90, -44, -20, 47, -11, 22, 89, 47, -34, 21, -92, -97, -17, -66, 80, -95, 59, 18, 36, -38, 74, -65, -18, -5, 18], [-21, -70, 8, 88, -11, -91, 55, 21, -11, 3, -90, -89, -8, 33, -24, 90, 18, -22, -50, 28, -64, -46, -12, 53, 66, 26, 27, -99, -92, 98, -5, -37, -94, 79, -71, -29, 88, 83, 91, -46, -14, 77, -36, 55, -13, 16, 22, -95, 71, 71, 33, -93, -97, 97, 59, 68, 23, -37, 46, 7, -38, -59, 70, -33, 97, 75, 37, 62, 58, 5, -84, -78, -41, -44, 53, 45, 71, -25, 50, 42, -77, -17, 48, -75, -20, -16, 93, -97, 47, 39, 9, 85, 56, -44, -48, 30, -69, 65, -8, 66, -53, -16, 64, 5, 39, 17, -50, 11, 91, 99, -47, -86, -41, 78, -84, 15, -38, -91, -6, 85, 24, -96, 70, -43, -64, 98, 87, -56, 63, -44, 86, 86, 40, 50, -9, -44, -33, 41, 66, -65, 17, 96, -75, 76, 51, -60, -32, -87, -75, 62, 75, 25, 65, 45, 82, 77, 44, 46, 97, -16, 78, 83, -29, -5, 33, 61, 51, 76, -21, 17, -89, 73, -10, -87, 49, -59], [-48, -83, -69, -23, 55, -94, 78, 20, 50, 37, -25, -6, -17, -28, 78, -61, -44, -51, 33, 65, 86, -39, 42, -57, 55, 29, -84, -55, 41, 41, -14, 93, 34, -7, -53, -10, -2, -75, 86, -75, 62, -39, 19, -78, 10, -26, -63, 65, -1, 70, 7, -38, -92, -51, 4, 62, 55, 19, -92, -4, -63, -30, -34, 71, 62, -11, -39, -63, -9, -53, -39, -70, -15, 56, -72, 94, -93, -35, 36, -18, -88, -57, 44, -81, -31, -75, 58, -99, 21, 65, -27, 57, -88, 16, 5, 50, -95, 65, 86, -28, 89, -76, -22, -26, 57, 6, -55, 63, 47, 80, -77, 35, 99, 66, 30, -55, 67, -12, -55, -12, -70, 18, -77, -59, -66, 27, 90, -85, -30, 53, -36, -41, 54, 41, 9, 11, -76, 53, -49, 47, 10, -27, -18, -14, -84, 89, 31, 60, -23, 52, -75, 7, -53, -53, 24, -20, 74, -8, -28, -79, -55, 12, -21, 98, -70, 87, -14, -46, 17, 14, 77, -96, 63, -63, -11, 56, -74], [96, 16, -21, 49, 40, 85, 72, 87, -13, -47, 38, 78, 1, 35, -77, 89, -86, 98, -81, 77, -39, -51, -29, 74, -73, -26, 38, -37, 39, -6, -35, 36, 86, 43, -38, 26, 6, -66, -10, 92, -37, -95, 70, 40, 39, 69, 29, 29, 44, 48, -17, -94, 96, 53, 79, 99, -73, -6, -61, 43, 64, 3, -21, 50, -76, 17, -46, 29, 27, 20, 21, 67, 2, -32, 7, -82, -63, -86, 47, 81, 38, -70, 63, 11, 83, 19, 11, 86, -86, 49, 29, 54, -70, 84, -18, -47, -22, 12, 81, 82, -68, -21, 49, 10, 23, -67, 28, 36, -54, -25, -6, 83, -19, -43, -5, -59, 76, 82, -95, 66, 8, 10, 20, 37, -5, 78, 89, 49, -10, 47, 31, -1, -97, -20, -91, 25, -10, 13, -38, 35, 64, 55, -4, -54, 89, 67, -37, 65, 49, -33, 31, -43, 77, -72, 71, -51, 83, 60, 74, -50, -15, 6, 48, -36, 62, 34, 89, -48, -53, -72, 64, 88, 59, -63, -66, 48, -96, -27], [-10, 52, 40, -79, 85, -6, -74, 56, 19, 85, -6, -7, -65, 55, 75, 60, -81, 15, -29, 84, 66, -6, -88, 7, -18, 71, 43, -8, -4, 46, 65, 86, -25, -18, 83, -62, 52, 85, 70, -29, 70, -36, 40, 82, 95, 16, 42, -85, -69, -87, 98, 73, -17, 87, -42, 65, 58, -99, -43, -69, 24, -78, -83, 98, -20, -99, -87, -68, 85, 83, 2, 33, -76, -80, 15, -80, 12, -43, -89, 42, -54, 85, -8, 28, 72, 49, -30, 7, 27, 27, 38, -49, 25, 54, -74, 82, 54, -61, -86, 17, -78, -7, -50, -78, 12, 64, -59, -76, 97, -72, 42, -57, -86, -89, 47, 85, 60, 94, -7, -13, -2, -69, 14, 99, 61, 39, 81, 16, 77, 95, -90, 75, -35, -41, 97, 53, -77, -85, 53, 96, -57, -5, -84, -67, -18, 62, -82, -58, 33, -13, 5, -69, -6, 95, -69, -44, 35, -88, 48, 12, 83, 57, -35, -75, -84, -61, 77, -85, -47, 30, -89, -28, -98, -74, -19, -16, 64, -1, 2], [-2, 62, 84, 5, -43, 79, 35, 12, 14, 24, -63, -96, -16, 93, -32, 9, -91, 6, -14, 99, 35, -83, -90, 84, 94, -65, -35, -22, 75, 40, 80, -27, 3, 41, 78, 36, 20, -10, -75, -65, -86, -39, -85, -2, -46, -41, 83, -61, 64, -31, -62, -24, -38, -76, -40, -43, -42, 25, 11, -90, -58, -32, -40, 44, -91, -62, -43, 29, 4, -19, 40, -5, 18, 54, 69, 71, -87, 52, 86, 53, -79, -76, -71, -40, -53, -34, 16, -19, 67, -73, -9, -91, -28, 50, 30, -20, 64, 86, -91, -32, -55, 48, 39, 62, -21, 8, 11, -9, -40, -3, -79, -19, 21, -73, 40, 44, -8, -67, -74, -64, -64, -7, -79, 7, -80, 50, 87, 83, 14, 72, -72, 35, -2, 67, -26, 76, -25, 84, -55, 35, -18, -35, 92, 79, -9, 9, 0, 59, 18, 25, 94, 53, 94, -84, -39, -86, 42, -75, 73, -67, 96, -98, 67, -6, 45, -58, -52, 96, -97, -8, 31, -39, 33, 0, -60, -98, 85, 40, 37, 3], [-58, 9, -43, -63, 1, -6, -73, -57, 18, -99, -47, -9, 78, -80, 62, 23, -62, -90, 19, -82, -22, -72, -22, 87, 4, 18, 88, -10, -65, 26, 92, -47, -88, -74, -34, 12, 19, -7, 31, -86, -30, 83, 5, -52, 80, -33, 70, 94, -47, -34, -88, 30, -30, -10, 17, 74, 84, -17, -59, -81, 85, -67, -29, 96, -41, 14, 8, 54, -93, -61, 68, -24, 99, -50, 0, 79, -7, -53, 73, 45, 12, 62, -48, 82, -48, 68, 33, -64, -72, 73, -69, -87, 82, -22, 85, -59, 91, -7, 72, 74, 9, 17, -73, -15, 66, 26, -36, -41, 72, -86, -96, -15, 52, -45, -56, -96, 99, 53, -84, -72, 26, -77, -83, 8, -22, -97, 26, -31, -28, -25, -79, 57, 91, -53, -58, 57, 73, -18, -84, 22, -27, 95, 83, -75, -73, -73, -94, -97, 56, -79, -93, -18, -79, -76, 67, -2, -97, -30, 66, -26, 44, 63, -68, 12, -89, -50, -31, 60, 32, -39, -18, -95, -67, -34, -71, -41, -31, -66, -62, -74, -68], [-55, -16, -48, -32, -72, 49, -53, -3, -8, 20, -82, -44, 28, 6, -57, 78, 74, -97, -13, -88, -39, -9, -79, 26, -4, -21, 72, 30, -6, 97, 38, 38, -19, 89, 82, -14, 15, -71, 82, -93, 25, 77, -61, -69, -17, -42, 85, -65, -40, -28, -77, -2, 62, -56, -76, -65, -1, 95, 64, 92, 69, 2, 30, -72, -32, -11, 13, 82, 17, -28, 66, -80, -51, 81, -50, 9, -60, -65, 20, -24, -17, 42, 73, -78, 85, 74, -44, -38, 46, -79, -46, 16, -1, 61, 20, 44, -50, -67, 3, 67, 4, -54, 63, 30, -72, -87, -84, -56, -76, 35, 19, 6, -46, -30, 27, -83, -56, 82, -22, 89, 79, 8, -18, -44, -31, -98, 99, 19, -89, -21, -37, -8, 25, -74, -78, 29, -85, -86, 72, -62, 48, -32, 43, 78, 37, -30, 94, 57, -71, -28, 24, -91, 80, 82, -36, -51, 84, -37, 44, 71, 41, 83, -37, -57, 85, -16, 71, 99, -26, 20, -63, -78, 88, 56, -99, 2, -74, 71, -40, -45, -56, 60], [-37, -99, 42, 3, -74, 3, 42, 70, -25, -40, 30, 37, 3, 16, 98, -49, 15, -28, 71, 29, -29, 36, -15, -52, -62, -12, -81, -26, 42, -38, -66, 81, -61, 76, -39, -35, -21, -97, -88, 30, -38, 41, -32, 64, -66, -57, -84, 49, 14, 63, -45, 84, -1, 39, -68, 36, -73, -72, 87, 45, -34, -79, 3, 5, 73, 63, 69, -70, 65, 80, 59, -95, -2, -96, 68, 32, -54, 60, -42, 37, 23, 12, 21, 98, -72, 30, 35, -45, 34, 22, 76, 99, 19, -20, 4, -7, -80, -50, 22, 62, -93, -42, 66, 5, -38, 11, -86, -16, -51, -29, -79, 48, 59, 19, 47, 86, -74, -41, -82, 59, 80, 94, 58, -24, -49, -60, 68, -30, -11, -33, -91, -4, 2, 74, -99, 40, -37, -86, -76, 11, -39, -78, -41, -80, 40, 82, -94, 65, -59, -76, 24, 97, 94, -41, -26, -55, -2, -81, -9, 87, -37, 0, -17, 64, -26, -40, -19, 13, -50, 4, -76, -13, 2, -40, 6, -58, -58, -12, 83, -17, 11, 7, -43], [5, 43, 30, 26, -59, 26, -82, -95, 88, 17, -36, 29, 67, 0, 86, -42, 49, -33, -19, -64, 69, 17, 18, -89, 59, -93, 94, -81, -6, -22, -25, 76, -79, 82, 2, -61, -15, -4, -80, -27, 89, -16, 78, 34, 83, 64, 91, 10, -92, -28, 22, 76, 66, -59, 87, 25, -76, 58, 20, 17, -64, 71, -30, -66, 30, 72, -51, -85, -55, -32, -36, -65, 28, -81, 68, 12, 59, 36, -78, 67, 84, 20, 43, 50, 60, 30, -25, 83, -12, 71, -22, 1, 20, 47, 11, -50, -4, 36, -35, 41, 80, 28, 52, 9, 24, -3, 97, -17, -67, 95, -50, -83, 15, 93, 67, -24, 0, -81, -64, 65, 90, 13, -34, -13, -62, 53, 36, 33, -11, -99, -49, -31, 6, -97, 54, -70, -1, 51, 12, 31, 46, 39, 25, -38, 32, -8, 14, -68, -13, 26, 96, -46, -60, -61, 40, -46, 68, -23, 86, -66, -46, -62, -20, 59, -83, -66, 65, -7, 62, -45, -76, 8, 93, 25, 46, 2, -83, -63, 33, 4, 63, 7, 57, 79], [22, -25, -67, -9, 51, -81, 24, -95, -67, -96, 41, -73, -85, -17, 19, 76, 37, 19, -39, 7, -55, 84, -91, -62, -79, 42, 18, 83, -74, -47, 62, 47, 27, 71, -62, -22, 67, 39, -41, 99, 19, 99, -97, 10, -40, 21, -14, 96, -82, 24, -19, -38, 8, -11, -24, 28, -92, 94, -11, -67, -53, -72, 57, 50, 99, 94, -72, 66, 10, -37, 42, -70, -37, 45, 39, 22, -57, -97, -5, -63, 3, 75, -25, -89, -58, 51, 15, -51, 22, 80, -41, 45, -91, -84, -5, 84, 86, -1, 27, -3, 61, -31, 3, -99, 90, -81, 22, -89, 97, 94, -53, 0, 46, 22, -13, 87, -27, 79, -86, 71, 59, -28, 16, 44, -36, -89, 5, -50, 9, -68, 46, -53, 1, -74, -52, -32, -78, 46, -22, -81, 40, 2, -4, -36, -76, 82, -49, -27, 61, -59, -56, -2, 12, 59, -81, 52, 46, 24, -97, -68, 55, 25, -22, -67, 51, 25, 1, 72, -28, 78, 67, 88, -43, -37, -48, -20, -54, -20, 29, 83, 20, 72, -19, -90, 8], [-23, 61, -69, -99, 40, -38, 55, -34, 17, 88, 93, -58, -34, 42, -10, -79, 9, -44, -22, 72, 7, 57, 94, 63, -13, 54, -39, -64, -87, -30, 21, -11, -92, 51, -11, 25, -86, -79, 90, 7, 85, 60, 48, -49, 2, -84, -28, 87, -29, 49, 36, 54, -17, 30, 18, 46, -38, 78, 82, -26, -75, 3, 62, -91, -69, -49, 33, -79, -29, 0, 27, -43, -40, -47, -16, 38, -32, 55, 26, 15, -19, -38, -31, 41, 69, 86, -13, -69, 41, -54, -19, 65, 25, -57, 51, 56, -7, -16, 76, 40, 84, 4, 73, -79, 33, -42, 59, -99, 89, -15, 15, -29, 23, 60, -88, -31, 47, -25, -24, -35, 21, 56, -92, -54, 98, 58, 78, -32, -58, 55, 85, -97, -64, 58, -76, 68, 92, 82, 45, 82, -56, -63, -70, 43, 96, -82, -87, 20, -31, -35, 85, 89, -78, 92, -87, 96, 50, 90, -58, 68, 45, -73, 48, 57, 61, 71, 25, 31, 30, -53, -10, 73, -17, -4, -7, -20, 13, -18, 99, 81, 47, 84, 48, 45, 53, 60], [18, -20, 27, 59, -51, -50, 62, 96, -93, 1, 44, 9, -68, -26, 55, -2, -76, -61, 93, -7, -5, -17, 75, -6, -59, 22, -44, 65, -33, 85, 25, 61, -34, -70, 21, -9, -21, -40, -36, -38, 60, -92, 70, 68, -42, 3, -57, -42, 18, -64, 50, -87, -5, 25, -17, 36, -76, 38, 1, -33, 24, -96, -71, 66, -90, 26, -43, -12, 85, 20, 26, 23, 4, -26, -32, 38, 76, 11, 72, -29, 23, 22, -17, 95, -75, 65, 8, -52, -19, 85, 15, 81, 65, 20, 47, 74, -54, 80, -61, -92, -23, 65, 30, 57, -61, 75, -5, 91, -14, -33, -38, 85, 65, 44, 80, 89, -14, -35, -85, 43, -49, 6, 24, -84, -74, -52, 90, -52, -95, -94, -45, -19, 70, 85, -62, -91, 60, 9, 99, -77, 52, -39, 84, -5, 81, 42, -39, -32, -93, -25, 87, -66, 57, 12, -50, 82, 36, -83, -93, 41, -78, -38, 98, 92, -53, -63, 77, 83, 22, 54, 82, -48, -85, 66, 46, 73, 8, -93, -82, -8, -41, -95, 25, -84, -7, 51, 75], [-70, 67, 81, 47, 66, -57, 45, 35, -34, 58, -11, -74, -19, -57, -92, 32, -65, 51, -45, -92, -64, -39, -98, 27, 19, -94, -70, 12, -24, 80, -13, 5, 25, -55, -48, -9, -35, 73, -97, 30, 32, -9, 33, 89, 34, 40, 21, 45, -32, 75, 52, 4, -87, 30, -92, 9, 35, -63, -79, -89, 94, -16, -8, 19, 5, 20, 86, 69, -6, 65, -23, -97, -44, -90, 91, 66, 26, 12, 11, 94, -36, -60, -25, -47, 69, -18, 61, -18, -4, 58, -31, -10, -58, 61, 85, 47, -42, 48, -7, 51, 13, 69, 53, 68, 55, 44, 12, -18, -67, 99, -47, -27, -60, 4, 3, 85, 85, -36, -33, -42, -77, 36, 47, -59, -26, 9, 64, 31, -43, -65, -40, 69, -96, 89, 15, 36, 11, -96, -82, 20, -97, -53, 93, -81, 50, -4, -95, 12, 36, -52, 70, 35, 60, -6, 53, -66, -96, -6, 65, -63, 28, -98, 83, 32, 90, -25, -32, 1, -22, -38, -78, -20, -15, 91, -24, -88, -36, -20, 23, 99, 4, -30, 12, -35, 64, -35, -2, 44], [58, -60, 80, -13, -82, 63, 95, -91, -62, -60, -14, -8, -22, -16, 49, 62, -25, -75, 73, 15, -19, -27, -8, 84, 43, -96, -51, -16, -32, 24, -72, -97, 40, 84, -11, 58, 25, -39, 66, 39, 0, -71, -68, 77, 13, 80, 16, 87, 81, -34, -20, -38, 39, 71, -54, -18, 74, -28, 65, -81, 95, 69, -79, 35, 53, -13, -30, -22, 24, -64, 94, -75, -35, -74, 78, 54, 82, -5, 18, 63, 60, 97, -98, -24, 68, -53, 57, 19, -5, -1, 37, -10, -32, 35, -97, 98, -78, -28, -47, 45, -15, -53, 46, 26, -28, 2, -20, -69, 73, 97, 70, 10, 95, 71, 86, 40, -81, 20, -40, -10, -80, 96, 80, -36, 31, 59, -38, 29, -92, 15, -48, -31, 38, 97, 94, 87, -24, -49, -82, -51, -51, 88, 59, -79, 59, 45, 60, 54, -58, 96, -55, -39, 93, -98, 2, 1, 37, 40, -92, 44, -45, -41, 90, 70, -67, 84, 57, 9, -87, 74, 57, -39, 39, -7, -42, -1, -85, 94, -70, -43, 91, -26, -6, 61, -48, 95, -38, 88, 36], [-54, 10, 67, 4, 0, 37, 37, -39, -6, -77, -27, -54, 56, 10, 84, -73, 44, -17, -59, 16, -10, -3, 7, 40, 68, -55, 92, 63, 6, 57, -24, 29, -56, -56, -67, 20, 57, 46, 58, -48, 68, -92, -3, 2, -5, -19, 28, -61, 41, 45, 54, -69, -57, -62, 47, -89, -18, 39, 50, 65, -26, -73, -6, -6, -53, 3, -85, -96, -50, 72, -45, 94, 56, 28, -27, -49, 86, -99, -33, 4, 46, 97, 11, 65, -64, -42, 52, -6, 74, -21, -41, -75, 5, 29, 18, 51, -67, 32, 55, -18, -19, 86, -47, -62, -8, 26, -35, -45, 26, 31, 58, -51, 29, -54, 90, 41, 3, 42, -65, -46, -78, -29, -22, 3, 76, 96, -45, -91, 5, 86, -33, 86, 49, 20, -99, -82, -77, -35, -28, 48, 73, -93, 74, -21, -48, 64, 96, 55, -16, -92, -91, -18, -45, -36, 84, -68, -40, -84, -60, 64, 78, -16, 27, 28, 80, 27, 45, -97, 69, 94, 27, 19, -99, 1, 74, -47, -57, 70, 84, 26, 77, 69, -92, -90, -67, 68, -59, -8, 84, -43], [-66, 62, 40, 60, -33, 20, -35, -87, 22, -89, 83, -50, 29, 83, 27, -20, -64, 46, -50, -80, -28, -96, 66, -44, -87, 98, -75, -47, -32, 85, -13, 1, 47, -73, -62, -85, 24, 2, -96, -77, -11, 86, -51, 94, 46, 76, -26, 82, 22, 23, 78, 71, 4, 44, -96, 16, 20, -95, 46, 87, 66, -67, -35, 14, -64, 2, 5, 36, 81, -15, 59, -30, -52, -92, -58, 93, 60, 15, 52, -40, -61, 8, -92, 19, -71, 87, -65, 48, 92, 57, 12, 58, 66, 76, -51, -97, -44, 30, 38, -86, 91, -26, -40, -61, -18, 1, -90, -81, -83, 61, -22, -68, -54, -38, 50, -48, -50, 61, 76, -58, -4, -11, 76, -38, -58, -97, -59, -26, 32, 56, -13, 24, -70, 24, 39, -12, -75, 48, 7, -59, -13, 61, -51, 32, -76, 75, 60, -27, 37, 37, -9, -67, -97, -33, -29, -56, -54, -11, -5, 78, -55, 58, -21, -49, -18, -82, 39, 7, 66, -77, 24, -70, 83, 50, 38, 83, 25, -1, -44, -38, -64, 46, -29, -62, 90, 19, -42, -64, -92, 52, 90], [-71, 11, -31, -21, 69, -36, 94, -24, -93, -83, 77, -64, 77, 27, 73, 60, -48, -28, 93, -9, -16, 16, 38, 21, 6, -66, 79, 19, -59, 8, 9, -54, 95, 55, 25, 65, -81, 19, -59, -75, 13, 94, -63, -10, 21, -90, -73, 50, -41, -80, -82, 42, 36, 55, -59, -81, 66, 96, 37, -93, 4, -53, -47, 0, 78, 54, -35, 96, -50, -18, 97, 62, -23, -66, -71, 74, -80, -44, 1, -45, -48, -5, 74, 87, -49, -85, 83, -83, -89, 20, 99, -9, 43, -71, 67, 21, 82, -68, -6, -67, -9, -32, 71, 44, 1, -99, -5, -2, -67, 73, 52, -16, -32, 26, -51, 18, 17, -68, 11, 27, 51, -12, 95, -28, -7, 62, 92, -24, 71, -36, -15, -38, 31, -44, 82, -90, -67, -23, 7, -35, -50, -64, 26, 18, 62, 74, -87, -44, -94, 1, 83, 33, 65, 55, -95, -42, 17, 74, 10, -35, -85, 94, 3, 45, -72, -15, 31, -63, 39, -62, -21, 88, -26, -95, -17, -87, 78, -27, -32, 60, 73, -72, -30, 15, 59, -25, 72, -46, -74, -17, 18, -60], [-46, -78, 61, -42, -17, -7, -5, -78, 7, 50, 87, 57, 54, -30, 46, 9, 19, 91, -31, -31, -81, 38, 83, 55, 89, 33, -91, 91, -84, 26, -92, -54, 24, 69, 4, -92, -61, 75, -71, 22, 25, -84, -20, -21, -37, -97, 64, 58, 93, -67, -72, 89, 47, -89, 44, 37, 43, 52, 28, 35, -22, 36, 81, 79, -18, -38, 86, -3, -86, 91, -81, 15, 84, -25, 70, -76, -22, 34, 81, -29, 66, -91, -40, 13, 96, -96, -73, 16, 32, 32, -71, -89, -32, 86, 66, 26, -75, 52, -77, -62, 43, -59, 52, 4, -7, 22, 27, 70, -44, 9, -59, 98, -6, -22, -12, -33, -42, 15, 83, 90, -53, 88, 77, -9, 74, 43, -83, 98, -28, -84, -87, 91, -67, 64, -4, 25, -37, -77, -5, -5, 8, 13, -7, -97, 67, 80, -54, -75, -28, -94, 91, -5, 93, 68, 85, 67, -12, 78, 42, 59, 93, 54, 51, -96, -5, -76, 28, 34, -54, -99, -71, 31, -10, -2, 10, -66, -21, 55, -42, 27, 61, -73, -77, 54, 71, -92, -1, -40, 63, -82, 95, 56, 49], [46, 59, -56, 69, -35, 55, 92, -35, 83, 23, 31, -18, -67, 64, 37, 64, 98, -36, 25, -75, -14, -20, 96, -29, 55, -67, -66, 72, -72, 66, 21, 51, 3, 42, -3, 67, -3, -34, -91, -43, 88, 39, 15, 97, -20, -48, 39, -22, -7, -36, -20, 55, 20, -47, -74, -25, -38, -64, -52, -11, -97, 45, -83, 5, -13, 14, -51, 60, 79, -43, -82, 45, 72, 9, 19, -48, 61, -42, 6, -69, 22, 62, 62, -81, 91, 88, -6, -47, -99, 18, 19, -97, -60, 35, -16, 27, -51, 32, -13, -94, 88, -19, 27, 37, 90, -54, 65, 28, 4, -28, 35, -97, -89, -3, 97, -97, -38, -9, -45, -37, 85, 73, -58, -74, -14, 26, 29, 11, -65, 92, 16, -76, -49, -57, 37, -59, -34, 3, 45, 46, 51, -20, 25, 61, 53, 22, 40, -84, 90, 95, -45, 75, 45, -4, 77, -69, 98, 6, 42, -66, -24, -65, -66, 26, -45, 70, 66, 20, -50, -12, -34, -99, 44, 67, 39, -3, -11, -21, -11, -21, -49, 20, -68, 96, -83, -91, -96, 91, -8, 22, -98, 67, 57, -65], [-7, -88, 82, -64, 8, -91, 23, 50, -90, -56, 17, 25, 40, 82, -96, -93, -38, -45, 26, -7, -72, 19, -22, -69, -12, 69, 53, -11, 13, -13, 1, -94, -2, -17, -59, 82, -9, 40, 9, -23, 83, -74, 78, 1, 84, 82, 7, -54, -86, -90, 15, -59, 29, 93, -52, -83, 39, -99, -18, -47, -13, 82, -42, 61, -58, -24, 20, 10, 92, -71, 86, 76, -69, 42, -46, -84, 24, 60, -62, 14, 46, 53, 54, -25, 23, 78, -32, -38, 79, 50, 14, -57, 9, 49, -95, 51, -98, 1, -39, 93, 30, -76, 69, 60, 65, -77, 52, -34, 59, 90, 79, 6, 20, 10, 57, -57, -11, -97, 4, -55, 29, 95, -13, -62, 44, -32, 65, 45, 69, -74, 15, -1, -50, -15, -64, 91, -16, 65, -42, -79, 55, -63, 26, -25, 24, -40, 17, -87, -61, 97, -66, 67, 92, 20, 82, 13, 88, 47, -65, 34, 73, 50, -67, 99, -88, -55, 90, -28, -90, -52, -8, 41, -38, 94, 92, 85, -45, -14, 74, -7, -16, -92, -62, -47, 4, 96, 43, -31, 43, 77, -97, -7, 4, -65, -31], [-8, -43, -63, 64, -57, -39, -44, 84, 22, -49, 53, -16, -18, -60, -65, 51, 0, -81, 88, 29, 23, 61, -28, 91, -18, -73, 94, 51, 7, -94, -79, 99, -61, -66, 63, -18, -6, -81, -57, 93, -31, 95, -46, 50, -88, -11, 2, 11, -16, -33, -82, -93, -71, -11, 75, -13, -8, 46, -62, 99, 28, -42, 98, 67, -9, 61, -74, 62, 56, -32, 55, -97, -60, -91, 29, -48, -26, -69, 39, 58, -25, 56, 41, -20, -77, 16, 66, -9, -61, -96, -10, 67, -61, -35, 34, 6, -97, 59, -32, 59, -96, -77, 61, -57, -91, -10, -29, -18, -2, 87, -60, 49, 20, 81, -94, 42, -26, 71, -89, 13, 51, 0, -20, 66, 65, 90, -27, 44, 49, 17, 3, 29, 40, -59, 71, 25, 8, -80, -93, 82, -93, -53, 8, 26, -95, 13, -54, -22, -39, -44, 90, -88, 32, -30, 78, -26, -40, -72, -81, 85, 44, -2, 14, -39, 16, -37, 85, -99, -18, 92, 59, -35, -84, -33, 67, -80, 56, 89, -26, -83, -78, -35, -72, 54, 11, 82, -95, 71, 86, 99, 33, 31, -25, -75, 68, 67]])); \ No newline at end of file diff --git a/121-Best-Time-to-Buy-and-Sell-Stock.js b/121-Best-Time-to-Buy-and-Sell-Stock.js new file mode 100644 index 0000000..a711e40 --- /dev/null +++ b/121-Best-Time-to-Buy-and-Sell-Stock.js @@ -0,0 +1,38 @@ +/** + * https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/ + * Difficulty:Easy + * + * Say you have an array for which the ith element is the price of a given stock on day i. + * If you were only permitted to complete at most one transaction + * (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit. + * + * Example 1: + * Input: [7, 1, 5, 3, 6, 4] + * Output: 5 + * max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price) + * + * Example 2: + * Input: [7, 6, 4, 3, 1] + * Output: 0 + * In this case, no transaction is done, i.e. max profit = 0. + */ + +/** + * @param {number[]} prices + * @return {number} + */ +var maxProfit = function (prices) { + if (!prices.length) return 0; + var min = prices[0]; + var max = 0; + for (var i = 1; i < prices.length; i++) { + var tmp = prices[i]; + if (tmp < min) min = tmp; + else if (tmp - min > max) max = tmp - min; + } + return max; + +}; + +console.log(maxProfit([7, 1, 5, 3, 6, 4])); +console.log(maxProfit([7, 6, 4, 3, 1])); diff --git a/Easy_136_Single_Number.js b/136-Single-Number.js similarity index 88% rename from Easy_136_Single_Number.js rename to 136-Single-Number.js index 883db19..b5e7ba4 100644 --- a/Easy_136_Single_Number.js +++ b/136-Single-Number.js @@ -1,6 +1,7 @@ /** * - * https://leetcode.com/problems/single-number/#/description + * https://leetcode.com/problems/single-number/description + * Difficulty:Easy * * Given an array of integers, every element appears twice except for one. Find that single one. * diff --git a/138-Copy-List-with-Random-Pointer.js b/138-Copy-List-with-Random-Pointer.js new file mode 100644 index 0000000..3f40e0e --- /dev/null +++ b/138-Copy-List-with-Random-Pointer.js @@ -0,0 +1,89 @@ +/** + * https://leetcode.com/problems/copy-list-with-random-pointer/description/ + * Difficulty:Medium + * + * A linked list is given such that each node contains an additional random pointer + * which could point to any node in the list or null. + * + * Return a deep copy of the list. + * + */ + + +// Definition for singly-linked list with a random pointer. +function RandomListNode(label) { + this.label = label; + this.next = this.random = null; +} + +/** + * @param {RandomListNode} head + * @return {RandomListNode} + */ +var copyRandomList = function (head) { + + print(head); + + var p = head; + // A->B->C + // A->A'->B->B'->C->C' + while (p) { + var copy = new RandomListNode(p.label + "'"); + copy.next = p.next; + p.next = copy; + p = copy.next; + } + + print(head); + + // 构造 A' B' C'.random + p = head; + while (p) { + p.next.random = p.random ? p.random.next : null; + p = p.next.next; + } + + print(head); + // 构造 copy + var pp = new RandomListNode(0); + var copy = pp; + p = head; + while (p) { + pp.next = p.next; + pp = pp.next; + + p.next = pp.next; + p = p.next; + + } + + print(head); + print(copy.next); + + return copy.next; +}; + +var a = new RandomListNode('A'); +var b = new RandomListNode('B'); +var c = new RandomListNode('C'); + +a.next = b; +b.next = c; +a.random = c; +b.random = c; +c.random = a; + +function print(h) { + var ls = []; + var rs = []; + while (h) { + ls.push(h.label); + rs.push(h.random ? h.random.label : 'nil'); + h = h.next; + } + console.log(ls.join('->')); + console.log(rs.join(' ')); + console.log('-------------'); +} + +console.log(copyRandomList(a)); \ No newline at end of file diff --git a/139-Word-Break.js b/139-Word-Break.js new file mode 100644 index 0000000..abc8c91 --- /dev/null +++ b/139-Word-Break.js @@ -0,0 +1,44 @@ +/** + * https://leetcode.com/problems/word-break/description/ + * Difficulty:Medium + * + * Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. You may assume the dictionary does not contain duplicate words. + * + * For example, given + * s = "leetcode", + * dict = ["leet", "code"]. + * Return true because "leetcode" can be segmented as "leet code". + */ + +/** + * @param {string} s + * @param {string[]} wordDict + * @return {boolean} + */ +var wordBreak = function (s, wordDict) { + var n = s.length; + + var dp = [true]; + for (var i = 1; i < n + 1; i++) { + + for (var j = 0; j < i; j++) { + + if (dp[j] && wordDict.indexOf(s.substring(j, i)) > -1) { + dp[i] = true; + break; + } else { + dp[i] = false; + } + + } + + } + // console.log(dp); + return dp[n]; + +}; + +console.log(wordBreak("leetcode", ["lee", "leet", "cod", "code"])); +console.log(wordBreak("", ["lee", "leet", "cod", "code"])); +console.log(wordBreak("lee", ["l", "leet", "cod", "code", "e"])); +console.log(wordBreak("lee", ["l", "leet", "cod", "code", "leetco"])); \ No newline at end of file diff --git a/151-Reverse-Words-in-a-String.js b/151-Reverse-Words-in-a-String.js new file mode 100644 index 0000000..a6604dd --- /dev/null +++ b/151-Reverse-Words-in-a-String.js @@ -0,0 +1,21 @@ +/** + * https://leetcode.com/problems/reverse-words-in-a-string/description/ + * Difficulty:Medium + * + * Given an input string, reverse the string word by word. + * + * For example, + * Given s = "the sky is blue", + * return "blue is sky the". + */ + +/** + * @param {string} str + * @returns {string} + */ +var reverseWords = function (str) { + return str.split(' ') + .filter(w => w) + .reverse() + .join(' '); +}; \ No newline at end of file diff --git a/152-Maximum-Product-Subarray.js b/152-Maximum-Product-Subarray.js new file mode 100644 index 0000000..62ee8e7 --- /dev/null +++ b/152-Maximum-Product-Subarray.js @@ -0,0 +1,40 @@ +/** + * https://leetcode.com/problems/maximum-product-subarray/description/ + * Difficulty:Medium + * + * Find the contiguous subarray within an array (containing at least one number) + * which has the largest product. + * + * For example, given the array [2,3,-2,4], + * the contiguous subarray [2,3] has the largest product = 6. + */ + +/** + * @param {number[]} nums + * @return {number} + */ +var maxProduct = function (nums) { + var a = nums[0]; + var imin = a; + var imax = a; + var max = a; + + for (var i = 1; i < nums.length; i++) { + var t = nums[i]; + if (t < 0) { + var tmp = imin; + imin = imax; + imax = tmp; + } + imax = Math.max(t, t * imax); + imin = Math.min(t, t * imin); + max = Math.max(max, imax); + } + + return max; +}; + +console.log(maxProduct([-1])); +console.log(maxProduct([1])); +console.log(maxProduct([1, 2, 3, -4])); +console.log(maxProduct([2, 3, -2, 4])); \ No newline at end of file diff --git a/162-Find-Peak-Element.js b/162-Find-Peak-Element.js new file mode 100644 index 0000000..5b367c9 --- /dev/null +++ b/162-Find-Peak-Element.js @@ -0,0 +1,58 @@ +/** + * https://leetcode.com/problems/find-peak-element/description/ + * Difficulty:Medium + * + * A peak element is an element that is greater than its neighbors. + * Given an input array where num[i] ≠ num[i+1], find a peak element and return its index. + * The array may contain multiple peaks, in that case return the index to any one of the peaks is fine. + * You may imagine that num[-1] = num[n] = -∞. + * For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2. + */ + +/** + * @param {number[]} nums + * @return {number} + */ +var findPeakElement = function (nums) { + if (nums.length === 1) return 0; + nums.unshift(nums[0] - 1); + nums.push(nums[nums.length - 1] - 1); + var i = 1; + var j = nums.length - 2; + while (i < j) { + var half = Math.floor((i + j ) / 2); + // console.log(i, j, half, nums[half]); + if (isPeak(nums, half)) return half - 1; + if (i === half) return j - 1; + + if (nums[half - 1] > nums[half]) j = half; + else i = half; + } + return 0; +}; + +function isPeak(nums, i) { + var a = nums[i - 1]; + var b = nums[i]; + var c = nums[i + 1]; + return b > a && b > c; +} + +/** + * @param {number[]} nums + * @return {number} + */ +var findPeakElement = function (nums) { + if (nums.length <= 1) return 0; + var l = 0; + var h = nums.length - 1; + while (l < h) { + var mid = Math.floor((l + h) / 2); + if (nums[mid] > nums[mid + 1]) h = mid; + else l = mid + 1; + } + return l; +}; +console.log(findPeakElement([3, 2, 1]), 0); +console.log(findPeakElement([1, 2, 3]), 2); +console.log(findPeakElement([1, 3, 2]), 1); diff --git a/Easy_167_Two_Sum_II_Input_array_is_sorted.js b/167-Two-Sum-II-Input-array-is-sorted.js similarity index 50% rename from Easy_167_Two_Sum_II_Input_array_is_sorted.js rename to 167-Two-Sum-II-Input-array-is-sorted.js index afaa5f3..1ca69d6 100644 --- a/Easy_167_Two_Sum_II_Input_array_is_sorted.js +++ b/167-Two-Sum-II-Input-array-is-sorted.js @@ -1,14 +1,13 @@ /** + * https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/description/ + * Difficulty:Easy + * * Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number. - - The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based. - - You may assume that each input would have exactly one solution and you may not use the same element twice. - - Input: numbers=[2, 7, 11, 15], target=9 - Output: index1=1, index2=2 - - + * The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based. + * You may assume that each input would have exactly one solution and you may not use the same element twice. + * Input: numbers=[2, 7, 11, 15], target=9 + * Output: index1=1, index2=2 + * */ /** @@ -25,5 +24,4 @@ var twoSum = function (numbers, target) { } }; - console.log(twoSum([2, 7, 11, 15], 9)) \ No newline at end of file diff --git a/Easy_171_Excel_Sheet_Column_Number.js b/171-Excel-Sheet-Column-Number.js similarity index 69% rename from Easy_171_Excel_Sheet_Column_Number.js rename to 171-Excel-Sheet-Column-Number.js index d3a38df..2bdb2d5 100644 --- a/Easy_171_Excel_Sheet_Column_Number.js +++ b/171-Excel-Sheet-Column-Number.js @@ -1,16 +1,16 @@ /** + * https://leetcode.com/problems/excel-sheet-column-number/description/ + * Difficulty:Easy + * * Given a column title as appear in an Excel sheet, return its corresponding column number. - - For example: - - A -> 1 - B -> 2 - C -> 3 - ... - Z -> 26 - AA -> 27 - AB -> 28 - + * For example: + * A -> 1 + * B -> 2 + * C -> 3 + * ... + * Z -> 26 + * AA -> 27 + * AB -> 28 */ /** diff --git a/Easy_190_Reverse_Bits.js b/190-Reverse-Bits.js similarity index 97% rename from Easy_190_Reverse_Bits.js rename to 190-Reverse-Bits.js index d1ee2c9..c6122fa 100644 --- a/Easy_190_Reverse_Bits.js +++ b/190-Reverse-Bits.js @@ -1,5 +1,6 @@ /** * https://leetcode.com/problems/reverse-bits/#/description + * Difficulty:Easy * * Reverse bits of a given 32 bits unsigned integer. * diff --git a/Easy_191_Number_of_1_Bits.js b/191-Number-of-1-Bits.js similarity index 88% rename from Easy_191_Number_of_1_Bits.js rename to 191-Number-of-1-Bits.js index b11ebb4..58ead5a 100644 --- a/Easy_191_Number_of_1_Bits.js +++ b/191-Number-of-1-Bits.js @@ -1,6 +1,7 @@ /** * - * https://leetcode.com/problems/number-of-1-bits/#/description + * https://leetcode.com/problems/number-of-1-bits/description + * Difficulty:Easy * * Write a function that takes an unsigned integer and returns the number of ’1' bits it has * (also known as the Hamming weight). diff --git a/198-House-Robber.js b/198-House-Robber.js new file mode 100644 index 0000000..feb2bcb --- /dev/null +++ b/198-House-Robber.js @@ -0,0 +1,29 @@ +/** + * https://leetcode.com/problems/house-robber/description/ + * Difficulty:Easy + * + * You are a professional robber planning to rob houses along a street. + * Each house has a certain amount of money stashed, + * the only constraint stopping you from robbing each of them is that adjacent houses have security system connected + * and it will automatically contact the police if two adjacent houses were broken into on the same night. + + Given a list of non-negative integers representing the amount of money of each house, + determine the maximum amount of money you can rob tonight without alerting the police. + */ + +/** + * @param {number[]} nums + * @return {number} + */ +var rob = function (nums) { + if (!nums.length) return 0; + var dp = [0, nums[0]]; + var max = nums[0]; + for (var i = 1; i < nums.length; i++) { + dp[i + 1] = Math.max(dp[i], dp[i - 1] + nums[i]); + max = Math.max(dp[i + 1], max); + } + return max; +}; + +console.log(rob([5, 2, 3, 5, 8])); \ No newline at end of file diff --git a/Easy_202_Happy_Number.js b/202-Happy-Number.js similarity index 92% rename from Easy_202_Happy_Number.js rename to 202-Happy-Number.js index e918564..0fc12f6 100644 --- a/Easy_202_Happy_Number.js +++ b/202-Happy-Number.js @@ -1,4 +1,7 @@ /** + * https://leetcode.com/problems/happy-number/description/ + * Difficulty:Easy + * * Write an algorithm to determine if a number is "happy". * A happy number is a number defined by the following process: Starting with any positive integer, * replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), diff --git a/204-Count-Primes.js b/204-Count-Primes.js new file mode 100644 index 0000000..4875006 --- /dev/null +++ b/204-Count-Primes.js @@ -0,0 +1,35 @@ +/** + * https://leetcode.com/problems/count-primes/description/ + * Difficulty:Easy + * + * Description: + * Count the number of prime numbers less than a non-negative number, n. + */ + + +/** + * @param {number} n + * @return {number} + */ +var countPrimes = function (n) { + if (n < 3) return 0; + var cnt = 0; + var p = new Array(n + 1).fill(1); + p[1] = 0; + for (var i = 2; i < n; i++) { + if (p[i]) { + cnt++; + for (var j = i * 2; j <= n; j += i) { + p[j] = 0; + } + } + } + // console.log(p); + return cnt; +}; + +console.log(countPrimes(3)); +console.log(countPrimes(4)); +console.log(countPrimes(21)); +console.log(countPrimes(27)); +console.log(countPrimes(31)); \ No newline at end of file diff --git a/217-Contains-Duplicate.js b/217-Contains-Duplicate.js new file mode 100644 index 0000000..779a299 --- /dev/null +++ b/217-Contains-Duplicate.js @@ -0,0 +1,23 @@ +/** + * https://leetcode.com/problems/contains-duplicate/description/ + * Difficulty:Easy + * + * Given an array of integers, find if the array contains any duplicates. + * Your function should return true if any value appears at least twice in the array, + * and it should return false if every element is distinct. + */ + +/** + * @param {number[]} nums + * @return {boolean} + */ +var containsDuplicate = function (nums) { + var map = {}; + for (var i = 0; i < nums.length; i++) { + var n = nums[i]; + if (map[n]) return true; + map[n] = 1; + } + return false; +}; +console.log(containsDuplicate([3, 4])); \ No newline at end of file diff --git a/226-Invert-Binary-Tree.js b/226-Invert-Binary-Tree.js new file mode 100644 index 0000000..a3420e6 --- /dev/null +++ b/226-Invert-Binary-Tree.js @@ -0,0 +1,54 @@ +/** + * https://leetcode.com/problems/invert-binary-tree/description/ + * Difficulty:Easy + * + * Invert a binary tree. + * 4 + * / \ + * 2 7 + * / \ / \ + * 1 3 6 9 + * + * to + * + * 4 + * / \ + * 7 2 + * / \ / \ + * 9 6 3 1 + */ + +/** + * Definition for a binary tree node. + * function TreeNode(val) { + * this.val = val; + * this.left = this.right = null; + * } + */ +/** + * @param {TreeNode} root + * @return {TreeNode} + */ +var invertTree = function (root) { + if (!root) return root; + if (!root.left && !root.right) return root; + var left = invertTree(root.right); + var right = invertTree(root.left); + root.left = left; + root.right = right; + return root; +}; + +console.log(invertTree({ + val: 4, + left: { + val: 2, + left: { + val: 1, + left: null, + right: null, + }, + right: null + }, + right: null +})); \ No newline at end of file diff --git a/227-Basic-Calculator-II.js b/227-Basic-Calculator-II.js new file mode 100644 index 0000000..320f45f --- /dev/null +++ b/227-Basic-Calculator-II.js @@ -0,0 +1,105 @@ +/** + * https://leetcode.com/problems/basic-calculator-ii/description/ + * Difficulty:Medium + * + * Implement a basic calculator to evaluate a simple expression string. + * The expression string contains only non-negative integers, +, -, *, / operators and + * empty spaces . The integer division should truncate toward zero. + * You may assume that the given expression is always valid. + * + * Some examples: + * + * "3+2*2" = 7 + * " 3/2 " = 1 + * " 3+5 / 2 " = 5 + * + * Note: Do not use the eval built-in library function. + */ + +/** + * @param {string} s + * @return {number} + */ +var calculate = function (s) { + var operand = []; + var operator = []; + var lastIsNum = false; + + var arr = []; + for (var i = 0; i < s.length; i++) { + var ch = s[i]; + if (ch === ' ') continue; + + if (['+', '-', '*', '/'].indexOf(ch) > -1) { + arr.push(ch); + lastIsNum = false; + } else { + + ch = parseInt(ch); + if (lastIsNum && arr.length) { + var last = arr.pop(); + arr.push(last * 10 + ch); + } else { + arr.push(ch); + } + lastIsNum = true; + } + } + + // console.log(arr); + for (var i = 0; i < arr.length; i++) { + + var ch = arr[i]; + + if (['+', '-', '*', '/'].indexOf(ch) > -1) { + operator.push(ch); + continue; + } + if (operator.length) { + var op = operator.pop(); + if (op === '*' || op === '/') { + var last = operand.pop(); + if (op === '*') { + operand.push(last * ch); + } else { + operand.push(Math.floor(last / ch)); + } + } else { + operator.push(op); + operand.push(ch); + } + } else { + operand.push(ch); + } + + } + // console.log(operand); + // console.log(operator); + + var i = 1; + var j = 0; + var res = operand[0]; + while (i < operand.length && j < operator.length) { + var a = operand[i++]; + var op = operator[j++]; + // console.log(a, op, b); + if (op === '+') { + res = res + a; + } else { + res = res - a; + } + } + + return res; +}; + +console.log(calculate("1/1")); +console.log(calculate("1-1+1")); +console.log(calculate("1+1-1")); +console.log(calculate("42")); +console.log(calculate("12*12")); +console.log(calculate("3+2*2")); +console.log(calculate(" 3/2 ")); +console.log(calculate(" 3+5 / 2 ")); + +console.log(calculate("1+7-7+3+3+6-3+1-8-2-6-1+8-0+0-2+0+10-6-9-9+0+6+4+2+7+1-4-6-6-0+6+3-7+0-4+10-2-5+6-1-3+7+7+2+0+2-8+7+2-3-8-9-6+10-7-6+3-8+5+6-7-10-6-8-10-8+1+9+1-9-1+10+10+3+7-1-10+1-0-7+0-3-3+4+7-9-10-1+4-8-3-0-1-0-3+5-10+6-6-0-6-6-7+7+10+10-5-9-10-2-8+9-2-8-7-9-0-6-5-1+1+3+8-5-8+3-9+9+6-5+0-2+0+8+8-4+6+1-2-0-10-8+1-2-8+2-2-2-4+2+5+3-9+1+9-8+9-8+7+10+1+10-9+2+2+8+7-10-8+6+6+3+0+4-1+0+7-3+8-8-4+8-6-6+3-3-9+6+4+6+7-2-0+6-10+8-2-4+3-8+1-2+8+1-2-4-3-9-4-1-3+5+9+7-8-2+7-10+7+9+1+5-5+8-3-10-7-1-7+10+3+2-8-8+0+9+3+6+8+4+2+10+8+6-1+2+10-5+5+4-2+10+7-6-5+9-9+5-5-2+5+2-1+7-8+4-2+2+2+5-10-7-0+5-8-6-10-5+9-1+1-8+10-7+2-3-3+2+3-8+4-6-7+3-0+6-6-3+1+2-6+2+3+0-4-0+3-5-1-4-0+9+5-6+3-10+0+10-4+6-6-5-6+5+3+7-4+6+2+0+10+4-3+10-10-0-10-4-8+9-5-0-0-9-8-3-2+6-2+5-4-6+7-8+8-8+10-0+10-3-9-5+0+10+6+9-3-0-8+4+5-4-9+0-2-3-0-9+1-4-1-6-9+1-0-0-5+1-6+1+6+0-4-9+10+2+0-8+0-10-3+5+6-3+5-1-0+6-5+5-0+0-4-1-0-4-6-5+5+1+10+10+6+0+3-6-9-9+2+8+3-2+10-5-8-4+9-6+7+3+2-9-8+8-9-6+3-7+7+10+3-10-2-7-4+3+3+10+5-6-8+10-6+1-8-5+10-0-6-8-7-10-0+5-3+10+9-8-7+2-2+2-8-5+6-6+9+3+1+0+7-9+10-0+8-0+2+8-2+4+10-6-2-9+3-9+4-10-2-6+6+8-10+7+9-4-8-1-9-8+2+8+10-3-4-8-0-7-10-6-6-2+4-2-1-7+1+8+5-0+8+7+0+0-6-10-7+9-3+10+7*10-3-7-4-2+2+9+8+5+2+0-3+2-5+10-3+3+2-10+5-4-1+7+1-3-8-2-1-1-6-7+6+10+3-10+2+2+8+6+10+7+9+8+3+4+10+4+1+2-1-1+0-7-7+8-10-7-1+4-9+1+8+3+9-9+8-1+0-9-7+7+4-3-5-8+10+7+9-8-5-8+4+10-3-3+1+7/2-9+3+8-1+8-5-10-9-0+9-8+1+1-8-7-4-3-8-7-9+6-1+1-2+6-6+8-7-10-3+8-7-0-3+6+1+10+8+3+9-2+8+3-9-2+0-4+2+2-10+7-2-8+2-9-1+8-9-9-2-8-7+3-1+9-5+0-2-10-9+7+10-2+8-7-8-8+0-3-7+2+10+4+4+2-9+5+2+2-7+1-2+10-9+5+5-7-8+8-6+2-8+1-7-1-0+6-5+4-4-0-4-1-1-9-6-9-2-10+4+6-3+5+8-6+3+8+3-3-7+4-5-3-7+8+9+0-3-5+0-10+9+10-1+1-8-9+1-9+2-8+10+2-7+10+9-9-7-4-10-0-8+10-4-4-9+2-8-10+2-6-6-9-1-7-6-7-9-9-9+9+10+1+1+5-3+9-8-7-7-4-10+7-7+1-4+6+10+0+10-0+0-0+6-3-3+3-10-7+4-1-4-7+7+5+8+1+3+4-9+5+5+1-10-4*3-9-3+5-6-2+6-10-1-6+4+5+2+4-7-3+2+9-10-1-0+4-10-2+10-8-3-7-0+4-6+2-3-10+4+7+7-8-9+5+9-2+8+7-3-4-3-3-5-8-0-5+5+0-3+5-6+9-6-3-2+6+7+4-10-5-9+4-1+6-6+5+3-7-4+4-7-2+0+5-1-5-7+9+0-6+7-3+2+10+9-1-5-3-10-4+9+3+1-3+7-2-5+4+7+9-10+7+9-3-4-10+8+0+2+6+10+8-0-7+7+3+0-7-0-10-0+1-0-6-7+10-4-0+1+6+1+4-7+7+1-1-1-9+6-9-8-0+3-2+3-0-5-10-3+8-8+3+5+0-0+0-4-1+8+7-8+10-10+1+5-6+2-7+3-6+3+10-5+8-7+4+8-9-7-8+8+5+0+8+7+3-0-8+9+1-2+10-0-0-8-4+0+9-6+9+4-2-9-4+6+8-1+0+1+10-8-6+7-10-1-10+1-3+6-6-7-7+6-8-4-8+1-8-9+3-6+1+7-7+8+0+1-1+4-7+6-9+4+5-3-9+3-2-5-1+0+4+3+4-8-2+2+2-9-8-9+0+5-3-10-8-4-10-7-4+4+10+10+0+8-9+4-2+1-2-5-9+8-3-0-8+6-5+8-5+6-6-1-10-9+2-7-5-8+3-3+0-9-4+1-7-4+8+1-1-2-8+9-2-2-10-5-3+7+9-6+8+0-5-8+2-7-8+7+0-5-4+6-0+5-8-10+3-0+7+10-1-9+1-2-0-10-5+1+6-1-8+8-10+3-8-9-1-9-9-2-2-2+2+7-9+1+4-5-4-2+1-10+6+5+6+3-4-0-1+9+7+10-9+9-0+7-3-9+10+7-1+1+6-6-5+6-8-3+4+2-7-8-3+10-1+3-2+10-0-7+5+4+7+5-9+3+10-1+9+7+7-7-0-0+8+3-9-5+5-10-6+10+10-3+4+8+2-9-0+1+5-0-1-7+8-5+9+1+4+4+2+8+10+4+2+5+1+9+9+6+8-3-4-0-0+8-7-8+8-0+6-10+3+1+9-0-10+2-10+7-6+10-5+5-10+4+4-10-4-1+3+2+2+3+5-9+6-4+2+7+9-3-3-9+5+9-2-2+8+10-2-2-7+6-3-1+0+8-9-6+4-5-2-6+2-5+2-1+3-7-0+7+10+1+8+4+1-10+8+6-0+6-7-2+8+4-7-4+6+2-10-0+9+7-8+8-1+10+6+2-7-9+10-4-0+10+7+4+8+3-2+3-4-0-6+10+9+8-10+6-3-7-8-8-10-9+8+10-6-2-2+7-8-6+2-6-3-7-1+0-10-3+6+10+2+8+7-4-5+4+9-6+7+7+8-5+3-0+3-9+0+1+9-8-6+3-4-6-3-8+3-7-2-10+0+8-0+4+8-5-6-0-9+10-5+5-8-7+8+6+8-5+6-3-6-3-5-3+4-6-3+4+1-9-3+5-8+3-6+5-8-4+9+3+1+6+10+1+5+1+9+6-10-8-5-3-3-1-10-7+3+5-2+3-5+4+7+7-10+4+8+5-0-2+8-7+1-8-10+3+8-3-4-5+2-6-7+6+0-9-1+4+4-9+4+10-6-7+10-0+9-1+10+0+8+8+7-2-3+5+9-5+1-1+5+9-2+7-4-8-1-9-3-7-8-4+1+7-0-6-9+6+8+6-5+5+7+3+8+1+7-2+1+0-7+9-9+5+10+1-5-3-4-6-7+10+0-4-6-8+6-3-0-2+7+2+2+9+10+0+6-1+8-6-0-9-9+10-6+4-10-10-9-10+7-0-1+0-9-4+5-6+10+5+5-8+8+8+10-10-4+7+5-7-10-10+7-7+5+1+9-5+6+0-2-6+9-4+1+8+6-4+9-4+1-1-2-5-2-6-1+2-2-5-9+7-2-8-1+9+1-2+8-8-6+8-3-8-5-6+3+8+1+1-4+9+7-10-3+5-10+1+0-5-6-7+9-6-8-5+4+0+3+2-2+10-9+2+2+0+10+3+0+8-6-3+8+10+0+3-2-3+7-2-1+4+10+5-8-1+9-9+4+9-10+7-2-10+6+4+4-5-9-7-4-1-9+5-2+6+0-4+4+8-0+5-10+0-7-9+6-8+3-0-10-2+2+7-3+10-2+3-3-9-0+10-2+3+3-9+5+8+4-3-6-2-1-0+7+10+4+2-10+4+6+2-4-9+5-3+8-10+0+0-4-1+10+0-3-0+9+9+5+0-2-4+4-9-4-8-10-9-1-10+9-3+6+3-1+0-1-6+10-4-5+0+1+4-3+7-2-8-3-4+5+6+7-9+8-6+10+7+4+2+10+9+0+5+9-0-0-10+7+7-6-3-2+1-5-2-7+0+10+6+0+8+1-7+9+2+5+5+9-1-0-9+1+10-6+2-1+6-6-2-10+4-10-10+1+7-4-0+4+2-5-4-8+9-3-7+3+6-5+9+7-9-3+9-5+8+9+1-4-3+7-8-4+9-7+10+4+8-8-3-0+8-9+3-9-1+9+0-1-3+0-7+4+9+4+0+10-0-6-3-8+2+3-7+4-6-5+8+3+4-1+6+2-8+10+1-9-2+10+1+7+1+2+3-1+9+9-3-10+8-9+2-4+7-10-2+4-3+5-10-9+9+3-10+5-1-7-7-6+7+3-10+9+8+7*5+8-7-7-1+2-0-5+2+1+6+7+7+5+6+0+0-0+2+3-1-10-2-0+4-9-1-10-3+9+7-0+0+10+10-8+9+1-10+1-1+7+6+7-7+4+0+1+2+4-4+7-4-0-10+7+3-10+9-1-1-9+4+7-3+8-1-2-10-8+9+3-3-8+4+0+1-9-0-7-2+7-10+0-8+7-10-7-8+7+6+5+0-0-3+0-7-3+2+3-1-6-5-0-9+0+7-6-6+5-8+3+6+0-6-4+4+7-0+9+4-9+3-10-3+4+7+4+4-4+4+5+2+3+5+6+2-5+1+4-10-8-9+6+9-9+4-7+4+4+4-3+3-7-9+3+9-6-0-3-8+1-4+0-8+8+5+1+6-6+8-5+1+8-8+6-8+7+2+2-10+2-10+10+5-7+9+9-6+3-2+9-8+9+0+1-0-1-4-4-2+2+10-6-4+9-5-7+10+1-9+0-0-4-7-5+7+6-1+2-2-10-1+5-9-9-2-3+10-1-5-10+5+1+9-4-2-8-2+8-7-7-7+7-0+3-9+10-7+4+4+2+5+6-3-10-3+5-8-7+1-4+2-9+4+2-8-3+9+2-5-0-2+0-0+2+3+0+8-7+7-8-4+0-5-3+5-2+8-7-6-4-1-2+2+1-8-0+4-10+2-10+3-5+6+6-3+3-2+5+3-5+4-1-9+1-0-1+7-1+3-5-1-0-5-0+5+5-2-4-6-7-3+6+7+5+8+2+4-1+9+6+6+4+5-7+4+9+8+3+2-8-6+2-4-10+10-3+5+8-6-9+10-1-10+7/8+5-3-5-10-3+7-9-5-10-1-2-10-5-5-5-10+6-4-5+5-5-5-5+4+6-8+5+8+0-1-8-6-4-8-8-3+1-10+8+4+0+9-10-3-2+5+9-2+4+10+2-6+1-3-9+4+0-4+5+2-9+6-4+10-3+6-7+7-2+10+10+2+9-9-9-3+9-4-10+5-7+4-3-2+4-5+5-1-3-10-5+3-3-6+1-9+7-2-1-2+9+0-2+4-8-4+6+1-8+4+0-2-10+2+10-8+8+6-1-2+2-2-10+0+10-7-2+8-10+8+3+1-5+0+4-10+7-0-6+9-3-3+1+7-2-7+3+2+5-10+5-5-9-6-7+5+7-8+6-5+8-2-9-6+7+10+5-9+7+1+1-5+2-5+1-3+4-2-1-7-5-8+3+0+5+5+4-6+2-8-1+2-9+9+6+10-10+7+3+8-1-10+7-3+10+7-10-8+6+9+4-1+8+8-9-9+7-5-10+4+0+5-0+5+2-1-3+1+7+4-4+6-5-9-9-8-1+9-1+1-6+3-5-10-10-9+2+3-2+2+3-3+9+6-10+6+8-7-4-7-9+10-0+4-0-0+5+3-9-7+9+9+1+7-9+8-4+10+6+7+4-2-8+10+0-8+6+7-10+2+1+1-5+9-1+7+6-0-0-1-7+2-4+0-1+6-2+8+0+10+7-9-4-0-7-6-3-2-2+4-2-6-9+7-6+8-0+4+10+2-10+10-8-8+5-6+4-8-6-1+0-1-7-7+3+0-7-5-0+8-0-9+7+10-6+8-4+7+3+6-4-0-10+4+0+2+3-5-9+8-6-0+1-5-0+4+10+0+2+2-6-7+7+0+2+3-4+4-2+8-7-8-3+2-3+0+1-4+0+1-5+5+9-7-10+2+3+8+1+8-7+9-9+2-0-4+7-3-0-5+1+8-1-6-10-2-6-5+10+4-1-6+9-2+10-4-5+9-8-5-8-4-4+7+4+4+2-2-3-3-5+0-0+10-8-4-0+9+4+0-2+5+3-1+5-10+1+3-7-6-10-7+4+10+6+7+1-8-2-9-5-7-4-2-6+7-7-10+5+0-8-1+5-8-9-9-2-5+0-1+3-7+7+0-5-8+10+9+10+9-1+6-6+8-2-5+2-3-10-10+6+6+4+9+6+0+7-1+5-5+0-7+2-8-5+4+7-1+5-9+3-4+7+3-9+2-6+3+0+2+0+3+9-7-6-7+9-5+8-6-2-1-0-0+5+8-8+5+0-8+10-10+6-6+5-0+10+6+9+7+10-2+9+1+6-10+10-0-9-10-8-2+4-5+3-3+9-5-10+6+0+0+8-1-6+0+5-4-4-2+10+9-2+3+1+1-6-2-9-7-5-0-1-9-8-7+4+0+1+0-9-4+4-7+2+4+6-9+3+6+10+6+6-4-5+7+3+9+1-9-3+7-6+2+3-3-1+1-2+9-2+4+6+6-3-6+10+5+1+10+2+2+2-1-4-5+4+10+10-10+9+7+2-2+2-1-6-6+9-10+5-4+5+5-2-4+7-5-3+9+7+4-7+10-0+1+7-5-9+4+4-7+10+9-1-4+4-10-1-6-2-3-10+4+10+6-7-3-0-5+7-7-0-7+0+6+9+9+8+1-3+5+7+5-8+4-1+5-10-5+3-9-1-6+4-0+1+4-5-10-1+9+2+4+7-1+0-1+6-10-1+7+1+3-3+9+5+5-2+6+3+1-5+7+6+0-1+0-2-2-6-5-9-8-3+7+0+3+5+3+2-7-0-2-6-7-6+4+2-3+9-7-6+0+4-8+8-10-10+3+5+9+1+9+5+8+8+1+3-2+9+6-6-5-6+3-5+8-4+8+5-3-9-5+1+3+10-2+2+10+1+10-0+7-10-7-9-1+3-6+9+0-0+8-4+6-6-3+8-6+1-5-7-1-5-0-10-6+6-8-0+6-6-7-1+2+2-2-6+9+8+1-0+6-10-6-4-7+6+6-7+5+9+8-0+4-4-1-10+10-1+3-7-6-6-5+0-6-8-0-3+8+1+8+5-9-7-4+0-7-6+5-6-0+0+7+5+0-7+3-3+6+5+8+9-3+10-3-0+9-5+5+6+9+0-3+10+10-2-8-2+6-2+5-2-8-2+4+1-4-1+10+8/6+4+0-2+2+4-6-8+0-10-6+0+9-10+5-0-3-4+4+10+2+6-1-0-10+1+1+3+1+10-1-0+5-0-0+9-2-3+3+10-1+6+9-1-8+0-8+3+1+1+10-7+1-3-1+8+10-7-6-8+3+10-8-4+10+7-10-5-3-7-5-10+9-1+5-9+6-0+10+3-9+4+10-3-8+3-0+5+7+5-10-10-5+10+3-4-0+0-0+2-6+4-7-7+5-2+8-1+8+4-1-5-6+8-8-1-2-1-5-7+10-7+3-6+6-10-10-8+4+8-7+7+5+10-9-1-4-5-9-4+1+7-3-0-4-1-3-6+3+9+7-2-4-6-4+2+0+6+6-8-10+4-1+1-6-8+9-2-4+2+5-8-2+1-0+4+9-3-4+8-6+7+3+5-4-7+6-9+1-6-4+2+6-10-10+4+9-4-8-6+10+0+10-4-4-6-5+1+2+8+5-9+7+6-0+9-3-0-1+5-10+1+0-0-5+0+1-8-7+5-5-0-7+1+8+1-1+1+3-5-1-9-1+0-7+9+4-4+6-9+1-4-1-3-0+6+2-8-5-10-0-7-9-5-6-2+9-2+10+10+5+6+8+8+3+2-8+9+6+1+5+8-0+2+9-6+10+7-2-0+8-0+1+1+0+10+5-7+3-8-9+10+9-9+9-8+4-1+1+7+6-6-1+7*8-9-6+3-4+10+3-9-0+0-8+3-8-10+4-1-7+2-2+5-2+4+0+7+2-6+7-7+10-10+1+2-4+0-4-6-9+8-0-9+10-8+2+2+6+1-6-10+1-6-9-0-7+1-7+1-9-7-4-8-9+2-6+0-8-10-0+6+6+9+4-4+6+3+7-10+8-1+7-3-4-2-4+9-9-9+5+9-3-1-2+2+3+5+9-0+5+4+9+3+2-3+9+10-1-6-3+9+5+6+2-4-5+2-7-10-1+8-9-6-7-4+10-0+6+10+3+10+0-4+2+5+2+3+4+7-0-9+0+7+9+8+5-9+10+8+4-7-9+5-0+4+10-6-0+4+6-5+5+10-9-3-6-4+8+9-7+7-10-8-5-7-4-6-1-0+10-4+3-1-1-10-5+6-6+6+4-10+4-5+7+10+6+8+3-9-1+3+3-3+10-7-1-3-9-5+4-6+0+0-4+1-9-2+5-2-3-2-5-3+3-7-5-6-2+1+2+4+8+1-2+7+1-2-8-4-6+8-0-2+9-3-10-0-3-9+1+9-3-8+3+2+4+10-6-2-0-0-8-1-10-10-4-2-6+9+6-6+6+8-5-6-5+2-10-1-8-5+0/4-7+2-8-5+9-10-3+5-10+2-6+8+10-7-3+8-7-8-10+4-9+2+8-6-8-0-7+0+8+4-10+6+9-2-8-7+9-8+7-0+4+10-10+9+0-0+10+6+10+9+5+8-3-6-2-4-3+6+5-3-6-6+2+7+5+0-5+2+4-9-6+3-0-9+10+7-0-10+3-8+2+9-7+4-3+2+2+6+1+3-4+8-7-2-10-3+9-7-4+7-1-4-8+3+7+0+3-10-7+2+8-2+4+7-2+9-7+2+10+3-3+6+9+8-4+0-6+0+9-3+6+10+6-9+2+5-1+4-2-1-7+1+3-8+1+6-1-8+7+5-3+10+7+0-2-5+4-8-1+0+3+3+6+3-9-3*7-9-6-0-1+4+7-3-1-6-10-10-3-9+4+3-7-1+4+9+0+4+2-10-6-9-7+5-5+8+9+7-2+5+6+10-9-9-7-5-2+7-6+2+5+7-4+6+0-3-2-2+6+6-10+0+3-7+10+1+5-10-2-7+10+3+6-8+9+0+5-6-4-3+9+5-1+7+1+1+10+3+6+8-9-4+0-4+5-0+0+5-5+2-9+10+10-4-8+2-0-10+10+2+5-2+2+1-6-3+9-1-7-5-4+4+0+7-9-8-5-8-8-10-0-1-5+1+0+6-9-3-9-10+9+2-0-4-4-2+5-5-6-0+1-8+2-10+3+3-8-4-8-2+9-9-7-10+0-6+7-7+0+4+1+6+2-6-4-9+5+6-2-10-5+10+0-3+10-7+10-4-2-5+8-6-7-7-0-0-8-10+5+7-10-1-6-0-10-10-9+10-2-3-10+7-9-4+5-10+10-9-10+7+6-3+5+2-0+7+0-10+1+2+7-3-5-6-1+10+0+2+7-9+6+4-0+2-0-4-2-2+3+0+10+8+6+0-7+4-9+6+9+4-7+5+10+5-5+4-3+7-4-4+9-2-4-7+9-3-2+6-5-5+0-10+6-7-1-1-6+7-2+1-2-2+10+9+7+4-6-5-4+8+0+6+9-3+9-6-2-8-9-3-8+8-2-5+8+4-1-7+3-0-2+5+5+0-8-4+8-4-7-2-4-4+2+3+8-3+10+1+8-1-5-9+6+9+1+5-0+1+7+5-5+3+2+1-4-1-0+8+1-4-6-10-2-7-9-10+7+9-10-1+3-7+6+0+9+0-2-1+0-8-5-10-5+4-5+2-10+10+4-10-0-4-3-10+1-2-10+4-5+8-8-4-0+0+7-2-3-6-0-4+9-2+1-3-8-9+10-7+5-7-3+4-10-9-9-9+5+7-7-3-1-8+7-8-4-9-6-5+5+4-10-3+5+1+4+10-7+6-7+3+5-5-5-8-0-5-9-4-8-2+6-3-1+10-10+2+0+7+10+9+7+3+3+5+10-3-5+4+0-10-0+10+2-2+3+2+5+1-0-5+10+9-10+9-4-2+9+2-9-6-3+2+1-10+5-5-6+5-1+8+10+2-4+8+2+4+0-10-7-4+3-6-0-3+0+9+4-5+4+6+10+5+4-7-7+6-1+0-6-6-0-3+5-6-4-5+6+9-8+10+5+8+1+4+1-7+0-2-2+1-2+6-2+2-5+6-10-2-4-1+7-10+2-10-4+2*6-4-4+8+2+1+7+6+7+4-4-7-10-1+9+0-4+3+4+10+1+6-8+2+2-0+1+1+0-10+0+2-3-9+6+3+1-2+6+1-9+2+1+1-9-0+6+6+6+7-2+10+5-5-4-0+2-2-10+6-8-8-0-4+5-8-8-3-7+6+5-1-8+10+4-5+3-0-2-2-5+9+10-0+7-5-1-5-8+0-7+4+5-3+0-0-8-8-7+1+3+1+5+10+1+6+7+0+3-1-0-10-0-1+8+0+5+5-9+9-9-0+7+4+1-1-3+0-5-9-6-7-7+3+3+6+2-8+4-9+10-8+1-5+4-5-0-3-7-9+0-0+9-9-5+3+1+0-3-6+6-5-8+7+8+4-4+8+4+9-0+1-3+10+2+7+9-1+8+0+2-3-8-7+9+1+4+9-10+3+2+4+9-1+1-2-4+7+4+6+5-1-1+10-6+6+3+9-10-9+9+7-7-1+5+0-10-0-9-10-6+9-10-4-9-7-9-1+6-7+0-4+7-2-8-6-4-4+4-9+0+6+1+10+3+3-1+10-9-2+1-7+7+2+7+8+7+0-9+3+6+3-6+0+8-6+8-10+5-0-8+10-3+2-8+10+10+1+5-0-9-1-10-4+9-4+1-2+7+0-9-5-9+1+9+4-9+4+10+5-7-7+8-10+7+0+6-3+3+0-7-8-0-8+3+4+8-10-10+0+1-8+10-5-9+7-2/8+6-10-1+9-8+9-5-6+6+1-9-0+0+3-7-7+9-10+1+5+6+3+1+0+8+3+2-9-4+6-2+7+4+2+6+7-2+10+10-4-7+0+8+4-4-1+10-8+2+2+5-2-9-8-4+4-2-0-10+5-1-0+4+8-4+4+8-9-8+6+9-7-1-8-3+6-9-4+2-5-7-3-8-9+1+5+1+3+6+3-4-3-7+6+5+10+10-9-8+10-7-2+9-1+8+3-7+4+1+5-3+5-6+4+3-9-9+1-0-2+7+5+0+5+5-5-7-9-5+3-2+9-10-9-9+6-1-5+5-4+9+1-7-9+3-2-7-1-2-6+9-0-4+6+8+8-5+8-7-7+3-3-8+1-1+4-0+7+5-2+2-1+8-6+5-10-10-8-8+0-7+7-2+4-9+6-0+1+8+8-2+4-4+7-5+10+5+4-3+10-3+9-8-9-7-8-7+0-4-5-0+9+3+10-8-5-2-3+1+10+10+9+1-7+10+7-7-0-0+5+4+3+5-8-7-6-7-5-2+2+10+1-1-8-10-10-7+2-0-5-0+6-10+4+6+1-5-7-0+1-10-2-2+2-5+10+2-9-4+10+2-3+5+2-2+8-7+1+10+7+0-7-2+6-5-0-7+7-6+5+7-3-5-5-2+2+0-9-4-1+3+5-7-3+10-4-2-3-5-8-4+3-0+2+1-4+7+7+9-8+6+5-2-1-3+8+3-1+8+6-5-7-1-2+4+10+5-1-6+7+9-5-5+8+7-8+7-5+10-2+0+10-4-7-10+8+3+9+9-8-5+6+9+0-9+8-8+10+4-0+4-7+10+2+9-3-5-4+2-3-9+4+0+8+6+8-3-6+7-9-5+2-6-8+4+1+0+7+7+0+1-0-6+6+1+0+9+5-0-9-10+1+0-10+3+3+0-9+0+7+0-4+9+7+3-1-4+4+5+7+10+3-1-6+6+0-8+8+6-6+7+5-7-6+0-2-7-3-0+10+8+9-3+3+3-5-10-6+1-0-7-6+0-6+2+3+10-1+0-7+9-7-6+7-9-5-4-9+9+8-6-7+7+1+8-2+10+3-8+6-8-9-1+8-9+6+5-4+7-10-8+5+3-1+6-4+2+10+0+0-7+3-9+2+9-10-5-8-1-5-10+0+3+3-0-1+4+0-0-5+1+7+7+3-9-7+8+5-1+9+4+4+3-7-5-0+6+10+2+8-2+6-1-1+2-0-6-0-5+5-8-4-9-5+5+8+10+7+10-8-3-6-5-5+9+4-0+9-4+9+10-7-1-3-1-5+7-7+4+0+4-9+2+3-4+3-0-4-7+10+10+1-0-7+10+6-10+8+1+3-9-3+9+10+0+3+2+4+7-4+8+0+9+5-7-9+5-7+5-3-3+6+5-6-3+2+6-5-7/5+8+7-2-8+10+2-7-0-2+8-2-6-2-0+5+0-7+1-2-1-4-9+6+9+5-9-3+10-1-5-8-3+6+1+0+5+4-9+2-10+1+1-7+3-9-2-7+0+6+3+6+1+5-5+1+3+8+1-7+5+7+2-2-7-1+6-4-3-1+7+1-6+4+10-4+8+4-10-1-9+1+0+3-10+2-1+6+4+7-5+9-3+2+5+3-4-3+3+1+7-0+1-2-7+6+1+2+5+0-1+0+9-10+9+3-0+7-9-7+6+10+2-3-9+7-7+2-6+3+2-3+1+10-5-7-8+6+1+8-5-0+1-3-10-6+7+3+6-1-6-2+2-7+10-5-3-5-9+8+9-6+5-2+4-0+2+6-8+8-6+7-3+2+3+8-9+5-5-6+9+6+9-3-5-1-7+9-8+0-10-7+2-9-1-9-2+5-4-7+5+0+7+5-1+3+1+2-0-9-6-4+3-5+1+8+7-9-2-0+10-1+9+1-2+3-9+6-10+10-2+0+9+10+1-3-3-8-7-0-4-5-7-10-3+7+2-10-7+4-6-5+1-10-6-6-9-0-8+3+1-9+4-2+2+2-7-7-3+5+1+4+1-6-4-2+7-0-4-2+4-4-10-6+7+2-3-4+1+10+9+4-10-0+3-0+9-9-4+8-8+4+8+2-2+9+2+6-10+5+9+4+10+7-1-3-2-5+5-5-0-1+7+6-10-9-8+10+5-6+0+2-8+10-6+9-10+5+3-3-5+6+6+5-4+5+5-5-2-6-0-6-10+2-10+7-0-7+10-7-2+1-6-4+3+2-5-10+2+10+10-7+1-9+1+9+7+10-1-5-4+1+9-6+4-7-8-3+5-6-7-0+0-6+8+5-2-9-5-8-1-0-4+2+6+8-6-2-10-4+6-3-3-6-6+2+1-10-9+5-5-2+4-3-7-4-10-0+6+9-9+9+5+1-2+4+5-1+4+1-8-10-2+6+6-9+9+8-7+2-10+5-0+3-1-3+9+0+7+0+5-5-0+6+0+8+9-7+6+6+5+9+8+9-4+10-8+7-10+7+7+10+3-2+7-1+6+6-4+6-8+3+9-6-9-4-9-10-5-4-8+4+7-5+1-7+7+4+10-10-9-1+2-10-6+3+0+5+9+1+0-4-7+6-5+10+2-7-2+7+0-7+2+10-4+9-8+6-4+1+10-3-8+5+4-0+5-9-8+3-0+2+6+7+6-8-10+5-4+8+10-6+1-10-5-2+3-0-5+1+8-7-2+5-7-10-9-0-4-8-1+6-3+10-8+3+2+8-5-2-0+7+4-8+5+8-9-1-9-4-4-5+9+3+5+8+2-0+4-7-7+7-6-4+10-8+10-8-0+5+2+6+5+2+6-6-5+1-5+0+10-2-3-0-8+7+5+9-8+6+0-4+0+3-9+9+1+9-0-1-5-10+5-5+6-0-6+2-8+4+7+5+7+4+5+2+7+9+7-3-3+6+7+2+10+9+2-0-2+6-9+2+2-1-1-2+3+8+9-10+4+3-1-7+6-10+7-3+8+8-3-7+8-5+4+10-2-5-5+2+4+8+6+10+3+4+9-3+6-5+9+0-9+2+3+5-3-3-10+3-10+5-0-3+3+4-0-2+3-10+6-8-0+8+0-3+2+10-5+8+3+9-2-7+2+8-7-6-2-3-2-0+4+1+1-2+3+9+10+6-3-10-10-8-6+9-2+4-2-5+8+8-5-8-8+7+2+6+0-8+7-4-8+3-4-2+7-1+0-3-6+3-9-8-0-1-9+9-6+9+3-6-4+6-2+7-10-5+10-7-1+6+1-4+9+5-10-10+0-0+7+9+6-2+6+9-6+2+6-6-10+5+4+4-4+10+1-3-1+1-3+6+10+10+6-4-5+4+5-7+2-2-4+3+8+4-4+6-10-10-10+10+5+0-2-6-5-3+2+4+3+3-0+0-9-7+3+4+7+7+2-8-1-8-5-8-1-5+5+4-10+1+7-1+6-0-3-2+2-3+1-5-7-2-4-10-10-10-2+10-2+3+4-2+3+0+0+1+7-9-7+1-6+10+3+1-8-10+1-5+6+6-3-3-7-10+0+10+7+5+1+1+0-7-6+0+10-1-1+7-4-7+0-9+5-9+0-8-2-3-4+7-2-7-8+2+10+0+3-8-7+6+8-4+1-5+1-2+8-6-5+5+3-0-4+10+9-6-2+1+10+0+6-9-2+2+9-10-7+10-4-4-8+9-3+8+5+7+0+3-0-7+7+1+2-9+8-4-3-8-10-2*8+9-8-10+0+0-3-6+4-0+4-10-6-10+2+2-1-6+7-1+8-4+6+3+3-6-7-1+10+1+1+6+8-9+10+6+1+6+4-0-4-8+3-2+9+7-1+7-7-9-10-1+7-7+5-2-1+5+4-3-10-5-6+9-5+0+5+4+7-3+7+5+5-1-3-7-9-2+0+8-7-9+8-2+1+1-9+10+7+3+2-10-4-8+6-10-8-5-0-2-3+7+8-4-7-0-1+5+8+6-10-0+4+5-4-4-6+2-1-10+1+3+0-1+4+0+5-3+2+0+5+8-5+2+2+6-0+10-1+2+2-3+6-6-7+8-8-2-7+1+8+3+8-4-0+10+7+10-6-2-9+2+8+2-6-3+6-0+4-8-1+3-1+3+10-5-9-2-2-5-0-5-7+9-2+8+5-0+9+0+10+3-4-6-8+0+5+1+3-2+0+10+6+8-5+0-4+3-6+8-9-6-10+0+7+1-4-4+8+2-1+6-2-6-3+2+9-0-8-5-4-5-4-6-3+9+7-0+0+7-5+0+4+10+4+4+4-0+4+9+8-5-6-3-8+7+10+0+2+9-8+5+0+6+10-4-8+9+5+6+6-7+9-9+1+9+4-2+9+10+1-3+10-6+0-4+10-9-0+4-4-4-9+5+5-8-5+5-9-2+3-8+6+9+6+4+1+6-1-1+10+7-0-6-6-3-5+7-9-8+6+1-8-4+10-1-9-9+2-0+2+2-0+9-6+10+0+10+7+0+8+8-9+4+10+5-2-9+7+10-0-5+1+9+4+5+4+2+6-9+4-5+8+0+4+10+8-3+2-3-5-6-0-10-1-10+9-3-1-0-4-7-4-9-10-5-4-4+6-9-9+8+10-6+2+5-3+2+5+4-7-10+4+3-9+5-1+4+5+5+8+8-1-6-2+7+4+10+8+4-3+1+5+2-10+1+4-6-2-5-4+9+7-5+3-9-0-8-5+5-8-6+9+8-3-7-7+9-6-3+9+6+10-2-7+4+9+4-3-4-3+9-7-6+8+4-5-1+4-4-5+10-0-10-2-1+8+5-6+1-0-6-10+8+4+3+10+5-5+3-7+4+6-3+2-10-1+10-7-6-0-2+9+9+4-6+6+7+4-10+3+4-8+8+7+2-3-9-8+4+4+3+8-1-9+9-2-1-4+0-10-10-3-2+9+3-4-5+10+10+0+3+6+9-9-7+1-6+2-0-0+10-8+7+6-8-5-10-6+2-0+9-9-10-3+1-8-1-9-5+0-10-3+0-2-9-10+6-2+0+0-1+0-3+4-0+1+10-10+4-10-8-7-5+9-10+10+3-6+1+2+2-9+9-0+9+6-3+8-0-9-9+0-6+9-3+1-9-2-5-4-5-3-1-6-0-1+2+6-9+9-7-7-6+6-1+6+6-8+1+9-5-9-4-3+7-10-3-8-9-10+8-10-5-6+5+8+9-2-4+10-3+8+5+7+3-3-6+1-3+2-9-6+0-5-2+2+6+3-7+8+9+9+7-1+0-10+5+0-7+6+4-4+3-6-5+1+5+5-7-3-7-0+4+0-1-5-8+5+1+9-8-10+4+4+2-10-6-9+1+10+6-8+10+2+10-2+5+6+1-3-1-9-1-4-3-4+0+5+10+10-4+6+8-7+9+6+9-1-2-7-10+0-2+8+8+2-1+0+6-4+8-0-3+10-3+5-0-10-6-10-7+3-7+2-10-4-8-6+2+0-5+2+9-8-8-3+1+7+2-6+10-9-1+1+2+1+6-5+0-2+8+2+2-2-7+1+5+7+9+8-4-10-9+6-7+10-0-5-9+10+9-4-9-7+5+0+3-6+0-9-8+10-6+10+6+0+4+3-3+6-6+6-4+3+2-0-0-0+4-1-0-9-7+3-8+0+10+10+2-2-3-9-2+4-0+9-9+10-1+0+4-4+2+3-3+5-6-1+9+9+0-3-8-2-7+4-7+8-2-4+5+4+0-5-10-4+10+4+0-6-4+2+5+2-7-0+7-0+4+5-8-2-7+8+8+3-7+8-4-10-2-6+4-3+4+0+3-10-4+0+7-5+9+9+9+9-0-8-4+1-4-3-10+3+5-6-9+0+0+4+5-8+7+8+0+10+1+1-10+9-6+10+6-10-4+8+1+2+10-4+2+5-6-3-5-0+8+5+1+6-4-2-5-5-6+1-1+4-10+1-8-8+0+4-1+6-7+7-4-3-3*9-3-8-2-1-8-1-8-3-1+9-0+10-7+4+2+6-3-4-7-9-3-3-8-5+0+2-10+4+10+10+7+0-2-1+0-2-7-1+10-10-4-5+3+3-1-7+6-1+1-7+8+1+7-7-9-6-7+2+0+0+4+2+6+3-10+3+4+9-3+0-6-4+4-5-8+10+9-8+9+5+3-5+1-0+0+8-6+10-6-2+0+8+8+1+10+10-1+0+4-1-8+8+5+4+3+0+0-1-5-4-6-2-1-0-1-7+3-9+6-10-10-2+10+3-4-0-3+7+4-8-0-4-4-3-2+1-7+2+3+2-4+3-10-2+9+4-5+6+6-3+0-8-9-0-10-6-8-7+8-1+2-1-5-0-7+8+3-0+9+10+3+8+9-8+7-0-6+9-0-6-6+8-10+4+3-10+2-5-2-3+2+2-3+10+5-7-9-5+10-7-9+3+9-5+4+5+0+2+4-0+3-6+6+1-3+5+1-3-6+7+1+6-0+1-5+1+10-2+8-3+7+9+2+7-7+0+8-10+5-1+2-10+6-10+3+1-8+7+8-10+9-6-1-3+0-4+2+0+7-9+4+5-10-8+7+7+2+4+2+9-6-6+3-0+2+3+10+2+9-3-8+3+2-2-10-2-1-8-3-4-4+1+3-8-0-6-9+3+8+4+0-6+1-8-4+7-10+4+5+10-7-7-10-3+8-8-9-10-10+2-0+3+9-7+0+3+2+3+10+9-5+8-1-7-3+7+10+0-0+5-3-3-0-6-5+9-7-1-4+9-8+7+10-4-1+7+6+3-7-7-2+8+6-2+0+3+3-0-2+5-2+10-8-4+2+1+1-10+0-5-4+10-1+9+9-10+7+7-9-3+6+5-8-6+4+2+1+1+0-0+4+9+10+10+3-4-9+8-9-8+10-9+10+5-8-2+2-2-5-2-5+8+1+5-8-2-7+6-7+6-10-0-3+4-4-6+9-2-5+1-4-10+6+0-0+4-3+6-10-9+8-10+9+9-6-6-1+5-1+9+0-0+8-8-0+5-9-6+8-1-6-4-4+9-3-3+3+5+1+9-3-2-0-5+4+2+5+1+5-4-10-9-3+6+9-5+6-7+3+10-9+6+0+4+2+8-9-0-3+6+4+6+3+10-7-0+9+1+6+1+5-3+8-8+5+3+4+7-8-0+2+9+2-9+10+6+0-7-1+5-4-0+2-10-4+0-1+0-10-5-0+4-8+5-10-6+7-7-7-7+6-4-2+7-1-9-1-8+1-10+10-3-1-8+6+8-0+3-1+2-3+9+8-4+6-1-7-7-3-10+9+5+5+7-4-5+1+1-8+6-6+9-4+7-2+1-1+6-4-7+6+3+6-3-8-8+10+6+2-10+10+1+1-7-6-1+4-2+6-9+3+4-7+7-9-0-2+6-6+0+8+7+0+3-2-9+8+10-2+7+6+9-6+0-6-0+10-6-8-4+2+4+1-4-8-1-10-7+10+9+3-8-5-8-2+0-4+9-9+0+0+10+4+9+4-8+10-5+2+5+10+9+0-1-9+9+8+10-10+0+8+8+6+0+8-6-10+3-10+5-3+1-7+3-3+10+1+2-2+4+4-4+4-3-5-10+7+9+0+2-5-7-3-5+8-8+8+5-1-10+7-1-5+10-9-0-4-0-9-4+2+5-6-4-6+10+2+4-4-9-8-6+2-5+1+7-3+4-6+7-8+8-4-4+6-6-10+5-0+8-9-10+6-8+2-5-1+4+0+7+3+7+8-5+3-2-1-10-0+6-6+2+9-0+10-5+10+4+8-2-5+1+2-6+9-9-4+8+0+7+7+3+10-5+3-1-5-3+8+6-1+10+8-0-3+1+8-4-1-5-6-5+4-6-0-5-3+2+3+1+9-7+7-0+10+6-0+1-4+4-8+0+3-7+1-7-4+8-10-7+10-4-2-0-0-2-7-5+9-8-2-2+0-8-6-0+1+1+4+8+5+6-8+4+5+9-4-3+3+10+4-10+3-2-4+1+4-6-0+7+0+5-9-9+10+5+9+0+1+6-1+7-3-5-6-8+0-4-5-6-10-2+2+0-1-5-1-1-2-4+8+0-4+10-10-0+0-5+8-8+0+0-4+4+5+7-3-5-7-1-8-7+10-4+10-0-4+10+5+3+5-10+8-8+7+7-0-1+3+7-1-9-10+3+5+10+6+5-9-8-9+8-9+5-3+9-8-1-10-10+5-5+10+0+6-3-2+1+9+6+8-3+0+7+9-4+9-2-9+4+8-8-8-1+0+9+7-10+4-3+9+8-3-1+2+8+4-3+7+6-8+0-7-9+2-2-7-10-2+3+0+10-8+9-8-7-8-0-10-7-6+10+4-5+7-9+5+0+6-10+0-2+7+9+1-8+10+0+1-0+1+5+1-9+1+10+10+4+3+4-5+3+0+3+8-5-3-9-4-6-0+4+10-9+7-3+8+0+3-4-6+2-1-10-5+9-5+4+5+8-6+0+4+10-6+4-9-6+8+6-5+3-1-9+5-3+5+0-0-5-10-4+3-0+1+6+0+4-3-9+0-7-8+6-3-5-4-6+7+10+6+5-7+0+2+6+0+0-9-4-1-10+9+5-9-5-8+2+5+4+8-1-7-3+6-0+0+0+5+10-2+0+2+5+3+4-8+0+2+9+0+3-6-6+8+8-10+3-5+3-4-4-5-10-0+0-1-3-5+7+7+7+2-8+6+8-4+0+5+7-6-7-7-9-1+2+0-3+3+7-1-6-10-8-10-5-1-0-0-9-10-5-9+10+7-2+9-10-6+0-4-2+0+6+3-10+7-7-7+0+9-3+0*2-5+0-7-0-2-2-7+1-3+8-3+1-2+8+6+8-7-4+6+3+4+4-0-10-10-10-5+5-10-5-1+2-10+0+7+6+2+1-4+8+2+4-9+6+10-1+5-1+4+5+8-2-3-10-5-4+9-9-9+5+5+1+8-8+4+5-8+8+3-3-0+0+8-1+3-9-9-4+5+4-6-0+7+10-10-3+2+3+8+8-9-7-7-3+5-8+8+5-5-8+10+10+6+5+8+2+6+0+8-2+9-8+5-3-8-0-8+5-6-9+4-5+6-7+10-2-2-8+9+3+6+0+6-9-8-9-10-0-8+7-6+6+2+8+9-3+2+4+6-10+6-3-5-1-6-4-7+2+0+8-6-6-10-2+1+10-7+10+8+4-0-7+9+0+10-7-4+7-8-0+2+3+7+10+10-8-6-8-0-5+7+3+3-6+0+5-7+7+4+4+6-10+8+6+2+6-8+0-8+0+2+0-4-0-2+3+10-7+0-9-6-7-8+7-10-2+1-9-4-7+3+7+9+7-8-8+10-7-5-6+7+0-9-2-0-0+0-0-1+2-1+2+8-5-10-2+5+4-6-10+3+8+5-10+7+9-0+0-7+10+9-3+5+1+5-10+7-1-7+1-7-4+9+7-7+3-7+6+10-0-2-3-8+4-2+6+9-2-8+0+8+5+7-6-7-1+1-0-6+1+10+9+10+2-6-1+10+2+0+10-5-10-1-10+6+9-10-2-5+9+7+5+1-5+6-0+5+1+3-1+6-8-4+9+0-2+6+7+0+5+4+7-1+10+10-5+3+8+7-5-1+7+0+10+7+3+2+10+0+3-10+1+0+7-6-3-0+5+9-1+8+2+3+10+3-1+6-6-1-10+6-0+3-1+7+0-1+5-5-1-5+10+2+9-0-6-10+3-8-0-1-5-6+7+8-6-3-3-10-0+2-9-8+2-6+0-2-8+9+3-6+1+1-7+5-0+0-4+5+1-10-3-2+3-0-10+7+5-5+3+10-5+3-3-5+4-9+8+0+6-9-6-1-0-9-3+5-3+6+8-6-6-8+6+9+9+10-1+4-0-3+9-9+4-10+3+0+3+1-9-5+7-9+10+1+1+0-7+7-5-1+2-4+3+4-7+4-4+7-6-1-1+10-10-0+2+1+1+5+6+3-7-8-9+5+2-2-3-9-7-6-8+6-0-3+5+8+2+0+5-5+3+3+9+2+2-0+5-10-2+5-2+6-9+5-1-3-0-6-1-7+5-0+0-10-1-1+1+7+7+3-9-10+4-0-6-4-0+1+9+6-10-6+10-4+3+7+5-0-6+4+8+3+5+6-0-10-7-1-3+5-5+10+8-3+7-2+7+0-0-1+4+7-6+1-8-4+1+8-0+7+1-3+4-5-3-7-10-7+10+4+9-6+9-5+0-1-9+7+6-9+2-2+7+9-2-5-3+8-10-4-7-10-1-4-8+1+9-6+5+7-3-9+0-4+7+10-4-0+2+2+2+0+9-6-10-6+5-1-0+0-1+1-4+0+6+0+4-9-6-5-5+5-0+6-0-5+10-8+10-6-4-8+7+1+2-8-1+5-6-8+8+9-4-6+8-4+5+6-5+3-7-9+6-6-6-7+3-2-1+0+6-5-8-6+0+9+5-7+10-1+9-2+0-8+4-3-4+1+6-8-7+9-6-6+10+4-6+6-10-0-6-10-2+1+1-6+8-9-7+2+1-2-0+3-7+3+7-1+2+5-2+0+3+0+7-7+10+3-3+2-5+7+4+1+7-9+0-2-3-8-9+8-1-10+2-9-0-3-3-7+5-2-2-9+3-3-0+10-3-5-10-7-5-7-4-5+10+0-0+6-2+4-7+4+4-6-9-3-1+9-6+6+5-10+0+10-8-5+8-8-7+9-5+2+2+7-10+3-8+3+1+2+10+1-4-6-7+4+8-1+5+4-6-9+6-8-5-6+1-8+0-7-4-2-3-0+3-10-5-6-8-10+9-9+3-6-6+3+1-1-8+0-1+9+4+0-7+5+10+4+0+8-2+8+7+3+1-1-4+3+9-8+8-5+7-0+1-2+2+0+8-5-1+7-9-10-9-3-5-0+5+7-10+6+8-2+10+9-6+4-2-6+1+0-6+3+5+5-9-4+4-8-10+10-7-8-5-4-0+6-2+4+10+9-1-8+1+3+7+2+2+1-3+6+0-7-5-9-9+6-0-1+4-10-3+2+10+6+3-4+0-10-6-1+6-0+1-3+2-5-2-6+5-8-9-8+4-4+9-3+9-6+1-4-5-7+4+8+4-3-9-4-6+2+10+3+6-8+3-8-4+8-5+9+10-10-3+2-5-1+2+8-9-1+9-6+2+0+1+8-9-4-1-5+0-8+8-1+3-5-5+6+10-0-0+6+7*8+0+1+7-9+1-5+9-10+0-0-2+6+4+0-6-2-10+6+0+2-8-7-2+8+8-0-2-5-4+6-9+10-2+7+5-4-4+6-2+8+5+3-8-10-8+8-1-2-3+8+2-9+8+3-6+9+9+4-8+1-7-8+9-3+2-7+0-10-2+8+10+9+7+5-2+5+0-5+8-3+4-2-5+9-10+1-9+7+10+6-2+9+2-3-2+0+4-3+3+10+6-10+0-5+3-7+7+10+0-10+9-9-3+2+3+5+10-9+10-7-1+7+7+4+7-0-5-8-4-3+7-0+8-9+1+0-2-1+4-4-8-9+0+3+8-1-2+10-8+4-2-8-10-10+6-2-0-4+2-5+8-2-3+7-0-0-6+5+5+8-7-1+6+3-2+2+8-3+0+1+0-6+3+10-6+0-4+4+6-10-3-4-8-1-4+5-8-0-9+4-2+8+5+10-6+8-3-4-1-0+5-0+5-6+4-10-5-10+1+4+0+0+3+4+8+1+2-5+5+2+2+3-6+10-4-5+6-9-8+1+0+3+3+1+9-3+7-3+1+5+8+10-6-4-2-2+6-9-0-9+7-10+10-7-10+4+10-10+6-9-9+4-2+10-2-0+6+9+2-10+4+5+8+1-7-6-5+5+10-5-4-7-7+9-0+2-9+9+2+5+6+1-6+0-6-0-7+0-3+5-3-6+10+9-9+2+3-0-9-8+7-0+9-8+4+4+4+2-5+9+4-8+1-2+8-8+6+2-4-2+0-3-3-0+3+7-2-3-10+0-9+3+0+1-10+1-8-2-0-1+8+9-5-6-4-3+0-8-10+0+7-7+1+9-6+6-5+3+0+2-1+6+8-3+0-5+4-0-7-8-5-8-10-5-6-2+1+2+3-4-7+2+10+8+6-2-9+7-9-9+2-9-5-9+6-0+8-1+5+2-4-8+9-0+9-3-6+0-7+4+5-0-9+8-1-1-10+3+0-3-6+3-10+10+4-3+2+9+6-3+3+6+2-10+10-0+5-2+5+9+7+4-1-4-9+3-7-7+2-7-9+7+6-1+3-5-3-0+2+2+1-0-3+5-5+10-8-0+10-9-8-8-6+8-10-0-6+4-7-10-9+0+7-5+8+2-1+3-6-3-0+6-0-7-8-2-1-5+7-2+10-6+7-6+2+3+0-9+7-1-7-4+7+0-8+3-9-4-4+6-6+4-9-3-10+8-4-3+1+8-0-8+4+10+9+2+5-4-5-8+1+8-9+4+1+5+7+0+10-6+1-7+9+1+8-5+10-0-5-8+2+8-3-7+1-4-1-2+4-5+7+1-5+4+5+8+3+9-3+4+1-6-8-8+0-2-4-2+4-9-1+1+6+9-7+9-8+10+0-0-8+0-4-10-8+9-7+10+0+2+0+1-7+4-6-10+3+0+8-4-8-9+1-0-5-7+8+7+0-6-5-7-9-7+10-4-7-1-9-6+5+10+10+10+7-4+8+8+4-3+0-6-4+7+3+0+9-6-5+10-10+6-5-9-10+1+2+5+7-8-4+10+8-9-1+2+1+10+8-6-3+8+0+4-4-9-1+5+5-6+10+4-3-4-2-4+3+8+2-0-0+8-3-6+6+1+8+10-4+2+1-9-4-8+5+7+7-8+7-6+2+1+6+3+4-0+0-4-0+6+3-0-10-4+7-1-3+3+1+3+8+4-8+5-2+2-9-0+3+9-2-1+10+9-5-5+5+5+9+6-2+10-7+7-2-7+5-3+2+5+8+3+10-4-1+10-1+0-8-10+7+8-3-8+10+10+2-4-2+2-8-7-1+7-7+8-3-8+1-5+0+4+3-0-5+9-3+3+10-3+3-9-9-5-7-3+1+9+10-8-0+3+4-8-10-2-2+9+8+9-1-2-8+3-7+9-1-10-9-8-0+3-6-7+4+4+5-5+4-0-2-1+5+10+5+4+1-6-3-10+5+7-9-10+0+2-0-0-10-5+5+1-2+3-6-6-8-7-8+2+5+6+10-1-6+1-10-3-4-4+1+7+7-0+10-6-6+7+5+7+4-3+9-9+10-4-9+4+2+6-0+1-2+2-8-2-6+0+1+1+8+4-8-10+8-9+4-9+10+7-1-8+9+8+4-9+7+2+4+4+3-0+10-3-4-7-4-5-7+8-0+5+0+3+0-3-1+9+10-8+0-2+8+2+8-8+7+1-2-1-6+7+1-0-3+4+2-3+2-9-9+8+2-10+1-6+2-4-0-7-3-7+10+9+1+6+0-6+1+6+2-7+7-10-4-0-2+2+1+0+9+10-9+0-6-9-8-8+10-8-0-0+3-10+1+7+5+4+5+6+10+4+7+0-4+1+7+0+9-2-1-1+9+0+7-0+4+6-4+2+2+10+10+3+7+0-5+9+6-6+3-7-5-0-5+9-5+3+9-2-3-3-2-6-6-7-4-3+7-4+4-0+0+4+3-6+7-2-9+6+2-0+8+10-1+7-0+8+6-6-4+1-6+0+4+0+5-2-6+7-0-10+7+5+6-4-1+10-5+6+6+0+10-2+1-3-9-3+6+4-5-3+1+0+2+8-1-1+2-10-2+10+4+8-7+7+5+2-5-7-4+6+0+1+10-7+1-6+9-4-6-6+1-5+3-5+5-5-9-4+7-7+10-2-5-5+10-6-6-5+0+10-1+2+10+5-2-2-7+4-7+6-10-10-2-6-6+10+6+10-3-7+1+10+7+8-7+3+6+0-8+0-7-10-10-2-1+1+1-7+9+8-10+9-8-9-2-10-6+4+1+9+2+10-0+0-1+8-8+2+0+7-0-3+0-9+10+5+1-2+0-6+0-7+8-7+5+3+3-10+2-5-4+5+8+6-1+5-9-10-4+9-5-6+1-5-7-3-10-4+10+0-0+9+7+10+5-1+7-10+2+8+9-5-5+10+4+1+9+6-0-3+0-7+5-2-5+9+0-7+8+1-2+3+9+2-7-7-0-0-7-5-10-0-7+1+0+3+7-1+8+8+7-9+9-2-2-10+7+7+1-8+8-0+9-6-9+9-10-6+5-8+4+6-8-10+3+7-2+0+6+5+8-1-4+1+6+10-1+8+10+6+1+3-0-7+0+8-4-9+9-5-3+10+5+10+2+3+7+3-10-5-1+5+6+8+9-10+8+4+5-9+7-4-10-3+5+8+1-1+7-2-7+0+5+0+7-0+0-6+7-8-10-8-8+5+3-0-9+10-5-9-0-7-10-6-0+6-0-8-1-9-9-5+4-5-7+1-5-6-9+1+3+4-1-6+7+7+7-4+0+9-5+2-9-10-7+8+5+4-6+8-7+4-6-5-3+10+1-7+8+2+7+9+1-6+1-6+10+8+0+0+8-9-4-8+0-5-5-2-3+8+10+5+9-6+0-10+9-7-8+3+8-4+2-5+0+10-4-1-2+3-5-0+10+3-9+0-9-1-10-2-3+8-6+9-4-5-1+9+7-0-6-4-6-6-0-4-10+7+4+7+2+6+10-0+2+5-0-4-6+1-9-10-0-7-6+7-6-5-7+9+3-2+5+9-3-4-0+3+6-9-6-8+2+0+4+10-10-1-5+3-9-9-1-0+8-5-6-9+6-5+0-3+10-6+10+9-6-3+5+5+2-6-4+4-9-0+10-1-1+7-4-3-7-9+10-1-10-7+10-10-10-5+0-2+1-8-0+1+10-4+3-7-9+9-10+4-7-10-5+7+1-0+5-10-2+1-7-6+6+2-7+10-7+3+2+6+7-8-8+7-3+6-10-1+2+8-6-0+4+5-0-10-5+5+6+10-10-5-7+1+3-1-10+7-6-6+8+10+2-8-8-4+6-8+9+1+9-5-9-7+3+7+2+0+7-2-10-4-9+6-8+8+6+6-5+6-8-3-2+4+1-9+10-3-2-0+8-0+3-6+5+8-5+7-9+8+9-10-8-2-5+0+9-0-9+2-4-1+1+5-10-2-4+2+6-10+6-9+0-7+6-1-5-5+5+1+5-7-3+8-4+7+4+8+5+10+3+2+2-6-6+3-0-4-6+9-0+3+0-6-10+2+3-8-1-5+3-10+2+8-10-0-0+10+7-9-2-7-7-6+10+4+6-8+10-10-0+1+9+10+5-10+8+6-6+9-2+5-2-8+9-6-6+4-1-9-1-1+5-4+8+2+7+6+9+7+10-9-5+9+2+10-5+7+7+0-9+8-5-2+3+4+8-0-5-8+2-6-8+5+7-4+8-6+2-5+6-5-8-3-1-3-4-5-8+0-1-0-7-8+3+4+0+5+7+5+8+0+7-7-10-5+6-9+7-2-8-1+6+8-9+4-4-10-10+1-8-5-5-10-2+7+6-4-9+4+0-3+0-9-1-2+1-6+6-10+1+0-9-4-4-4-5-9+1-1+0-2-7+0+10+6-8-6-5-1-2-7-9+8-8+8-5+9+10+3+8-1-6-8+4-7+8+8-8-10+4+1-1+2+9-6-8+9-6-3-2-3-0-6-4+2-3-0+6-3-2+0-8-6+4+7+1+5-8+2+8-0+10-6-8-6+5-8-1+3+0+9+0+3+4+0-0+1+7-10-6-4+3+8+8+9-2-8+6-4-6-2+9-9-1-8+7-2-7+1-8+2-1-3-2+6+0-1-8+5+8+9+0+3-6+5-7-4-6-0-0-10-6-7-0-9-7+1-2+10-9+8-2+2-10+6+6+3-5-9+3+3-2-1+1+7-5-7+2-7+9+5-10+5+2+2+8+10-3+8+6-1+9-9-7+6+1+5+6-3+6-1+3-8+9-4+8-10+6-10+2+10+2+8-4+2-4+4-5-4+0+1+0-3-2-3-6-10-2-4-10+3-8+5-7+0+2+8-9+2-9+1+5-0+3+2-6-7+8+7+6-10-9-5+8-2+2+1+9+8+9-9-7+9+2+10+2+8+9+7+6-2+4+10+9+2-10+1-3+1+1-6+9-6-8-10-1-3-4-5-0+4+3+0-8+9+8-7+5-10-1-6+5-0+7-0-0+0+4+2-8+3-9+6-0-8+8-5-6-7+2+2+10-8-10-1-6-2-9+6+1+10-1-1-9-8+0+2+10-0+10+9-7+3+10+1-10+10-3+8+2-2+10-2+0+7+5-6-8-6+3+1-9+6+4-3+4-0+8-1-9+1-9-5-10+2-9-5-6-0+8+6-4-3+3-7+9+7-6+3-10-0+5-10+6+8-5-5+8+1+4-9+1-10-3-5-0+1+4+9-2+3-3-5+5-5-10+7-0+0+1-3+0+1-8+6-7-7+7-9-1+7+6-8-8+1+4-4-8+1-5-3-10-8-8-3-9+9-2-7+8+4+5+0+2+5-8+2-2+0-0-3+4-2+4-3-0-9-2-5+4+1+5+7+10+1+5+6+4-4+4+5+8-9-8-3+6+0-5+5-10-5-0-5+5-3-0-9+1+0+10+7+6+1+2-10-7-7+1+3+9+4+6+1-1+7+8-8-1-1-2-3-4+1+5+10+0+0+1-7-8-0-3+2+10+6+7+4-10+0-10+8-2-1-1-8-6-7+1+3-4-10+4-6-9-3-4+0-1-5-2-3+7+5+7+0+8-5-0-5+5+0-0-8+0-2-9+2+0+2-8-7-9-1-4-0-5-1-3+7+9+5+2+9-9-9+1+10+10+0-5-8+4+7+5-10-5-8-4+4+6+8-1-1-0-5+2+5-3-9-9-9+6+10+4+2-9-7+9-2+1-5-9-7+4-1-1+9-1+1-5+4-3-10+1-6-6-2-1+1-8-1-10+1-9+8+4-10+0-1-0+5+8-8-9-3+0+10+5-0+4-1-0+1-3-6+10-1-4-6-2-3-3+4+9-6-10+10-1+1-7-0-7+4+7+2+9-4-4+2-4-4-2-10-5-3-6+10+5-5-9+10-10-3-0-1-5+1-8+5+0+5-5+4+9+1-6-3-0-1-4-4+1+2-9+9-10+7+8-8+10-10+2+4+7+3+0-2+9-9+5+10-1+6+8+5-3+5+4+8+6-6+1+6-10+7+0-0-8+7-8-1-10+3+0-1-3+3-2-7+7+9+1+4+0+4-8+2+0-10-3+4+3-8-9-8+1+1+9+8-2+5-9-4-2+3+6+9-0+8-5+7-7-0+0+9+5-9-9+3-1+4+3-6-6-1-10-6+5-1-10-7-2+2-3-9+0+5+8+9+1+4-9+5-3-9-3-3+7+8-9-8+2+6-1+9-0-0+1+5+0-8-0+8+0-8-0+2+1+5-0-7-3-10-4-5-3-10-7-6+5-10-2+8+0-4+2-6+10-2+8-8+7-8-4-10+7-9-5+3+7-5-7+2+4+8-7+1+1+6-3+6+2+10-10+1-4-9+5+3+1+9-6+5-0-0+9-0+1-1-6-10+3+6+3+5-8-4-3+4+2-0+1+3-10+7-1+6-3+4+2-2-5-1+4+5-3+0-3+3-9+7-10-4-0+6-3+4+2-3-8+6+8+4-8+5-8-4-1+1+2-7-6+9-6+10-0+6+6+0+3-4-9+8-0+2+6+4-5-9-2+0+4-10+3+2+9+5+2+0+9-10-6-10-10+0+0+4+3-3-3+9-4-2+9+7+4+2-9-0+8+0+6+10+4+3+4-5+8+0-8+1-3-5+10-1+8-6+5-7+5+3-8-4-1-2+10-5+2-10-0+0-7+2+9+6-5-5-0+7-3-10+0-8+2-6+3+2-6-5+9-2+2+0+8+3+10-6-3+6+10+4-5+6+8+6-5+3+10+7-8-10+3+4-8-1-3+2+8-4-3+10+7+4-5-7+2-6-2+1+9+6+1-10+6+3-10-7+9-3+9+5-9+0-3-7-8-7-0+10-4+4+0+4-6+9+0-4+3-10+3+0+9-8-5+9+7+2+4+5+6+9-4-5+10-0-5+0-6+3-7+10+1+9+1-9+9+5-3-4+10+4-7+3-4+0+9-0+2+3-9-6+7-10+1-8-4-6+5+1-0-9+8-7+4-5-5+0+7-9-8+8+0-4+9+0+10+9-7-1+3+5-8-10-6+3+8-9-3+4-2+9+10-6-4+8+9-0+9+0-0-10+4-5+6+10-9+1-4+6+10-7-9+10-7+10+8-2+9+0-1+6-0+7-7+2+10+7-6-8-0+6-3-5+0-0+8-0-3+1+7+5-0-3+10+9-7+8+8-1+7-0-9+5+8-0+2-0-10+0+3+3-1-1-7+2-6-10+10+2+9+2-8+1-4-2+10+10-1-8-4-3+1-6-3+0-10+1+4+3+2-5-7-4+6+8+5-5-6-9-4-2-10-10-2-10-8-6-0-8+4+0+4-8+5-0-10-10-6-0-0+2+0+6+3-5+2+10+7-5-3-4+2+7-4-1-5+7-7-3-6-4+1-6-10-8+2-9+5+0+5+1+10+4-9-4-7+7-10-6-5+1-3-4-8-10-7-7-1+8+10-9-4-10+7+5-2+8-3+5+9+8-6-8-9+8+2-3-2+3+2-7+4-9-8+9-8-2-4+1-7-2+1-7+6+4+8-5+8+2-0-4+5+6-7-7+7+5+10+6-8+8+1-0-7+8+2+4-9-1-0-3-6-9-10-5-4+0+7-10+7-0-1+7-0-4-7-9-7-4-5-8-0-10+9-9+10-2+0-6+6-1+6+0-5+7+10+5-2-0+5-5-10+9+8-0-6+7+3-1-2-5-6+9-6-9+8+2+7-3-9-5+6-8-4-10+3+1-5-5-0-5-9+9-0+2+4-0-1+3-9+10+4-6+7-0+10-9-8-2+2-5+9+10-7+7+4+0+0+3+1+0-2-0-1-2+5-0+8+10+2-10-0-3-6+7+8-0-0+8+9+10-9-7+1-5+9+9-7+2+6+10-9-6+10-2+9+6-0+8+8+10+4+3-10-10+0-1+1-9+10+5+3+4+7+10-0-2-8-8+8+2-8+5+1-0+7+4-4-7-6-2-9+2-9+7-4-2-6-10+8+5+9-0+3+0-10+10+3+7+5-6+6+3+0+4+7+1+0+6-6-1+4-0+2-6+7-3-4+7-9+8-4-4+9-8+9-8+5-4+9-10-1-1-7-6-3+4-0-4-8+9-2-7+1+8-5-3+8+8+1+1+9+5+2-0-3-0-5+2-5-8+6-2+3-0+7-8+1+7+2+6-1-3-5-7+7-7-7-4-8+0-4-2+0-6+4-10+2-9-6+5+10+2-1-9-8+7+7-4+1+9+1-3+5+1-10+1+6-5+2-4-4+10-9+9-4-1-6+0+5+4+7+3-6-10+7-2-7-7+1+7+7-8+10-3+2-0-0+7+7-8-6+9+1-8-9-3+0+0-2-2+4+2-9+0-9-7+10+3-8-0+4+8-7-3-0-1+8+1-6+10+10+7+8+4-0+9+9+9+4-6-5+7-8+9-6+7-2+2+4-1+10+10+2-6+10+0+7+3+1-6-4+6-8-9+3+4+1+8+8+5-3-6+6-6+5+5+8+8+8+9+3-9+1-4-1-2-3+7-3-8-7-1-0+4+7+4-4+8+4+8+0-10+3-1+6-1-4+1+1-3-6-6-0-1+8+4-3-2-1+10+6+5-2-2-2+8+9+2+6+4-9+6-3+3+9+8+6+1-8+3+4+5+6+3-3+8-10+7-5+6+5+7+5-2+8+6-1-7+10+6+2-2+10-6-2-7+3-8+4+9-6-7+5-2-4-2-8-5+6-10-6+2+4-4+8-9-4+2-3-9-8-1-0-0-4-8-0+3+2-6-2+6-3+4+0+5+3-6-1+2+2+1+0-8+4+4+6+3+7-7+4-3+10+8+4-3-3-1+7+8-10+0+2+4+10-3+7+8+8-1-8-5-8+10+9-7+9+10+0+10-0-2+5+4+1-2-9-9+8-0-7+10+8-3-4+6-7-0-5+4-0-3+7+9+6+6+8-2-0-8+8+9-7+0-4+10-8+10+2-2-2+6-8-10-9-5-10-4-8-10-10-4+9-3+7+10+3-1+8+4+0+8+5+7-5+1+5-0+0-6+3+2+8+9+2-7-1-6-6-6-1+2+8-0+8-9+7+4+2-1-7-3-7-7+10-1-10+0+5+0-10-10-10-0+5+10+10+1-5-4+8+1+7+7-10-1+7-8-5+2-1+5+8+8+1+0-2+10-5-4+8-4+0+1-8-3+3+7+9-1-4-2-1-2-6-4-8-9+9+10-10+2+9-3+6-2-10+1-8+2+4-6-7-0+8+2-3-1+2-2-9-8+6+8+0+5-0+0-7+6+7+10-1-1-9-8+6-8-4+2+10+4+7+8+0-4-8+6-9-9-5+0+8-7-8+3-10+9-9-1-1+4-10-5+2+2-2+0-5-6+3+1-4+5-8-10-4-8-3+6+8+8-7-6+5-7-6-1+8+10+8-6+5-1-9-7+2-1+0-1-1-2+0-9+5+1+3-1+9+7-6+2+3+5+1+4+10-7+7+0-1+4+6-8-5-1-9+0+0+7-2-10+9-7+9+8-7-3-0+9-5+4-6+3-9+4-3+7-2-7-2+8+4+10+4-10-7-10-10-7+10-0-7-9-6-3-10+1+0+3-1-1+6+7+9-0+6-9-6+6+6+6-1+1-5+3-5-1-1+0+4+9-3+10+3-0+8+1-5+9-1+5+4+9+1-8-1+8-8-8-3-7+6+0+0-4-10-10-4-5-6+3-0+5-8+5-7-3+1+0-5+3-7-0+3-10+7-2+6-4+6-8+9+10+9-7+9+2-7+4+7+4+4-0-6-1+4+4-2-4+8-8-8+10+5-10-5-1+6+10+9-0-10+4-1+10-1+2-3-4-1+7+4+7-10-8-4-2+5+0-8+7-7+1-9-2-0+8-5+8+2-8+7-8-3-2-9+0-10-9-2+10+5-3+9+7+9-5+8-4+8-9-10+3-1+6+1+2-10-6+2-6-8+1+1-2-0+3+4+0+8+7+5-5+2-5+7-1-7-8-7+5-9+1+1+7+7+0-9-10-2-6-3-2+0-9+7-10+2+8-7+4+2-3-0-8-1-3-8-4+8-3-4+5-8-2-10+8-4+10+6-0-6+7-0-0+1-9-6-10+10-6-7-9+1+6-6-7+1-4-5-9-10+10+1+9+3-0-9+2-0-1-6-0+1-5-5+7+3-3-8-8+7+9/4+8+7+3-4-0+7+6+3+5-3+3+1-1+0-1-3+7-10-9-2-4-9-0-9+5-9-9+10-9-0+0-3+0+1-2-2-2-1+1+8-7-3+9-8-7-3+4-7-5-9+6+3+3+10-10+2-6-1-5+6+0+2+2-9+3-0-0-3-7-1+2+7+2-1+10+0-6+6+0+6+8-6+6+4+2-7+8-4+6-3+4-6-8+1-3-10-1-5-3-5-6-3-6+8-5-10-7-5+6-0-4-0+3-3-4-9+3-5+6-1+2+2-9+7+6+7+3+3-1-8-5-7+6+8+3-1-0+6-9+1+1-5-2+10+7+3+2-2+10-6-7-10-9+0-7+6-0-4+10-6-9-8+3+9+8-1+0+0-0+5+3+4+8+5-6+7+1+6-6-3+8+4+6+0-9-6-6-0+4-3+7+5-0+6+0+9+1+1+0+1-8-4+0+10-1+5-1+4-2-2-0-2-10+6+6+1-2+2+0-3-5-8+1-4+4-5+4+3-0-9-7-0+6+3-9-0+4+10-2+0+6-0+3+8+1-10+5-6+9-3-5-10-0-3-1-9-9+8-0+6+4-3-1+5-8+7+3+1-8+9+3+9-6-10+2-1+6-7-10-2-0-0+5+2-7+4-0-1+3-3-8-7+0-1+3+3-6+0+8-2-9+9+0-2-2+0-10-6+9-2+1+4-0-5+7+0-0-3-5+1+10-9+3-10-4-9+4+2+2+1-9+4-2-1-5-10-3-4+10+10+1+2-6-3-9-1-4-5+5+10-5+7-6-9-9+2+3+4-10+3-0-9+2+3-5-8-6-4+2-3+1+0+0+1+7+8-8-10-0+10+6+7+8+10-5-2-6+0+7+8-6+10-0+7+6-3-2+6+0+5-8-10-9+3-3+9-7+5+8+9+9-0+0+8-7-2+2+2-1-1-8+10-10-2-9+10+9-2-7+3-1-2-4-1-9+8+8-2+5+6-7-3+8+3+7-0-3+4+7-8+7+0+0+2+8-2-9+7+2-9-7+6+8-10+3-1-6-3-4+7-3-10-5-10-1-2-7-7-4+6-10+5+0-1-10-7+9+1+5+8-2+0-7+2-7-8+4-5+2+2-8+9+4+3+9+10+4+8-3-5-9-10-4-3+8+4+4+6+9-7-2-3+0-8-9+8+5+7+3-1+2-8+2+2+8-7-3-9+1+4-8+2+8-4+2+4-5+7+0-3+2-0+9+5+2+6+1-8-8-2+2-6-9-4-10-8+2-4-7+1-2-1-2+7-7+9+9-4+2+9-4-4-9+9+4+9-0-7-3-0-6-4+8-3-9-6-1-3-10-10-7-4-7-10-3-10+1-10-1+8+8+3-8+0+10+10-8+3+10-5-3+6-10+9-4-5+7-4-9-8+7-8+7-8+1+7+1+7+5+3-10+2-3-5-3-0-6-6+0-5-1-2-5+5-10+4+9-5-6+7-9+3+4-4+9+6-3+5-9-7-10+6+1+10+9+0+2-2+2-0-9+9-8-9+3-10+7+3+0-1+9-10+4+4-0-1+4+10-3-3-2-5-10+0+7+10-0+3-3+7-10+6-3+8+3-4-1+6+9+8+10-10+4-3+2+0-3-4-8+0-4-3+9-4+5+8+1-10-4+8-9+5-3+2+2-1-2+4-10+8+2+7-6-2+4-4-2-4+5-6-1-5-3+8-0-8+7-0-6+9+5+2-0-2+8+0+7+6+8-5-3-5+1+2+4+8-5-9-10-4+7+8-8+2-3+3+8+8-5+7+6-0-4+0-0+3+0+2+1-9-4-9-9-1-1-0+5+4+8-6+6-3+10+7-4+8-0+1+2-6-3+2-6-6+6-3+10-3-9+0-6+0+4-5-0+10+9-0+10+1-6+0+3-5+3-9+10+7-7+6-9-6+5+4-0+3-1-1-4+8+9+1+8-0-7+4-8-4+5+9-2+9+7-10-5+1-9+2-8-9-5+8+8-9-1+0+4+2+0-9-2+9+4+5+10+2-2-0+5+7+10+9-3-10+9+6+5+0+3-6+2-1+7-5+6+8+8+9+2+4+1-1+10-8-9-4-8+10+10-5+8+4-7-3+5+6-4-4+1+9+10+2+0-4-6-2-6+7+0+9-0+2-4-4+8+6-0+6-2+1-6+7+6-10+6+7-9+9-10-3-1-6-2-8+0+6-5-3-8-3+2-5+7-7+0-2+5+5+6-4+3+4+8-7-4+7-0+8+5+8-10+8-9-10-1+0+0-7+8+3-6-10+1+2+6+1+3+4-0-3-10-5-2+0-4+8+8-2+5-0-10+4+2+4-0+2-5+10+6+2+2-6-9+3-6+8+6-10-9-7+9+2+5+6+5+1+2+10-9+10+0-5-0-3+6-6+8+2+10+5-0+9-9-1+0+4-2+6-1-5-5+2-4+6+6-2+2-8+4+9+10-3+7+10+2-3-3-2-5-7+9-0+4-0-3+8-3-4+5+0-6-2-5-3-5+7-5+7-6-2-9+6-5-0+10-6-7-4+0-4+7+3-10+3-7-4-5-3-5+2-1+8+6-7+7+9-4+2-5+2-5+5+5-0-8+10+8+0-5-4-3+9+8+10-4+9+8+6-5-1+6+8+5+2+0-3-3-4-0+9-2-7-5-3-2+0-3-8-2-10+2-0-3+1+9+0+5-9-7-0+10+0-3+1+9+7-1+9+5+2+4-2+7+3+10-5+6-6+3-3+6-8-7-10-7-8-1-1+0+6-0-5+3-6-4-4+10+2+5-6-7-6-6+5+10-4+1+4+6-2+5+4-1-0+4+9-5+3-2-7+4+8-8-4+7-10-4+0+5-2+5+3+9+6+4+9+9-8-2+9-8-1-8-3+10+4-8+7+6-8-10-8-2+3-3-10-7-2+8-10-9+5+1+0-0+6+2+2-2+9+10-2-10+2-0+5-1-2+2+10-3-9-2+8-5-2-0-4+6-10+4-9+5+10+4+6+7+2+0-7+9-9-0-9+6+9+6-7-5+5-2+8-5+9+0+7+10+8-10+0+0+7-5+8-10+5-7-4-9-1+4+0-6+7-10+5+4-10+4-0+1+4-9+8-6-6-7+4-10+0-5+3+7-3-6+1-1+6-0-5-1-6-7-7+6+10+3-4+3+4+8-6+3+0-7+6+0-0-5-1+9+2+2-2-4+5+4-5+6+7-4-7-4-8+5-10+8+8-10+10-3+10+5-1-6-5-1-6-3+8+1+3+1+6-9-1+2-6+10+1+7-7-8-7+6-4+1-2+4+0-7-8+7+2+8+2-3+10+2+8+8+10-2+3-8+8-1-1-2+7+8+7+3+5+0+6+4+3+0-10-2+8+7-9+4-9-5-6+0+5+8-0-4+8+0+2-1-1-2-1-0-10-8-6+10-9+1-2+10-9-8+5+4+9-10+2-6+3+8+6-2+4-8+0-7+1+5+6-2-2+9+9+6-6-0+5+1-9-2+5+8+1+9+9+3-10-10+7+6-10+2-0+1-9+1+2-2+1+3-2+8+3+3+3-3+10-2-4-1-1+4+1+6-10-9-7+0-10+10-1+3+4+6-5+8+0+3+6+7-9-9+4-6-7+5+0+6+4+10+1-10+10-10-6+1+6+4+5+10-10-9-10-3+10-5-0-4-2+7+6-0-6+2+6-0-7+5-5-8+8-9-4+6+8+0+10+1+5-3-2+10-8-4+3-2+7+2+2-3-9-1+9-4-1+3-9-3+7-2-9-10+10-7+1+7-1+8+2-8+3+6+0+0+0+0+7+0+9+10-8+0-4-10-8-7-3-6+7+0-5+4+10+9-10+7+6-1+1-6+7+7-10+7+0-10-3+3-10-10+10-1-7+10-7+6-6+3+2+10+0-6-2-8-8-5+6+10+5+7+1+9-5-3-1-6+6-8+8-2-2+1+5+2-4-8+3-1-4+8-4+8+7+4+5-6+3+3-0-10-6+7-5+9-3+7+0+6+7-6-2-0-5-4+6+7+2+4+6-6+4+0+3-3-2-4+10+4-9-4-9-1+10+0-3-1-6-8+9+1+6-9-6+3+0+3-4+0+6-3-10-8+4+10-1+2+10+0-1-5+3-5+0-2+4+5+9+5+1+5+9-8+10-1-0+4+2-1-4+4-1+7-0-3-6+10-3+7+8-6-9-0-7-10+8-3+8+9-0+3+9-2-10-9-7+6+7+1-5+2+8-1+0-4-3+1+6+1+6+5-5-0+9+1-10+4+7+8-8+9-6-3-0+10+0+6+5-10+8-3-5+3-2-8-5+10-5+3+3-10+1-3+7+8-10-8-7-10+3-10-5-0-3+8+9+3+4-5-6-9+4+2-10-4+8-7+9-7+5-10-6+0+4+1+1-1-1-5+3-0-0-7+8+3-4-7-2+10+2-7+8-1+4+10+9-3+7+6+8+6+3+0-4+8+2+3+5+3-8-0-8-4-8-1+7-0-9-4-1+7-5+0-2-0+8+10-8+1-3+3+9-3-8-6+2+1+1-6-6+1+9+2+4+5+8-6-10+0+3-10-0+7-8-9-10-5-4+3-8-8-10-9-5+6+5-2-9+3+3+10+6-3-3-8+5-4-4+6-5+1-10+4-7-6+0-2+7+7-5-3+0+7+5-7-2-1-2+2-1-5+9+2+0-9+4+10-1-8-0+1-6-9-0-6-0+4-10-1-4+10+4-0+6-10+0-6-2+10+2-4+0+8-6-0+3+0-8-7-2-5-6-2+1+1+0-4+10+8+3-6+4+0-10-9-7+3+9+7+5-9+6-3+5-8-7-2-2+5+5-1+2+6-10+3-8+9+4-0+7-2-1-5-3+3+10+0+2+2+7+10-4-4-0-10-5+4-8+4+3+2+7+3-0+3-0+9-5+10+7+10-10+6-0+2-2+5-10-2-6-1-7-2-3-7+9-0+8+8+7-8+6+8-4+6-4-6+1+8-3-9-4+1+9-7+7-9-9+4-5-7-0-1-2+2+3-5+6-3-8-4+3-1+6+1-4+5+0-3-6+8+10+4+8-9-8-9+1+2-7-8-10+9-9-2-0-9-4+2-3-10-5+9+10+2+0+8+5-4+1-9+9-9+9+9-1+10-8+1+3-1+3-3-2-8-2-0-10+4-1-3+6-6-5+7+7+8-1-5+5-10+6-4-1+6-8-10-6-2-7-7-9+0+6-1+2+5+5+9-6-7+1+2+4-3-10+4+7-10-3-5+10+0-4+3+6-6-3+8+1+1-4-9+4-4-5-5-1+1-3+9-2+0+2+0+8+3+1+0+7+3-9-5+5+10-6-6+3-7-7+6-2-7+1+0+3+0+3-10+4-6+0-0-5-5+0-1+9-7+7+9+9-0+10-7+10-9+2-6-6-2-7-7+5+2-2-6-4-3+2+8+5-6-10-2-7+4-0+3+4-9+5+8+3-9+6+6+1-5+7+6+9-5+9+8+6+6-0-10-7+2-1-8+10+9+6-3-7-1+2+7-1-9-4-3-4+0-0+2-2+10-9+6+5-4-0-8+5+9-10-7+1+3+4-0+6-8+7+2-0-9+0-7+0-4-9-9-2-5-5-7-10-6+3+10+10-2-4-5+6+5+6-2+8-2+1+6-6-2+6+5-8-7-0+0+10+5+5-0+0+9-2+1+6-8-3+8-6-1+2-7-6-6+9+8+8+3+7+2+7+0+2+0+9-9-6-4+0+4+2-10+6-5-9+10+6-10-3+9-7+5+5+3+7-4+2-0+8+0-10+2-8+5+0-8-6+10+1-2+1+6+9-4+1-5-5+5+3-4-8+0-9-1+0+5-1+9-1-8-3-8+9-1+7+9+0+5-2+7-5-6-4-3+3+6+1+5+6+5-4-9-4-4-1+7+6+3+1-8+7+5+0-8-4-0-4+4-0-5-5-10+9-9-10-8-7-9-8+4+6+9-3+0+5+1+7+4+0-0-6-3+5-0-7+5-2+3-0-4-10+6-7-8+10+8+8-8+10+8-9+5-2+3+1-3-2-4-6+2+9+7+8+4+8-2-10-10+4-7-9+2-9+10-6+5-4+10+10-8-3-0-6+8+3-10-8-4+9+7-0-3-5+5-9+0-10-0+3-8+7-8-7-7+4-4+8+8+9+0-10-1-10-3-2-0+2+3+3-6-3+2-7+1+0-10+1-0+5-4-3+4+10+7-0+1-4-1+4-3-9-5-9-8-8-9-9-9+6-0-1-9-6+2-6-9+2+10+5-7+9+1+2+1-10+4-4-4-9+9-2+1-2-8-8-6+3-0-4+1-10-10+7-10+3-8-6+8+7-9+6-4-8-5+3+2+4-1+6+8+8-6-1+6+10+10-4-0-6-7-5+1-6-5+8-0-5-1-9-9-9+9-10+3+6+10-6-8+5+9+0-2-5+5-10-4-4-2+3-4+6+7-6-8-3-10-10-3+0-5+0+1+5-5+5+10-9-1-5+9-7-5-7-2-7+5-7+0-3-10-4-8+8-6+1+5+2-5+2+5-4-4+0+7-3+2+3+7+5+1-3-5-6-4+10-9-8-5-3+6+5+7+4-7+8+3+3-4-3-0+3+4-10-2+9+8-6+3-9+4-6+3-0-4-0-9-2+9-2+8+6+2-5-8-6+6+4+8-9-0+5-2+3+1+0+1-1+0+10+3+8-6-2+8-6-2+10+10+9-1+10-7+3+2-7+5-7+0+2-1-6+9+4-9-5+4-6-9+0-9-1-6+3+7+4+1+10-6+9-6-4+10+10+3+0-0-7+5+7-0-1+7+10+6-5+6-10+1-6+2+8+3+8+8+5+0+3-10-2-10+4-1+6+10+10+9-7+0-1-9+7-6-8+7-1-5-6+6-7+8+0-0+9-7+6-3+10+4-4+5+7-1-4-10+4+2-8+2-7+1+8-6+0-1+3+10+9+3-0+5+9+5+2-0-10-8-7-8+2+2-9+10-5-7-5-1-10-7+3+1-4+6+7-8-3-3+8+3-4-4+2+5-5+1-0-7+8-4-9-8-6+2-4+8-6-9-1-1+10+7-4+7-6-6+10-8+4-8-9+0+6-7-8+9-7+5-10+2+1-1-6-1+0-4-4+10+9+7+4-8+10+1-10-10-6-9+9+7+8+9-9-1+3-8+4-3-5+0-8-3-8-1-6-2-8-2-0+4+7-0-7+3+3-10-2+1-1+5-4-3-10+8+9+7+7-3-9-0+1+6+9+6+0-3-9-2+5-7+3+4-7-4-2-9+5-5+2-1+5-7-1+1-0+1+9-10+10-5-1-5-2-4+4+6+0+4-4+1+9-2-5+4+3*9+6-4-4+2+4+1-4-0-3-8-0-4+8+5-3+6+2+7-0+9-1-10-3-5+10+6-3-6-3-1+3+10-7-2+3+5+0+2-9-1+6+6+4-2+9-5-9+6+5-2+3-0+0-9+0-3-10+7-4+8+9-4-10+2+8-4-8+7+6+2+9-1+0+3-8-1-10-2+5-2-2+8+5-6+10+1-8-2-7+3+8+4+7-10-2-3+2+5+3+8+7+3-10+2+10-6+8+10-2+4+3+2+8+6+9+0+9+8-0+8-9-6-0-10+4-2-10+8-6+6+0-2+0+0+6-7+9-10-4-10+8-10+1+8-3+1+2-5+7-2-0-10-10-0-4-5-5-0-0-4+1-8+7-2+5+4+9+4-6-10+4+8+2+5-3+8-1+2-9+4+2+6+2+6-9-5-1+6-5+1-3+3+1-7-10-5-0+10+0-5+10+1-9-2+6+0-9-6+5+7+6+3-2+1-1-6-3+8+10-5-7-4+4+10+4-1+6+1+5+3-2+0+0-4-0-0+6-8-2+8-3+9-3-1-9+4-1-6+6+3+9-6+9-0-2-4-4+3+9-10-6-10-7+1+10-10-6-8-1-5-2+8-0+6-0-2-3+10-8-8+8-7-0-5+8+8-0+1+10-0-8+3+10-4-10+0-10+4+1+4-5-10+5-7-2+4+3-6+3+1-9-6+7-6-7-3+0+6-4-5-0-6-7-2-7+6+7+0+6+0-8+0-9-0+1+4+9+10-3-6+2-6+2-6+1+8+10+6-3+3+7+8-4+7+5-0+10-10+2-1+3-7-5-2+6+7+4+7+4-0+7+4-3+0+1+8+7+2-7-10-0-4+3-4+5-10-8+6-3-10-2+5+6+9+6+9-1+2-6-1-4+7-7+7+7-8+7+8+1-3+7+8+10-7-1-3-3-5-5-6-5-9-4-7-6+8-5-0+6-2-4+8+2-2+5+1-4+10-9+7-9+3+4+1-2-8+6-3-0-8+0+2+8+9+10+5+3+3-7+5+1-4-9-5-8-1-7+1+9-2-7+6-7+9-0-7+9-4+7+7-9-4+1-0-3-1+4+7+2+8+6-6+6-9-2-3+4-6-9+5-10+3-5-9+6+4+2+2-1+3-3-10-10-0+8-7-3+9+10-6+1+0+6+4-3-3+10-9+5+10+8+7+3-5+10+5+7+2+5+10-3+0+5-2+9+3+10-8+4-7+3+0+10+9+9+7-4-4-8+2-3-9+9+10-7+0-0-0-8+8+0-6-3+7+4+3+3+8+4+5-4-2+5+5+4+10-2+1+2-4-3-1-1+2+9+10+0-4+10-8-6-5+5+2+7-0+4+8+0-4-8+6+6+1+10-9-9-7-2-6+2+4-3-9+0+7+10+8+1-4+10-6+9-5+7+2+7+9+10-6+6-8-4+3+5-6+8+4+4-10+2+8+1-0-9-4+3+5+9+10-4+8+2+3+4-7+0-1+4-3-5-10-0+3+6-8-6-0+9-2+10-5+1-0-6-9-6-5-4+4-5-10+6-9+1+9+2-0-9+9+3-5-0-8-2+5+10+8+0+9+8-8+9+10+4-5-10-1-8-0+1+9+3+4-8-7+10+5+2-5+3-3-6-6+7-0-7+0+6-10+2+5+6-0-1+2-5+2+0-4+3-1-9+2+4+9+5-3+8+10-3-1-1-7-5-4+9-8+8-6+8+7+6-5+3-2+2-4-7-8+3-4-4+0+7-6+7+1-7-0+1-8+5+8+7+3+2-5+2+3-5+0+6+0-10-9-8-6-3-2-9-7+3-3+8+0+5-6+6-2+1-8-1-9+9-4+7-7+0-8-0+9+6+1-2+2-9-5-5+0+3+6+9+7-6-8-9-9-6-3+1+3+7+8-1+3-1+6+9+9-7-1+1-5+2+6+9-2+0+2-3+2+1+9+2-3+3-3-1+1-8+10-0-10-4-3-4-5+5+3-6+5+9+2+1+9+2+10-3-4-6+7-0-9-3-1-2+5-1-4-10-9-2+2+8+7-5-10-0+3-9+2+5-4-10+0+1+8-3-10+7+1-1+9+2-1+9+0-10-4+1+9+8-7-8-5+9+9+7-6-4+6+4-1+9-5+5+0-7+3+5-3-1+7-4+4-4-2-10-1-6+5-8+9-9-8-9+8+0-0+4+4+8+1+1-10+10+6+8-2+4-4-2-6+0-9-8+0-0+5-7+10+9-0-9-2+9-5-10-5-5-4-8+2-7+5-8-10+7-10+10-9-4-8-9+7+3+5+3+3-4+8+8-10+1-8-3+1-5+6+7+3+8+10+2+7+7-2-1-2+9+8+3-8-6-4-9+10+4-9-2-5+9+2-6+1+0-7+0+4-9-2+6+6+7-3+8-4+6-6+0-2+4-2-10+3-5+10+0+8+1+10+4-8+3-1+0-10+3+5-5-3+3+0+3+0-0+4-5+0-3+6-4+4-2-10-2-4+2-0-3-8+9-5-3-1-6+7+5+8+3-5+9+8-0-0-9-3+5+8+7-3-6+10-4-2-2+0-3-5-7-5-3-10+5+0+9-10+4-9-7+9+0-9-4-8-1+5+8+6-3+0-9+10-3-3-4+4-6+1-5-0+5-9+0+3+2+7-9-5+4+5-5-6-3+7+8+8+1+1+5-6-2-7-2+4-4-2-7-5+8+0-3+8+2-10+8-0+3+3-1+1-4+8-4+2+3-7-10-4-6-9-8+0+4+8+7-4-10-0+8-2+10+8-2+10-1+6-7+0+3+8+3+4+7-3-9-8+9+8-4-6-6+0+3+0+10+4-7-6+10+4+8+10-6+8-10-6+1+8+4-10-1+3+5+7+6+10+4-7-6-7+4-0-3+0-4+8-1-5-3-1-10+2-1-1+9-0-7-10+3+10-10+1+0+4+5+4+4-0-0-1+3+7-7-9+8+1-4+6+5-5-6+6-9+6-5-4+2+3-1+7-5+2+0-4-5-3+7+5+0+5+10+7+6-5-4-1+8+1-9-3+9+2-6-1-1+10-4-8+6+5-8-0+8-2+4-0+1-6-2+0+3+4+9-1-5-2-7+6+8-9-3-5-5+2+5-1-1+0+6+2+7+5-10-10+3+7-3-9-8-10-3-4+7-2-6-10+2+8-5+5+5+9+7-6+1-3-9+6+2+0-8-10-1-5-7-6-0+7+6-5-10+8-9-0+8+0-1+10-1-5+8+4-1+9-5-6+8+9+3-0-3-1+4+4-8+7+1-9-0+7-8+1+1+9+10+3-5-1+5-9-8-9-8+7-4-7+6+10+0-5+5+10-10-2-4-5-1+9-9+0+10-3-10+7+7+1+2+6+6-3-5-2-7+1-6+2+0-2-4+4+8-3-7+0+7-1+9+0-3-5-9+1-10+7+5+10+9+6+9+1+5+10-5-5+4-6-8-9-0-6-8+4+6+6-0-2+6-2+2-8-10+0+0-5+8+9+4+0-3-6+10+9-7+3-1+5-4-7+6+8+7-6+5+1+7-6-8+6+6+2-9+3-1-0-6-6-6-2+2+8-8+1+7-8+4+0+1-1+9+10+10-3+0-5+4+2+6-4+10-4-9+8+8-10-2+5-10+2+7+9-3+3-5+9+7+9+7-8+2+10+5-8-0-0+8+5-8+2+5+1-3-4+6+4-4-7+5+4-9-7+8+3+8+7+10+4+1+9+8-5-1+4+8+7+3+2-9-4+2+6+8+7-5+10-5+0-3-8+5-2+8+1-6-10-6+6-2+7+9+3+10+3-1+4-7+3+2+7-2+10-7+9+7+1-6+5+3+8-5-6+5+4+9+5+1-3-2+8-10-7+1+4+4-5+6-1+1+10+4-2-6+7-3-8-2-8-0+5+10-2+6-1-1-7+3+8-9-3-10+7+8-2+5-6+2-8-2+5-6+8+9-2+6+9+10+8-0+1-3+8-9-0-6+3+3-1-3-10-1+9+4-9-8+8-2+2+10+6-2+10+5+3+6-1-6-7+0-8-4+4+1+3-7+1-5+6+8-6+7+5-9+5-5-1+10-7-7-9-6+10-6+7+2-1+8+5-5-5-5-3+2+7+6+9-9-3-4+10+1+6+6+4-5-4+6-1+8-5+5+7+1-5-3+9+7+3+7-0-8+8-8-4-1+5+6+6+6+6+10+4+2-10+3-3+8+7-5-4-10+10-7+7+9-2+9-6+2+10-7+5-5-10-0+9-4+1-0-2+0+7+4+4+2+5+2-7+9+4+6+2-0+7+8-2-7+2-10+6+7+8-5+1-5-5+9+2+10-5-5-3-1-10+8-2-8+8-10+7-3-0-0+9+6-4+8-1+2-8-2-9+0-6+7+7-4-6+1-7+4-0-7+9+0+0-9+7-4-8-4-1-3-6-4-8-6+6+5+0-7-8+5-8+4-8+6+10-2+7-4-6-5-1-4-10-10+10+4+7-8+6+5-0+1+9+9+0+1+6-7+4+2-6+5-7-6-4+1+10-2-1-7+1-10-5-6+10-1-0+4-4+5+9+6+3-4-7-0+9+6+1-4-2-1-8+5-1-0-9-8-9-2-6+9-5-8+4+0-8-2-0-0+2-6+7+4-7-3+1+6+9+4+10-8-0-7-5+10-4-4+7+8+1-8-8-9+3-4+9+4-3-2-9-7-7+8+8+3-2-4+8-10+4-1+3+1-8-8-3-1-1-5+4-10+7-3-9+3-1+9-5-3-8-5+6+2+2+5-1-10-7+7+1+10-0+2-9+2+1-8+10-6+1-4-0-10+9+2+4-8-8+4-7-7+5-2-7-7-2+10-1+2-0+6-9+6+1+7-7+2+6-4-1-8-3+5+8-10-6+2+8+5+3+3+1+6+4-2-10+2-0+8-7-1+7+5+2+6-6-4-6-4-3-2+4-5+5+6-10+3-10+2+0+5-5+8+5+9+3-2+5-0+7+4-5+9+3-10-9-6-3-3+3+3-6-9-1+5-4+10+1+8+2+0-5-7+4+5+0+8-9+7-10+0-3-2+5+1-9+6-0+0+4+5+3+9-0+8-4+10-5-8+9-8-5+0+8+4+8+1-6-6-5-1-3-4+1-5-4-7-1+0+1-2+8-6-9-5+5-8-3+6-2+5-8+3+0+5-0-5-6+3-7-4-2+9-10+8+3+0+7-3-4-0-9+1-1+8-7+0-10-9-2-8+6+9-7+8-8+5-9-1+7-7-0-2+8+4-3+8+9+8+10-4+4+5-1+5+6-5+0-0-7+4-10-7+3+5+2+1-0+7-6-9+6+6+0-0+1-10+6-5-4-9-3-3-10-7-1+3-7-7+7-10+4+4-8+2+2-2-9-2-9-9+3+9+7-3-0+0+0-0-10+0+2-9-2+3+9-2+10+3+5+0-5-1-3+7+2-10+8+3+10-7+6-5-10-1-9-7-10-9+5-10+8-7+1-6+7+4+2+9+2-3-10-9+4+10-2-8+1+6-0+4-0-0+7-5-10+8-0-10-3-9-8+3-1-2+2-3-4+3+10+1+10-10+1+2+6+0+2+10-10-4-8+4+2+3-0+7+6-0+3-6-4-5-9+5-4+3+7+10+10-0-5-8-3-5-4-8+5-5+2-3-5-6+0+9+2+7+0-1-0+6-10-4-1+4-9+4+6-7+3+0+10+7-1-4-6+7+8+9+1+1+1+7-8+0+3+9-4+2-2-7+2-4-2+1+5-7+3+8-2+1+5-8+6+8+4+3+6+8-8+9-0-0-4+7+6+0-7+6-10+5+3+1+4-1+10+2+10+1+0+9+2-1+7+8-7-1-6+5+7-7-7+5+1-6-10-4+9-9-6-2+7+7+6-8+10-10+5-6-2+4-4-8-4+7+5+8-3-9-5-1+6+4-2+6+1+3-0-0+5-4+4+8-1-0+10-10+6+1-2+1-9-8+8+8+8+6+5-8-0+10+6+0+1+0-6-3-3-7-0-7+9-2+6-7+0+8+7-1+10-4+2+7+5+8+6+10+4+3-2+4-8+7-3-6-0-5-1+6-6-9-3-7-1-2-0-1+2-4+7-4-5-1-5+7-2+2+7+2+10+1-4+10+1+2+10-1-1+3-2-3-0+0+9+1-10+7-2+4-10+5-6-10+0+7+6-10+5+7+9-9-3-8+5+1-5-7+8-10-0-4+3+1-10+2+7-3+6-4-3-4-1-9+6-4-3-4-1-3+6-9+8-3-6+6-9-7+9+1+9-4+6+1+4+1+7+0-5+5+1+4-1-10-0+8+10-6-3-1+0+3+2+7-0-10+10+8-9+0+10+6+3-5+4-8-0+3+5+8+1+9+0+8-5+1+1-3-4-5+10-4+7-6-8-5+4+9+7+5-10+2-5+1-7+10-7+6+2+4+4-5-1+2+3+1+2-9-0+10+5-5-2-6+10-2-4-9+7+4-8-7-7+2+3+7-0-1+10+7+7-6-5-7-6+5-5-6-4+10-7+8+2-4+4-2-9+3-3-10-1-2+2-4-10-5-1-1+1-8+2+4+8+1+9-4-10-0-4+0-6+5+1-0+4+4-1-6-5+2-7+6+7-0+2+4-1-8-2+0-6-3-1+3+1-1+6+4-1+9+6-1+1-1-4+6-6+8-1-8+9+8+9-0+6-2+8-8-10-9+6-9+6+6+3+10+3-8+3-5+7-2-1+10+4+1+8+3-5-8-7-9+0+1-10-7+8+10+0+9-5+4-4-1-6+5-1-2+9-10-8+0+5+3+3-8+9+0-9+9-0+1-7-6+5+9+8+7+10+2-9-10+3+9+0-10-8+3-4+6+7+7+0-2+7+0+10-2+9-8+7-9-10-9-1-7-6+0+9-2+9-2-4+8-6+3-3+1+4-7+0-5+10-2-5+8+3+7-10+1-1+7+4-7+8-8+8-5+7+10-8-6+2-8+8+7+10+1-10+9-3-7+10+5+3+1+5+7+4+2+2-6-8+1+0+10-0-8-3-2-3+3-1-5-2+4-3-3+9+7+3+4+2+3+9+6-5-0-9+4-10-8+5+1-3+2+7+3+0-8-0-0-5-2+7+7-2+6-8+5-7+9+8+4-3+2+8-6+0+1-5-8-4-7+5-2+5+3+4-8+10-3-4-7-6+9-0-0+10-2-3+0-5-9-2-1-3-6-2-1+3-3+5+6+9-7+3-0-7+8+0+7+7+3+10+6-10+9+8-7-7+7+3+6-4+2-7+7+1+1+6-1-6+10-4+8+4+3-8+7-6-0+8+7-10+7-1+1+2-10-10+7+10-2-1+0-6+4+7+0+0+4-10+0-6+2-2+6+8-2-9-6-9+9-5+6-7-10+7+2+7-4+3-7-10+3+2-8-1+4-7-2+2-3-6+5+3-1+8-0+7-5+10-6+3-9+7+4+7+8+9-8-10+0+0+10-5-9-3-9+3+6-10-9-1-9-9-8-1-1-2+9-10+2-10+9-10+5+0+5-3+7+4+0-1-8-1-0-9+7-0+3+6-5-5-5-8+7+6+8+10-10+7+3+5-6-9-0-1+5-3+8+7+7-6+0-4+2+10+10+2+5-0+5+2-6+1+7-2+2+5-1-4+2-6+5-10+8+2+10+4+3-6-10-0+10+7+10+7+7+9-7-0+1-3+2-0+2-8+4+3+3-3-5+6+9-0-2+8-6-8+8-10-10+4+1+1-2-8+9+5-1-4-0+4+9-0-7-7-1-5-9+7-9+5+7+4-2+2-8+2-6-3+2+8-7+1-10+6+8-4-5-1-9+0-7-9-9-9-5+4-8-0+1-6+3-3-10+2-5+9-0+4+7-6+8+2-5-2-8-0+2-8-5-1-5-8+1+3-2+2-5+2-5-0-0-9-2-5-7-5-3-8-9-4+8-7-2-3-7+6+1+6-1+5+8-1+9-0+10-9-9+4-4-7-8-7-1-3-5+0+7+6-0-3-9+10+8+4-6+7+2+10-5+7+5+6+9-7+6-3+0-6+8+2-3-1+10+10+9-7+10-5+4-2-6-10-6+8-4-10+10+0+6+5-0-6+3+9-4-3-0-3+10-5-4-6+0-9+9-8-2-10+5+6-7-10-6-6+0+6+6-10-6+8+1+9+9+7+6-0-0-4-5+1+1-0-6+2-9-10-9+0+6+3+6-7-5-5+9+9+7+9-9+8+8-1+10+3+5-6-0-9-6+8-3-8-2-10-0+4+4+10+0-5-1+7+8+3+6-1-1-8-9+3+7-2+8-7-0-2+6+6+4-2+4-9+7+2-2-4-4-8-6+1-10+10-6+9+3-3+6-3+9+1+5+2+3-5+8-4+7-10+3+10-5-1-0+9-2-10-4+3-2-6-8-2+4+2-8-8+6+1-5+5+10-3+3-3+4+9-7-6+0-2-10+4+6+8-1+4-10+7+1-9-4-2-0+2+4-5+8+6-6+9+1+8-5-9-10-7+2-0+7-5-7+5-10+5-5-5+3-1-7-8+0+2-2-1+3-10-1-6-7-7+2+4-3-9+9-8-0-4+6-5+2+4-4-3+4-0-7+7-9-1-3-1-4+3+9-1-8-3+0-0+7-2+1+8-7+10-1+3+4+5+10-1+5+2+3-8+2-2+7-7+10+9-1+0-9+5-10-1-6-6-3-4+2-7+2+0+10+0+7+4+3+5-10-7+1-0-6+4-8+4-6-1+7-9-7+4-8-0-10-3-3+7+6+6+10-0+1-1+8+10+10+8-6-3-3-2+0+6-9-1-8+1-2-10+3-3-8+7-6+4-0+6+3+0+9-1+2+9-1-1-4-6+3+4+10+7+9+2+2+0-10+4-0-7+5-8-0-9+1+8-6+7+2+1+0-3+4-10-5-1+2-6+4+5+0+10-0-6+7-6+8+8+3-1-2-5+6-10+5+8+1-4+5-6+4-1+9-3-4-3+8-7+2-9+2+4+7+10-10-3-6+6-8+10-2+9+2+9-3-2+9+6+0+5+10+5+2+4+10+10+7-2-0+5-0-3-8+2+9-9+2-2+3-3-3+2-6-7+9-4+3-8+1+0-5-3+8-6+4-10-3-8+0-3-10-7-9+9+8-9-5+5+0-4-4+7+5-10+4+8-5+10-9-1-0-3+0-7-3+10-7+10-4-1-0-1-4+9+0-5-4-7-1-1-0+3-3-10-6+2+5-0-7-1-8-3+10+8-5-1-8+1-10+0-10+4-7-4+2+2+9-10-4+8-1-6+10-9+2-6-5+8+1+5-0-3+1-1+1-0+6-3+9+1-8+6-6-4+3+5-7+7-3+10+0-4-6-6-0+2-7+10-10-0-5-7-5-1+3+5-4-5-9-9+10+8-9-3+6-7-9+3+0+3+4-0+9+1-1-4+7+8-9+6+9-6-4-5-5-4-2-9-5-10-7+3-10+3+7-1+5+0+4+6+8+0-6+0-0-2+2+7+2+1+10-3+5+8+1+6-2+1-10-3+0+4+5-1+1+3+10-5+0+6+0-8-6-6+3+2+5+9-8+0+9-3+2+4-10-1-6-2+1-4+0-10+3-2+7-4-4-6-5+7-3+5+7-1+5+8+4+6-7+2+3-2+7-7+5+5+1+4-10-8-6+8+6+4-2-6-8+2-8-2+5+4+10-8+2+4-2+1+9+1-9+6-8+0+7-0-5+2+8+6-2-10+8+1+2+8+4-1+7-3+1+8+10+8-10+9-1-9+8-3-2+4-3-6-7-9-5+6+6-1-4-0-8+0+1-5+6+4+1+8-4+7-8+10-0-5-6+4+2-10-9-7+10-5+5-6-10+6-2-0-8+7+8+9+5+4+2+1-5+4+9-6+6+0-7-2+4+8-4-6+9-8-0-7-2+1+1+2-6-0+7-4-5+7+1+4-8+2-3+9-0+6-10+5-10-10+7+10-1+4+8+7-4-2+4-0-0-10+4+7+5+0-2-0-4+0+0+3+7+5+6-5-3+8+7-0+5+3+5-4-5+8+7-6+4-1-5-3-2+0-6+5+6-2-10-6+9-7-6+8+10+8+3-7-0+5-8+6+1-8-2-7+2+7+7-10+9-9+4+5+0-6-0+5+7+9+8-8-5-10-5+9+6-2+9+7-6-8+8-0-3+10+5+3+2+7+9-5+2+10-4+3+6-8-8+8-7+6-3-6-2-0+2+2-9-0+2-9+9+9-4-6+2-1+4+0+6+2-3-2+2-10-6+3+1+2+0+10-2+1-7+0-1-0+9-2-9-7-7-0+10+1-9+5+10-5+10+7+1-8-3+6+0-1+7+3+8+0-9+0-1-1+0+2-0+6-6-9-10+2-5-4-6-3-8+5-1+8+6+7-6+5-1-8+6+2-7+0-5-3+9-2+1-3-8+9+9+6-3-2-1-1+10+3+8+8+10+0-3-8-4-3+5+6+8-9-3-5-1+2+5+4+8-2-3-1-3+2+8-2-5-0-6+5-2+1-10+3+5+7-7+5+4-2-0+2-10-5-2-7+4-10+1-4+1+0-8-2+3+0+10+8-2-9-7-6-6+3-5-5-5-10+1-3+6+2-7+4+7-4-5+8+8-10-9+4-10+8-4+1-7-10+6+10+8-8+6-6-3-5+8+10+8-3+10+5-5-7-1+3+6+8+2+1+1-7-4-6+6-1+8+7-6+2-8-8+9+6-9+4+4-0-9-0-3-2+9+6+4+3-2-5-6-10+1-0-1+0+3+1-5-6-1+3+7+4-2-6-4+10-6-3-9+6+0-6-6-1-1-9-8+0+1+8+10-1-7-7-2+5+7+3-9+0-1+7+5+0-8+4+9-7-3-10+7+9+8-10-4-3+4+10+9+5+1-0-9-7-6-1+4-6-0+7-8-6-2-0-1+2-10-6+9-6-2+3+1+9-7-4+7-4-2+1-3+10-2-8-0+0+6-0-3+0-8-8-4-0-5-2-0-9-7+10-7-6-8+7+7+6+10-6-0-1-1-5-1-0-2-7+9+0-8-8-5+3+1+10-1-3-2+10-2+5+8+3-0+0+5+8+7+0+3+6+2-4+8+1-0+2-8+0+7-9-1-9-2+8-0+2-4+9+1-10-10-3-5-8+8+5-7-4+9-1+0-7-7+4+5-8-7-10+7+1-10-2-9+9-0-1+7+9+8+7-0-10+8-8+9+8+2+0-6+5+3+6+1+1-9-2-6+9-5-10+3-1-7-4+5-7-6-4-0-0-9+10+7+5-2-2+3-0-5-1-3+5+1-0-4+7-1+6-0-4+7+9-9-1-10-10+8+0-6-3+7+0+2-3+8-7+8-3+10+6+4-1-6-10-0-2+0-2+1+3-0-1+6+10+4+9+6-5-4-8+10-5-2+8+3-3+2+0-1-0-2-4+9-8+4-1-7-0-10+6-7-1+2-0+9+3-7-6-10+3+1-3+5-4+0-9+2-7-8-8-1-3-1-3+6+7+6-1-9+9-2-5+0-10-3-3-10-3+2+10+6+9+4-9-8-8-4-8+4-2+10-0-2+9+0-6-8-9+3-0+8+9-9+2-7-8-4-1+9+8+4+9-8+8-8+6-2+0+10-8-9+10-4+7+9+5-10+4-2+0+7-6+4+8-10-1-2+3-0+4+8-6+5+10-4+4+2-9+1+7-4-8-6+4-6-7+3+9-6-2+0+4+1+0+0+2+1-8-2-6-9+3+8+10-6+9-10-3+0-5+1+7+4-8-4+4+1-9-5-2+8-1+5+6+6+9+0-9+0-5+2+6+6-2-7+10-0+7+7-7+7+10+5+1-1-1-3-1+1-1+9-10+1+7+2+0+9-6+4+7-1+9+2-6+4-8-4+6+8-9+3-2-1+3+9+1-5+4+9+7-5-1+3-2+5-0-3-4+2+5-8-0+6+10+8+10-1+6+9+2-10-9+8+4+2+8-10+0+7-2-7+10-7-6+10-8-3+4-8-5-0-1-10+7-0-8+2+4+4-0-0+2-7+10+10+0+5+8+3+0+7-10-6+5+7-6-6+3-4+3-7+4+1-0+2-3-6-0+2-5+9-6-2+6+3-8+8-2+1+1+7-5-1-1+5+1-0+3+0+2-4+0-8+4+6-7+3+8-5+4-7-1-1+9-7+1+3+7+9+7-4-1-5-8+6+6+1+6+0+5+4-10+9-3-7+3-0-5+4-9-6+7+7+9+2+7+9+0-3+1-5+1+8-6-1+9+8-9+9-6-5+6+6+0+3+6+0+4+10+6+7-4-0+1-9+10-3-7-1-5+7+0-4-7+9+9+5-1+9+2+4-9+7-8-5+3-8+1-9-4+9-8-0+0+10+8+2+4+3-4+8-5+7-7-3-6+6-8-1+9-4-9-7+9+7+0-6+4+3-2-9-8+8+3+4+0-8-6-10-9-10+1-6-10+8-3-4-4+10+8+3-0-6-7+5-6+1-4+5+8+2-7+10-6+5+8+3+4+2-5+3-4-0-0+5-3+8-8-7-0+6-4-1-3+6+9+1+8-0+6+7-0+0+8+1+1-9-1-9-1-1+0+3-0+10-0-7+3-9+6-2+2-9+5-7-0-7-6+9+1+10+10-4+5+8-7+6-10-10-4-9-7+5+1-0-10+1-5+9-6+7-9-2-10+0+3+7-8+3-1-7+2-0+7+5+10+5+2-9+0-3+8-5-2+5-1-0+5+7-5+1-2+2+2+2+1+9+5+9+6+9+5-0-5-2+6+0+5+6+3-9+6-9-6+4+0-6-2+3-9-9+7+6-10-0-3-4-5+3-8-6+3+6-8-0-3-7-4+3-5+6+9-8-0+5-6-9-1-7+5-0-9-9-4+6-5+0-0+8+2+0+0+10-9-3+2-6+3-8+10-8+5+2-6+2-7-4+3+1+3+4+6-10-6-6+3-6+1+3-2-2-8-10+10+1+9+6-8+1-10+1+9+5+0-5-1+5+6+2-5+4+1-5+1+9+5-0-4+10-7-4+1+4+7+1-2+0-9-7-3-5+5+6-7+5-3-3+6-1+7+4+7+2+1+3-10-9+7-6+8+3+4-10-1+10+5+9-1+2-10+8-3-1-6-4+1-5-2+8+3-2+9+5+0-8-4-10-3+9-3-8-2+5+9-8+1-4-7+8-7-9+3+2+6+8-1+1-0+0+0+0-6+4+0-7+0+5+2-1+5+0-3-4+4+1-5+1-4+0+10-1+9-2-9-5+8+7+10-6+8+1-5-5-10+6+10+10-2-9+4+6+1-7+7+6-0-9+10-8-6-8-3+3+0+5-4-0+3-9+0-5+3+2+6+2+2-10+1+1+8+5-9+8-0+0+2+7-2+8-10+4-0-9+0-4-0-7-8-4-2-7+7+6-4+10+2-3+7+10-10+10+4+0-10+7+0+8+6-5-7+1+9-10-10+0+9+10-4+6+0+2-10+10-5-4-10+3+2-10+3-2-7+8+4+8-10-0-7+6+1+6+2-6+8-2-3-3-0+10-8+8+3-4-2+1-1-4-1-6-9+10+5-1-4-5-3+9+8+10+0-1-10+0-3-9+9-5+10-8-0-10+9-3-3+7-3-3-3-6-2+9+1-6+6+10+4-3+7-5-9-7-10+3-5-3-0+9-6-2-7-8+4+1+9+4+6-9+10+0-10+10+4-2+7+3-1+7+7+4-5-2-4-1-7+4+6+3+1-5+7+8-7-7-9-2-5-10-2+5+5-7+6-0-0+5+0+8-5-5-6-6+6-6+5+3-7+3-8-0-3+10-4+4+1+8+4-0-5+6+4-4-3+1-7-5-8-5-3+7+2-4+0+6-4+7-10-3-0-5+7+5-0-4+9+1+0-0+3-1+10-0+1-0-3-5+3+0-2-1-3+2-1+8-7+10-5+2+4-5+9-7+0-6+9-5-9+9-9-0+4-10+7-2-2-1-6+3+2-1-2-7-5-9+5+5+5-7-4+7+1+5-5-3-0+6+8-5-6-8-8-9-3+10-6+2+7-1-0-3-1+1-9+3-4+6+2-7-1+4-5+1+7-8-8+5-0+6+9+1+0-4+5-8-5+5+0-2-9+5-7+4-1-1-9-0+1+1+7+5-7+4+10-4-9+3-8+9+10-5-6+8+9-8+3-6+6+7+3+10+7-1+8+7+2-10-2-10-0+5+8+3-0+6+1+10-5-5+9+1-7+4+9-2-4-6+7+9+5+7-6-6+9-7-1-4+3+2+3-2-4-8+5-2+8+10-5+1+3-8-6-7-7+6+7-10+10-8+5-10-8-0+2-7+8+4+5-6+9+3+2-7+2+3-5-6-8-10-2-6+6+5+6-4-5-7+0-8-8+10+10+3-6+7-1+7+6+4-7-7+3+5+7+4-7+3+5-8-9-0-1+6-0+4+9-2-5-6-1+3+0-2+6-0+7-8-8-8-1+9+8-0-0+1-6+4+10-4-4-2-2+6+7-10+0+10-5+9+1-1-3-5+7+7-1-8+3+7+5-7-9-7+8-8+6+5+5-7-2-3-0-6-10+3+10-7+0+1+8+1-8-2-2-8+4-7-2+8+9+3+10+1+1+3+0-10-1+2+2-3+2+5+5-2-5-5-7-8+3+4-1-0-5-5+3+0-2+5+4+7-6-0+9+9+7-6+6-10+5-9-7+1+8-4-0+3+8-10-7-9-4-2-9+4-2+2-8+1-0+3-10+6+4+6+10+5-7-7-2+10-1-9+0-2+5+9-0-2+9-6+10+7+6-0+7-6+2-3-5+6+4-7-9+0-6-6-6+2+6-0-1-7-1+9-9+6-5-1-8-1+9-10-8+7-4+7+7+9+8-7+9-4+3-6+4-7+1-8-6+2+8-10-1-1+0-9+10+6+5+0-1+6-5-7-4+0+4+8+6+2-5-4+4+7-0+3-5-0-6+7+9-4-9-4+8-1-6-4-3-2-0+5-1+8-3-1-10-8-9-9-10-9-1-9+1-3-4-0+0-4-9-5+5-0+7+0+6+7+0-6+2+10+2-5+10+5-2+3+0-6+5+10-0+9-0-9+0-10-9-1-9+4+6+7-3-8-3-2-8-7-4-2+10+0+0-4+1-5+4-8-4-5+5+1-10-7+7+3-1+1-6-8+3+10+0+1-0-8-3+5+9+3+9-2-7+1-4+5+1-2+7-1-5-10+2-6+4-4+2+0-3+1+1+6+8+8-4+3-7-5-4-4-4-10-5+4-8+6-4+4+3-5-2+5-3-8+4-7+4+6+2+9+7+1+4-3-2+10-1+9+3-4-9-7-5+3+8+8+4+4-9-0-4+5-1-8-6-7-7-10-0-1-5-9-6-9+2+2+3-0-8+6+4+2-10+7-3-5-7+1+6-9+1-5-5+2-4+8+10+1-0+7-0+5+10-6+10+9+5+3-1+6-1-0-5+2-3+8+7+10-1-4+3-1-9-8+3+5-0+6+5-6-6-3+1+7-3-9+0-3-1+6+0-2-1-8-3-5-10-9+5+9+6+1-2-5-9-7-5+0-5-6-1+3+3-2+8-4+7-9-9+1-4+4+9-7+3+5+7-10-10-0-7+2+4-4+2-3-3-5+3-1+9-4+9+9-4-9+2+3+6+2+8-5+3+9+5+1+7+3-9-8+3-2-2-6+4-8-5-6-3+1-7-2-7+6-1-2+6-1-8-2-10-2+6-6-5+4-1-7-0-1+5+8+1-0+6+6-3-9-0-9+0-9+5-5-2+1+6+4+9+5-7+0+9-0-5-1-7-6+7-6+8+7+9-6+9+5+9-3-6-6-5-6-6-4+9-6+10+1+5-3-5+9+8-4-10-2-6-3-3+1+6-8-7+3+6+3-7+0-6-0-7+4+7-3+3+8+0+7-4+7+1+2+4-10-9-5-0-8+9+5-1-2-1+10+8-2+5+10-9+2+6-0-3+6+2+6-5-10-9+10-8+6-4+10-9+2+10+6+7-7-10+8-10-5+5-1+3+9+5-4-4+4+2+10+5+3-8+3-10+0+10-5-6-5-7-6-6+3-6-2-9-5+4-0-2-3-5+7-0-0+7-5-5+9+3+10+2-9-1-6-7-8-5-4+0-6-1+3-7+0-5+5+4+8+9+2-1-10+1+1-5-1+9-10-1-3-9-9+3-1-7-5+9+8+9+3-6+7-9+4-1+1-1+2-9+2+5+8-7+10-4-1-2+2-2-3+0+7+9-7+8-2-6-3-3-7+2+5-5-5-0-2+1-9+2-3-9-3+10-4-9+2+6-3-3+3-0+0-7-4+1-0+4+5-10-10+3-9-6+5-1-6-10+9+0-0+5+4-10-9+8+5+10-0-1+6-9-8+9-5-0-3-2+0-7+0+4+6+2+3+6+5-0-5+2-2+8-2-9-9+4-9-6+9+4-9-8+8+1-8+2+3-0-10+5+8+6-6-2-8-7-10+1-0+7+5-9+8+5-3+8+0+3+6+6+7-8+3-2+0-8+0-9-0-4+1+1-9-9+5+6-3-8-1-7-8+2-3+9+3-9-1+1+9-8+8-5+0-1+5-10+3-8-0-7+10+3+4+3-0+10+3-5+1+6-10-3-5-10-6-7-2+7-2+2-9-7+1-0-8-4-5+0-0+1-5-6-1-3+1-0+7+9-6-1-4-0-7-0+4-9+8-9+8-1-8+3+4-3-5+8-0+7+1-6-7+7-6-8+9+6+8+6-9-0-10+1+5+2-2+10-8+2-2+7-9-10+6-3+6-9-10-0-7-8-7-6-6+10-4-4+7+10+8+4+2-10+3-9+2+0-1+7-5+4+9-6-7-5+0-1-1+5-3+8+0-8+8-6-3+4+7-7+4+7+8+9+9+3-9-1-6+3+6-6-10+0-6+10+5+4-8-7+9-3+2-8+10+3+9-6-7-9+9+8-4+4-10-5+8-1-8-4+8+5-6+8+8-3+7+7-8-6-1-10+1-8-3-6+7+5-4-1-9-5+0-1-7-4-0-6-3-10-6-9-5+0-9-6-9-0+10-7-2+4-7-5-6+10-8-7+3+1-5+8+10+4+7-10-7-9-7-5+7+6-5+3-2-8-9+4+7+9+6-8+6+6+7-6-8+9+10+7-3+8+5-8+10-5-3-6+4+6-10+5-5+6-6+3+1+6-10-3+3-4-9-6-4-9-0+4+8-5+10+8-7-1-5-4-0-6-5+1+6+2-1-9+4-3-5+3-0-7+10+2-5-2+1-4+2+0+6+3-3+6-7-6-3+6+7-0-9-0+5-0+6+2-3-4+7+1-3-3-5-6+2+3-2+4+0-2-4-2+3-8+9-4+8-10-0-6+10-0-9+5-5-5-3-7+1-8+6-9+8+3-3-7-1-3+5+1-1+0+4+6+9-6+9+0+5-10-7+8+8+2+2-9+6+3-10-1-3+5+2-5+7+10+6+5+2-9+8+9+2+0-10-8+8-8-5-6+9-9+6+0+1-10+10-9-2+5-1-3+7+6-7+6-6+2+5-4-3+0-8-7-8+4+2-1+8-5-5-0-7+10-3-2-7-8+5-0+8+9-2+1-4-6-0+1-2-4+5-9-7-7+0-4+5+0+5+7+4+2+5+7-10-10+6+7+5+3+1+5+5+3-4+7-8-8-5+8-4-9-9+6-2-1-3+8-4-6+9+10-10+1-5-6-8-10-7-8-3-0-9-9-4-3+6-1-6+5+2+3-6+8-5-4-3+9+2+4-1+10-8-9+9+6+5-3-4+6-8-9+0+5-7-0-2+7+10-7-8+6+9-2-8-5+1+4-3-0-0-9-1-1+7+4+8+3+9-0-1+0+7-8-5+5-2-9+1-9-4+5-8+5-8-0+9+6+6-7+1-6-7+0-4+8+3+4-1-8-10-6+3-8-8-6-1+2+9+9+5+6+1-6+8+7-4+0-10-1+8+9-10-2-10+10-7-7+3+10-4-0+0+5-4+10+4+8-7-7-7+1+5+7-4-7+6+4-5-1-5+4-7-1-6-9+10+9+1-1+10+9-5+8-10+9-1+3+4-8-3+2-2+10-7+6+4-3-6-6-0-4+9+7+4-10-6-5-10+10-0+10+4+9+10-0+8+0-0-0-10+2-5-0-1+6+9+8-10-3+2-5-3-3+7-10+9+8+4+1-7-6+8+8-9-7-10-7+5+10-9-9+5+2-5-4+2-6+3-2-1+0-5-1+1-8+6-6-0+6-7+2-3+8-10+1-8-1+2-2-1-9-6-7-6-7+1+0+7+1+5-8+4-9-6-10-2+4-10+8-9+2-5-8+9+10-2-6-0+1+5-8+5-9+10-10-1-3-1+4+10-3-3-4+6+0+7-8+9-5+8-2-7+4-0+7+2-2-7+10-6-1+8+10+8+5-2+7-7-7-0+1+3-10-2+5-6-4-7+5+7-9+1-10+6+2+5+5-5+7+7-10-9-3-0+10+5-7+8-3+4-8+9+9-10-1+9-10+9+3-2+0-0+5+9-1+6-1-2-3+3-10-7-1-6-3-8-0+9+7-9-10-10+3+0-8+7-8+1-4-4+7+1+9-3-1+10+10+8-4+7+1-0+1+1-9-1-1+7-2-6-6+4-1+7-10-4+1-9+0-5-4-5-4+2+4+1+4-6+6-0+8+8-5+8-1+0+6-3-3-1+9+1-4+5-9-4+10-2-3+0-4+10-1+6+2-4-1+2-7+1-0+7-1+2+8+0+7+7+9+6-9-5+4+5+4-8-1-10+4-10-9+9+6+1+0-0-3+5+3+1+0-1-7+10-9+1+7-8+9+2-10-8+1-2+5+7-8-5+5+10+5+8-10+9-7-3+0-7-6-1+4-3+2+0-7-4+4+1+6+6-7+6+0-4-9+9-5+2-4+1+9+2+1+8-2+5+1+9+4+9-10+3+1-9-4-6+5-7+0-7-2+2-8-2+0+3-9-0-4+4-9+3-3-4-8-6-3-8-2-10-2+5+9+0+1-10-8-0+10+2-0-8+7+5-5-1-9+0+2-7-1-2-5-0-3+4+2+8-5-0-9+6+1+6+6+3-9+6+3+3+9-0-6+1-4+2+9+0+3-10+4-9-10-5-5+0+3-5-5-1+0+0+7-5+8+0+3-1+7-0+10-3+10+10+9-1+4+10+0+8-10-8-3-2+3+1-4-8+9-2+10-2+6+6-2-7-2+5-0-0-0-8-5+3-4+7-0-7-10+7+7-8-6-1-1-0-1-4+1+1-6+7+0-1+1-9+8-2-6-3-10-9+7-10-2+6+0-6-7-5+7+8+4-4+4+6+4-7-9+2+0-1+4-0+4-6+4+3-6+5-10-8+7-8+10+3-5-3+8-2+2-0+8+10+2-7-7+1-9+9-3-8+9+1-10-3+8+3+0+2-7+9-6-4-4-2-5-3+10-5+7-0+9+1+9-6-10+10-8-6-3-7+6-8+1+4-1-4+5-5-5-1+0+1-1+0-10-3-4+2-9-8+4-0+0+10-6-10+5+6-0+0+1+8-9-3+8+8+3-0+10-10-7-9-7+2-3-9+0-8+2+4-0-2+10-10+5-2+0-6-8-4+0+1-0+10-2+10+5-9+6-6-6-5+1+0+6+0-7+0-9+2-0-0-4-4-8+2-1-6-9-10-4-5-8+0-9+2-8-3-0+1+2+4-6-4+3+3+7-7-7+4-1+2+7-0-0-5-0-2+7+6-9+4+8-10+5+1-2-1-7+3+0+8+0-5+9+2-7+7+4-9-1-2+8+6-6-0-9+6-6-2+7-9+2-0+4+8-10+1+9-2+8+6+1-9-5-5+8+9-8-1-3-10-5-10-0+0+1+5+3+9+2+1-3+0-1-9+4+3-2-6+10-0+0-1+2-5+2-8-8-6+2-3+9-3-1+8+0-8-10-9-9+5-8+5-10+8+0+7-6-1+4+10+1+5-1-10-9-6-0-5+6-10+2-9+4+8+4-4+10-7+0+2+7+8+7-7-6-7-8+10-2+7-10-7+7+4-1-1-5-1+8-0+5+6+2-9+6+0-1+7-5-9+5-4-6+7+3-7+9+5-4-5-0-7+1-10-6-3-8-7-10-10-3+9-8+1+10+3+10-3-1-7-6+3-5+4-6+4+8+4-3-5-10+1+5-10+9+4+2-1+8+9-7-7+7-8-4+8+7+2-4-3+5-10+9+4-6+1-9-0-6+6+0+6+9-2+2+0-8-5-10+6-10-9+8+3-8-2+6-0-5+3-2+2-2-5-0-6+10+3-0-4+5-7+8-1-2+3+6-6+9-8+2-3+8-1-5+6+9+10+5-4-3+10+2+4+6-10+6-3+1-1+10+5+0-9+5+3+10-5-5+2-9-10-9+0-2-4-10+7-6+0-7-1+2-3+0+9-10+7+9-2-8+5-5-6-10+2-7+6-2-3+0+0-3+4-1+10+2-7+8-7-4+2-6+10-9-4-3-10-10-5+3-4-4-1-4-4-9-4+0+2+7+1-9+2-3+3+4-3-2-1+7+3-5+3-4-3-0+6+7-5-8-2-2-10-5+10+2+6-1+7+7-6+3-4-10+0-3-4-5-1-2-6+7-6+1+7+4-4+7+4-9-5+1+3-2+5-9-2-6+5+6+3+1+0+1-1+4-4+2-10+4+1-1+10+1+10+1+9+2+9-5-3-1+9+5+10+1+5+0+5-6+7+2-1+1+3-3+8+9-2-2-1-4-4-6+7+7+4-10-3+9+0-2+6+7+4-0+1-2+8-4+6+4/6+3+2+6-6+9-0+2+6-5+1+5+3-8+3-0+8-0-3-9+7-5-8-0-3+10+1-10-2-1+10-1+5-2-0+9-5-3+1+1-5-7-0-9-1-7+2+3+0-4-1+9+1+5-10-2+6-6+7+9+5+6-7+2+2+5+0-2-8-6+1+3-3-3+3-4-8+3-7-5-7-1-5+5-9-2-4-5+7-8+9-5+3-7-7+6-4+3-0-0+9-3-7+2-3-10-3+1-7+10+10+1-2-10+3-6-4-2-3-0-8+2-9-5-10+4-5+1+4+3-9-0-3-7+7-7+0+0-2-10-10-4+9-4-3+2+7-3-9-9+10-9-9+6+2-10+5-0+1+3-3+8+3-6+10-8-8+6-8-2-8-8+2+4-0+9-6-6-6-5+7+6-6+2-2+10+2-2+8-8-8-2+1+6-7+0+7+8+2+3-3-5-5-2+3-3+1+10-8-7-0-0+8+8-3+0+4-0+3+10+5+1+4+5+2-8-2+0+0-9-1+10+5+8-1-0+4+4+7+6+1+2+7+7+9-10-9-8+3-0+8+2+6-5+2-1+4+0+0+7+3-9-5+1-8-2+10+7-10+0-0+4+5-7+2-6-9-5+8+0-3-8+1-6-5+8+3+7-7+3+10+10-0-0+2-8-7+4-5+0+3+7+4+9+7-9+10+10+5-2-8-1-6-10+7+10-7-8-8-8-0+9-8-6+1-10+5-0+3+10+2+1-9-10-5-5-6-9-6-3-4+4+10-10+4-10+0-2-3-10-7-4+7+3-8+2-5-10-10+4+0+6-10+6-2+2+7-7-5-8+1+1-1+4+2+6+6+10+7+6-4-0+3+2+6+8+4+6+8-5-0-4-2+3-10-5-7+10-10+1-0-6+9-3+1+7+7+0-9-6-4-7+4-0-9-9+5+5+9-10-2+8-5-6+8+5-8+7+7+8+6-10+5-1+6+0+9-3-0-5-9+3-0+1-0+4+1+0+6-4-5-1-1+1+0+6+10-1-2+7-0-7+10-5-10-10+7+5+4-9+6-4-5+10-6-1-3+4-8+10-2-4-3-6-6-0-7+10+8-0-9-2+10-3+8-10+10-10-6-8-10-6+6-10-8-8-9+10+0-2-5-5+4-2+2-10-3+4-7+4-8+10+8-8+3+3-6-2+7+0+5+3-10-0+1+0+9+7-8-9+8+7-2+5+10+3+6-8+0-0+3+3+9+8-8-10-6-9+8-4+2+2+6+9-8+9-7+4+3+2-9-3-6-2-0-10+4-9-1-4-4-3+4-4-8+3-4-0-0-7-3-7+6-8-9+9+5-3+10-1-9+9-3-10+3-10-6-5-3-5-7+0+2+8-3+10+9-9+6+6+10+3-8+0-4+7+4-5+7+3-5-6+6+4-4+9-5+3-0-7+2-6-3-9-4-3-9-10-5-2-6+1-2-3-5+9-0+1-7+5-2+7-2+4+2+9+9+5+3+1+5+2-5+7+4+10-4+7-0-3-3+0+6+1-6+0+3+9-6-10+7+9-0+10-1-5-2+7-1+4-8+10-8+8+4+8-3-8+5+10-10-1+1+9-1+6-9+1+10+7-6+3+6+6-8-5+4-1+9+1-1-8-3+5-9-3-2-1+10-0+1+5-10-0-10+10+10-9-1+6+8+3+7-9-1+8+1+5+2-6-1-3-3-5-4-2+2-1-6-9-2+6-5+4-6+5-6+5+4-9-1+1-9-10-8-9-2-0-1+7-3+3-5+8-2+8+2+4+10-2-0+3+0+5-4+4+4-8-1+9-2-4-10+3-10-7+3-0-3+5+2+5-9+6+2+2+9-5-3+7+4+7+0+6+5-0+9-6+6+5+9+10-7-0+6+9+1-1+2-3-1-4-1-1-2+10+0-2+7-7+5+3-3-1+0-4+6-9-5-5-10+6+0+7-2-9-10-9+2+0+8-2+3-1+7+3+9-3-1+2-5-4+1+1+6+3+9-8+9+3-7+4-1+8+8+8+10-2-9+6-3-8+0-7+10-3+4+9+9-2+8-7-6-4+3-2+0+1-9-1-10+9+2-5+6-5+7-8-5+7-2+9-5-6-8-7+0-8+6+7-8-3-1-7-5-6-9-4+8-10+4-6+1-0+3+7-5-6-2-7+10-6-8+9-3+3-10+2+7+0-8+7+10-2+10-0+2-5-4+1-8-2-10+3-0+2-8+0-3-0-6-6+1+2-3+3+9+1-8+10+0-3+10+7+3+6-6+8+1-4-9-0+1-9+5+6+4-0+5+7+2-2-4-10-2+8+3+2+6+4-4+8+8-3-4-9-5-10-10-9-6-7-5+10+1-9-5+8+6+8-10+3-4+4+2+5+9-10+4+7+6-3-2-4+1-7+8+9+0+3-9-5+1+0+5+0-8+9+5-2-1-3+2-7+5+1-9-4+2+2+0+8-8-4+7+8-6-9+4-1+3+3-6-4+7-1-1+3+2-3+9+9-10-2+9+10+3-5+9+5-9-5-2+3+10-7+6+4+8-0+6-8-0-0-4+9-6+9+1-6-4-8-1-8-3-6-10+3+2-9-10-5-9-1-3+10-7+5-8-1+10+9-9-6-9-5-5-9-6+10-10+5+5+3+6-5+10-8+2-3+3+9-6-8-5-1+3+4-5-8-3+9-8+5+9+10+2+6+8+0-0+10-2-0+1-0-10+0-6+9-0-9+9+8-8+2-4+1+2-0+8+8+4+8+9-3-1-0+8+0-0+5+9+4-6+10-3+9+9+8+5-9-9-8-7+1-8+6+10+8+4+5-9+1-1+8-9-2-6+5+3-6+0+7+9-1+7+10-2+9-8+0-2-2-4+4-9-5-5+8-8+1-8-2-3+6-6-1+6+5+7-1-7-7+6+6+7-0-0-2+6-6-8-2+6+2-0-3+6-1+1+0-7-6+9+6-8+1+8+4-9+9+5-10+5-1+6-8+9+9-5+7-8+1-10+10-9-8+1-5-1-2+0-9-6-8+7+2-0-6-2-3-7+6-5-8-7-8+6+3+9-7-8+4-6+1-6+9+2-9-4+5-0-5-9+7+7+4+3-9+9+4-4+7+4-6-0-10-2-2-7-6+0-10-2-9+2+1-8-10+7+5+6+9-10-0+5+2-7-8-6+8+9+6-5+10+8-1+6+4+9+9+5-2-4-7+7-10-5-0-7+6-1-2+10+10+10+8-10+2-7-4+1-3-0+8-9-1+3-9-2+2-4-8+4+6-10-7+2-7+1-10+1-1-3+1-2+9+3+3+1+2+1-0+10-4+8+3+9+1+0+3+1-9-8+0-2-7+7-8-1-0-0-5+5-7+9+8-1-4-8-10-9-5-10-3+0+1-3-1+7+8-5+1+4+3-4+6+7-5-3+6+7+4-7+0+2-5-2-3+3+10+8+8-1+10-1-2+3-7+6-8+0-3-4-2+3+7+4+2+0-8-9+7-9+0-1+10-1+9-2-3-9+0-8+6-0-4-2-7+9+8-0-1-2-4-2-7-5-9+1+2-10-2+6-7-10+6+10-10+9-9+0+10+9-3+8-6+7+8+10+9+6+1-3+5+5-10+2-1-4+2+10+5-10-5-10-4-9-0-2-9-10-3+10+2+9-1-1+4+9+2-6-10+2-1+3-5-4-6-10-5+10+2-4+5+10-5-2-3+2-3+4-0-6+6+1-5-10+5+2+10+3+0-5-7-7+6-6-6-6+4-4-3+1+4-9-4+10+8+2-2-1+8+8-2-5+0+1+2-4+4-9-7+0-2+2-3-3-7-6-9+5+0-7-0-8-0+4-5+7-5+7-8+7-7-3-3+2+8-6+9-0-10+4-6-2+2-1+8+9-3+7-6-4-1+3-4+8-3+9-2+5+9-0-3-5+2-4-1+3-5-8-1+3-1+10-3-9+0+3+0-5+1-4+3-6-6+10-0+6-7-8-10-4-7-6+4-0+1+4-7+5+4-2+9+10+9+7+3-8-2-0+6+4-9+6+8+8-10+4-6-5-2-1-7-3-3+10+6-6-6+5+4-5+7+1+8-9+8+10+4+5+4+3+0-8-2+9-8-7-2+3-9+6+7-10+3+6+3-9+5-8-10+6+4+10+10-3-6+0-6+10+7-6-4-4+3-1-0+9+10-3+6+9-0-1+5-5+7+4+3+8-2-4-1-6-7-7+3+6+9+3-10-5-1-7-7-9-10+6-5+2+7+2+7+1+6+10-1+1+1+5+7+6-5-10-7-3-4+8-8-9-4+6+0-10+7-4-8+10+7+9-6+10-4-3+2-2-9+9-1-3-1+9-7-0+1-10+2-9+6+7+2-1-3-1+1-8-9+4+3-4-10-10+8-1-1+2-0+10+10+1-7-0+7+3+2+0+9+4+9+3-0-5+3+1+7-3+7-10+3-6-4-2+4-7-0-0-3-8-1-4-0-7+0-5+2+0+6-5+10-4+6-6-2+2+10+5-6+5+4-6-3+9+2-7+9-6-5+9-4+1-2+1-7+9+4+4+9+9+2+7+8-4+10+7-2+1-8+10-7+9+4+6+2-7+6-0+6+0+10-10-1+7-1-6-3+0-0+0-6-1-2+7+1+3+7-1+5+7+4-1-7+1-10+8+4+5-10-4+4+2-5-8-6+4-0+2-9-10+9+2+8+4+10-1-4+2+0+4-1+5+9+7-6+9+10-6-5-1-4-5-10-9+4-10-2-7-10-5+0+1-10-8+6-0+2-1+8-8+4+4-2-7+0+10+3-7+5+5+8+0+1-10+3-1+9-10-1-4-0+1-8+0+3-4+6-9-0-8+9-9-4+8+9-4-3+0+5+3-0+2-2+10+7+6-3+1-8+2-1+4+7+2+10+3+6+5+6+8-7-10-8+3+2-4-1-10+10+1-7-5+2+10+2-5-4-1-3-1+1+1+3-3+10-4+8+1-8+9+8+3+7-0-7-3+4+2+7-10-0+8-9+7+10+0+7+0-8-2-9-10-8-6-2-3+7+0+7-3+0-6+10-5-10+3+0-9-9+0-5-6-4+10-10+5-5+6-6-3-9+7+4-8-5+3-5-8-2-5+5+1+3-1-7-7-4-5+0+9+9-10+3-4-7+9-2-3+7+2-9-4-5+2+10-3-7-7-9+4-7+0-1-1+4-6+7-9-5+6-6+0-5+8+1+8-3+2-0+2+4-3+5+9+9+8+0-9+9+10-9-5-7+1-3+1+4+6+4+7+0-10-5+2-0-10-4-5+4-6-2-0-0+2+5+0-0+0-9-3-8+7+1-5+6+4+7+10-5+6-6+6+6-8+5+2-6+7-4+6-7-0-10+2-6+6+4-0-4+4+7+0-0-2-7+10+5+1+2+10-0+6-0+4+2-10+10-6+10+2+0-10+0+5-5+8+6+2+10+7-9-9-0+0-6-7-8-10+8-6+2+9-9-7+10+5+2-10-9+9+7-9+4+8+4+7+0+2-1-2+3+6-1+6+1+0+2+5+3-5+10-1-1+8-0+9+9-1-2+4-6-2-10-9-0-0+5-10-3+5-6-0-6+1+6-10-10+7+8+5+6-8-3+10+3-8-8+8-1+5+4+4+3+3+8+6-3-0+0-10+1-0+4-2-6-4+0+8+3-2+4+0-5+8+7+10+8-4-10+2-0+1+2-6-4-2-9-3-7+0+6-2+6-2-3+1+0+1+7-9-8+3-4-1+3+10-1-2+5-6+10-2-8+3-4+9-3-10+6+8+2-0-0-4+1+10+4+2-0+9+2+8-1+3-4+10-8-1-7+7-9-10+1+10-5+2-10-3-2-10-8-0-2-7+2+2+8-10-4-3-0-1+8-6-6-5+5+0-0-6-6-10+9-6+3+7-8-8-0+10-0+7-1-10-7+7-10-2-0+10-5-6+6-3-2+3-8-6+5-1-6+3+2-3+5+4-5+4-10-3+6+3+2-2-6+7-6+10-0-3+9+7+1-10+7+7+7+10-6-4-5-7-4+4+9-10-3-4-8-3-1+2+2-1-6-0-6+10-0+7+2+6-4-6-4+8-5+8-8+10+7+2-5+1+1-3-2+8-6+3+0+6-8-7+2+8-0-1+9+8-9+5-5-10+4+2+2+3-7+10-1-1-2-10-9+5+7-3-8+2+6-2-3+2+6+9+9+8+10-4+8+3+9-7+6-1-5-3-7+3+1+5+8-6+4+1+2+5-1+2+2+1+8+2+2+5+7+10+7+3-3-7+9-1-6-8-5-5+9+6+3+8+4-0+8+9+8+10-3-2-2-3+7+7-10+4+5-2+9-4+2+1+8+5+7-1+6-7-6+5-0-7-1-0-4-2-2-8+3+4-6-5-0-2-2+7-2+0-10-6+5+10+5-4+0+0-9+2-4-1+8-0-10-3+1+8-1-7-5+9-6-4+4+1-9+5-5+10-7-7-1-2-5+4-3+6-1+5-7+1+1-4+0-5+4+8+6-4+6+5+10+3+5-9+10-1+7+5+0+9+4-6+10-9+10-4+3+1-1+3-0-6+0-9-1-9-10-5+2+8+9+0-6-10-3+4+2-1-4+0+3+0+8-8-5+10-0+6-1+6+7+8-7+2+1+5-7-3-2+6+8-1-2-5+3-2-5-2+0+4+0+1+4-3+5-7-8+7-8-10+1-6-2-8-6+1+0-9+10-4+1+10-6+10-7+1+6-1-10-5+4+5-7-6-2+0-2+3+9+1-4-8+5+9-10+0-2-8-6-7-7+7+5+9+7+4+6-4+4+3-8-9-7+0+10+2+6-4+9+8-1+1-4+0-6+4+7-4-8+2-2-9+5-4-0-0+10-6-2-0-2-5+6-4+1-6+4+5+2+8+7-6+8-4-4+6-10-3+5+8-10+7+9+6-5-4-5-0-5*6-9+0-1+1+9-9+4-8-8-10-9-5-1+10+10+4+5+4-4+2-3+6+2-8+5-2+10-9+1+0-2-8+0-8-9+6+3-3-1+0+5-6+1+2-10-4+2-2-4-0-2-4-5+9-10-7+7+0-5-0-7-9-7+6+6-5+8-1-0+9-0-3+4+3-2-5-8+4-0+2-4-2+2-5+8+3+7+5-10+2+5+4+2-10+8+7-2-1+10+6-6+7-1-0-1+3+3-1-0+7+7-0-5+6-7-0+4-5-1-10-5+4-7+4-7-6+4+3+7-3-8+5+9-2+6+10+9-0-7+0-7+1+6+2+7+3-4-5+3+10-7+3+2-9-5+3-4-1+0-2-10-3+4+0-0-7-0+5-6+9+0+3+9-9-3-9+9+2+4-3+2+1-7+10+3-1-6+3+6+5-4+9-0+5-6-6-4+4-6+3+2+7-5+5+8-7-3+9-6+4+6-2+5+0-0+5+1-4-9-6-8-5+6-2-6+2+0+4+0-6-1-5-5-7-1-8+2+9-0-8+5+3+7+6+9-0-3-4-2-3-5+2-7+10-0-10-9-2+1+5+6-6-6-2-6+8-10-9-6-7-2+10+3+4+8+4-5+4+3+0+9-4+3+0-2+6-9+7+4-3+1+4+10+1-10+5+8+0+6+8-0+0-8-7+1+6-0-0+6+3+3+4+0+1+0+2+10-4+7-6+5-7-1+7-4+7-4-6-4-10-3+9-0+2+2-5-0+3-6+2+3+8-0-5+5+8-10+9+9-6+7-8+0+10+7+1-7+8-2-9+8-0-4-7+1+0+4-8+1-5-5-6+0-7-5+8+8-3-2-8-1+8+8+9+7+2-0-4-5-7-1+5-0+8+3-5+7-8-0-5+0+5+7-4+3+10+1+0-10-0+3-0-7+4-9-1-7-5+6+9+9+2+1-4+5-4-3+2+2+2+0+7+2+4-1+8-3+7+6-10+9+0-10-0-2-10+8+1-10-6+8-5+8+6+4+7-5+1-6-10-2+5-4+6-2+3-7-2-1-1+10-1-10+6-2-10+7-8-7+8-8-9+1+10-2-0-6+1+9-0-10+6+6+9+5+7+0+8+7-0-9+8+2-6+6-8+10-0+10-2-0-3+2+9+10+6+9+5+6-2+5+1-8+3-1+6+10-0-2+1+6-2+5+10+1-6+6-4+5+6+5+6+1+4+6-1-7-0+0+6+8-2+8-2-2-8+6-1+0+1+0-7-3+7+6+5-2+0+10-3+9-1-3+0+3+0+0+5-7-6+3-7-6+2-0+0+1-1-0-2-0+8-4-7+3+7+4-6-7-4-4+6+9-1+2-6+10-4+5-6+9-5-10-10+5+10+6+10-2-3+9+3+5+2-8-7+9+2-5-8+10-9-7+1+2-8-8+5+10-8-4+2-1+7-2-6+7+0+5-0+10-8+3-4-4-1+7-5-1-8-9-2+0+9-2+7-9-2-3+5+5-1-9-4+2+1-8+10+2+8-2+3+3-5-9-4+9+4+7-1-8+1-3+6+3+5-3+10-6-7-1+9-7-3-9-1+9+6-6-5+3-2+7+10-7-0+2-3+2-9+7-5-0-0-6-4+10+10-3+3-3+10+0-5-2+2-3+5+7+2+5-3-1+2+9-5-3+1+3+3+10+5-2-1-7+10+5+6+5-2-4-3+2+3-1-3-4-7+6-1-4-9+3-4+2+7-0-1-8+7-9+5-5-3+9-1-1+8-1+8-5+5+3+7-7-4-5-3-7-5-0+2+2-6-9+9+9-9-1+3+6+1+1+2+1+6-7+8+5+6+7+8-4+3+7-2+5-7+8+3-3+2+1+9-3-6+3-2-6-9+7-2+0+7-4+5-3-3+9+8-1-2+5-4-3-4+8-1+3+4-0-5+0+1-5+10-3+5-6-10-3-1+8-4+7+8-9+4-5+10+6+7+4-8-7-8+7+9-5+10-1-10-2-10-3+2+7-2-6+10-8-5+7-10-8-2+10+5+2+7+3-4+1-5+9-9-3+6+1-3+5-3-10+1+5+4+7+4-4-2-5+9-9+2-2-1-9+6+5-3+6-0+1-4+3-1-5+4+9-1-9+9+4-1-9-7-0+0-5-5+9-4+6+7+6+4-3-10+0-2+4+8+6+0-0-6+3-10+10+8-8-4-10+8-0-5+2+7+8+7-8-5+3+10+8+2-3+10+2-2+3+5+4-0-5+6-6+2-10-4-2+4-3+10-5-5+1+9-8+0+9+1+3+2-1+6+6-0+2+2+9+8-7+5+1+4+7-7+10+6+1-7+6-10+7+2-3-8-3-3+7-10+5+8-5+5-10+10+2-6-5-8+1-0-4-4+3-7-6+10+7+5+8-8+9+6+0+1-2-2+10+0+5-1-0-7-4-9+4+9+9-5-0+10+7+6-7+8-7-6+10-3+7-4+1+0-1-1-2-5-2-4-7+8+9-4-6-8+1+9-1+5+4+6+3+5-3+10-9-0-4-4-8-6+8+4+10+6+2-10-0+10+6+4+0+1+1-1-9-0-7+9-2+8-6-3-1-2-7+7-8-0-2+7-4-2-3+6-3+9-0+10+8-3-2-4+9+9-4-1-4-8-3+8+0-1+1+3+3-6+10-2+7+7+5+8+7-3-5-7-10+0+5+0+1-0-9-7-3+9-10+3+2-5-10+3+2+6+1-3-4+7+0+7-9-7-0+4-1+8-5-0-2+0-2-10-3-1-9-1+1+7+6-2+3-1+1+8-2+9-8-10+9+0-8-6-0-0-1-8+2+7-6+9-2+2+4-8-2+0-7+10+10+5-4+1+8+7-7+7+9+10-7-9-10+10+4+7+7-9-1+2+2+8-6-5-5+10+4+1+9-5+7-0-9+0-8-6-10-9-0+9-7-8-6-3+3+2+6-5-6-4+7+7+5-8+7+3-2+2+8-2-2-8+8+2-7+7-6+6-4+10+7-7+8+7-10-1-1-10+10-5+8-4+10+2-8-8+2+3-7+10-1-3-4-0-10+1-2-9+9+10+9-8-0+7+4+5-9+6+7+2+4+8+1+4-3+0+10-2+4+6+4+3-9-2-10-1-5-5+9+4+6+4-10+6+7+4+8+4+10-9-1+4-5+0-4-3+5+5+10-7-10+10-4-8+4-1-6+10-9+7-4+5-1-9+5-4-5-9-9-4+10-7-8-0+3+9-2-8+3+0+5-8+9+9+10-2-2+7-0+4+1+6+10-2+3-4-2+0+0+10+10-7+5+10-2-9+5+7-0-0+8-3-9-2-3-8+6+5+9+9-3-9+6+7-0-3-5+6-1+7+8-10+0+5-1+1-5-3+0+1+6+1-9+2+6-8-7+10+10+9-0-8+6-8-0-7-2+4+5-10-1-7-3-3-6+1-7-7+0+6+4-8-7+7+4-9-7-8+6+1+0+0+2+4-6-8+5+6+1+0+3+0-2+8+7+3-8-6+4+2-2+7+7+7-1+7+7+2-5-2+5-4+8-9+3-0-5-4-10-8+2-6-5-8+3-6-7+0-1+5+8+0-9+4-0+5+4-5-2+2-9+3-0+1+0+4-0+9+4+4+8-6-6+2-6-0-0+5-6+1-3-9-9-1+9+4+1-0-5+10-1+5-0-6-10-9-9-5+10+10+7-5-6-1-3-4-6+2-9+4-4+5-1-4-7+6+9+4+8-3-2+3-4+5+0+5-0-7-2-1+6+5+6-4+4-2-6-5-6-3-10-0-10+0-0+4-9-5-3-2+4-2+9+9-9-10-3-0-5+10-0-5+7-7-3+10-4-1-6+10+8+3-7-4-0-2+1+10-2+1+3+0+3+3-8-8-2+7-4-2+0+6-9+7-4+4+1-8-0+6+4-1+3-3-10+1+2-2+3-9-6+1+0+3-0+3-5-7-10+8-3-0+0-1+2-5-7+6-10-5+6-8+4-0+3+5+10-4+0+2+7-3+10+9-9-6+8+5-1-8-6-4-7+0-3-3+6-4-0-9-9-4+1-9+3-8-0+10+10+0-0+5-7+1-6+2+8-9+4-6-8+7-2+7-4-5+9+8+7+8+9-5-9-0+7-3-10-4-2+9-10+1-8-10+8+2+1+10+6-10-7+1-5-10+0+4+0+1+9-7+10-7+1+9-6-9-9-1-4-9+4-0+0+3+6+5-2-2-9-0-1-2-4+1-9-1-2+4-0-1+3-8+8+9-4+1+2-7-3-6-5+5-2-9-3-0+7-0-4-4-9+4+2+3-3+8+7-6-5+3-0+1-7-8-1-3+3-0+7-9+6+6+4-7-2-2-0+2+6+1-0-8+8-7+3-9+8+4-6+5-10+4+10-10+0-8-10+7-9+3-1+0+3+4-5-3-10+1+0+1-7-6+9-3+8-5-1-3+5-6-1-2-9+5+0-5-10-1-7-8+1-3+3+5-6-9-3+3-3+0+2+3-9-1-7+4+3-6-8-9-10+0-0-6-5+10+4-7-10-8+10+5+3+6+5-9-10+6-0-6-9+2-1+1-9+6-2-0-7+8-4+0+4+7-7-3+4-10+8+8-9+9+0+1-0+0-10+9+1-3+10+1+1+1-9-4-0-8+1+0+2+1-8-8-3-3+2+10+8-10-9+9-0+4-10+8-4-1+1-0-2+3-4+1+6+9+3+8+9+3-4+6+7-4-3+10+10-3+1+5+5+6+8-5-2+4+1-5+7-6-8-10+0+8-8+3+9+10-8-2+0-8+4+9+5+6-2+10-8-1+0+0+1+2-8-1-7+2-3-9-0-2-6+5-0+9+10-7-10+9-5+9-10-0-7+6-5-8+9+4+8+5+1+2-3-1-10+9+7+9+6-9-6-0+9-5+2-2-0+4+7-1+9-5-7-10-3-6+7+5+2-2+0-0+7+4-8+8+4+3+1+3-7-2+7+5+4-10-0+7+10-4+0+3-4-2-8-6+5-7+8+7-3-6-1+5+10+8+10+9-3-7-0-9+6+1-9+5-6-6-7-7-5+6+5+1+3+10-2+10+3-2+6+10+4-0+9-2-2-3+10-9-1-6-7-4+4-5+2-10-3+10+6-8+3+8-6-5-7+9-2+3+3+1+5+6+9-5+4+6+7-8+6+1-10+6+6-2+10-5+6+6+0+5-3+1-2+2+5-0-3+4-2-7-5-3+4-5+8+9-7-2+7+10-0-7-7+3-2+0+3+1+10+5-3+5-0-0+3+6+9-1-8-8+9-1-7+7+8-0-7+5+10+3-7+8+5-2-2+1-6+4+4-8-3-2+5+2+3+2+8+4-9+0-3+8-9+5-10+6+7-1-10-4+7+2-0+8-9-3+3+7-8-7-9-0+3-3+1-9-9+9-1-7-6+5+6+10+4+1-9+6-2-0+2-4-1+10+0-5-9+7-0+8-5+9-1-10+5+7-10-5+1-5+8-8+6+4-9+8+1-8-3+6+5-8-1-8-1+1+0-0-0-1+2-8-0-10+0+4+1+8-1+5-4+6-9+10-1-10+0+5+5-6-0+9+0+9-9-4-8-6-9+5-4+2+8+0-3-4-7+5+0-10-3-4-0+2+1-9-2-7-10+1-2-6-8-8-9+9-5-6+7-2-2+10-7+8+10+1-3+1-5+4+1-8+8-2-7-6+6+0-6+3-0+10-6+9-2-5+3+1+10-5-3-5+7+2-5+3-8+8+2+9+4+3+8-0-1+6-3-8+2-5+9+0-9-10-3+1-6+7+5+3+10-10-5-2+5+2-1-7-3+6-6+7-0-1-1+7-0+2+2+3-5-8-3+1-8+4-0-5-5-7+9-3-10-2-6+0+6-10-10+2-5+1+6+4+6+6+8-7+6-4-1-1-9+8-3-8+7+0-3-6+6-9+8+8+0+10-6-3-0-2-10-1+0+6-5+3-3-5-4+10+1-4-9-9+8+4+0+9-9+2+2+10-8+3+8+2+8-2+5+6-6-3-4+7+9-0+3+1+3+4-1+1-5+4-1-5+6-10-5+3-7-8-5+8+1-5+0+9+7+5-9-5+10+1-6-4-9+5-3-1-5+5+10-0-8-5-10-2+4-1+1-5-9-4-7-4+1-5-10+6+1-10+1+0+1+7-5-3-10+2+2+4-7+6+8+1+8-10+3-2-6+0-2+0+0+9+10+7+5+0+6+6-3-2-7+5-3-1-1-3-7+7+7-3-4+8+10-7+9-4+8+5+4+10+5-10+10+4+10-3-9+0+0+10-5+5+9+4+7-0-3-0+6-8+6-10-4+6-4+4-9+9-8+5+2-8-1-1-3-9+2+1+9-4+7-6+4-6-0+8+0-10+2+1+5+4+1-8-5-0+4-1+5+8+9+2+3-3+4-10-10+0+7-9+1-6+4-5-0+8-10-5+9-8+8+3+1-6+4+6+2-5-9-2+9-1+2+8+1+3-5+9-10-3-5+1-1-6-10-7-7-2+8-9+1-9+6+3+3+1-10+5+1-9+5+1+8-2+7+3+5-6-5+5-10-4+7+4-4+7+10+9-4-7-3+4+5-1+3+2+10-5-9-4+7+5-5+8-8-7+6-1+8-10+6-1+10-10-2+6-1+4+9-6+4+6-8-2+6-6+8-7-3+6-10+10+8-3-6-7-4-9+0+0-2+0+8+9-8-4+0-2-6+2-5+10-10-0+9-4+10-4-5-7+9+1+9-10-9-0+7+3-8-2-9-0+8+10-1+9+0+8+3+7-1+10-6+4+2-10+4+3+6-1-1+0-6-3+6-10-8+8+10-6-3-10+2-8-0-10+2+5-10+3-5-1-10-5-1-0-1-4-3-0-0+0+3+1+7-6-3+0+8+10-10-10-3+3-2+3+1-8-9+2+5-10+5-7-10-4+7-4+9-9+10-0+5-1-8+5-3+7+0-2-9+8+7+0+2+3-2-8-5+3+4+9+5-2+6+0+1+8-7+0-8-2+5-6+4-1-8+4-4-4-9+2+5+6-1+9-3+1+9+7+9+9-3-2+4+5+6+7+10+10-1+5+10-9-6+4-8+8+9+2+1+2-2-10-7-9-2+0-0+3-10-2-10-10+3-7-4+4-4-0-1+4-8-0-3+4+10+5+10-0+8-2+7-2+8-8+7-8+1-9+0+9-4-8+4+8+4-2-9-2-4+4-4-9+8+8-8-3-9+5-7+10+3+1-1-9+0+7-4+2+3-8-7-10-6+4+5-6+2-8+2+5+10+4+5+1+4-8-1-9-0+9-6-4-5-6+3-5+5-7+4-5-5-3-10+9-3-0-8-10-6+5+3-9-0+5-1+2+2-4-4+3-3-6+9-6-3+1+4-4-1-9-0-4+3+3-7-8+4-0+8+3-4+10-3+2+3+4-9-7+5-10-4+3-1-8-6-10-0+0+7-3-5-0+1+8+10+1-4+3-4-3+9-8+5+10+10-1-9-10+9-8+4+6+5+2-2+3-7-4-1+3-7+2+3+10-4+1-2-7-0+9-9-3+1+7+4+9-3-10-10+6-8+8+6+8+10-4+3-8-2+9-3-6-5-8-1-1-7+6+9-6+10-9-7-9-7+0+4-6+10-3+2+2-9-2+10-5+3+8-8+9-9-3+4-5+6-0-9-4+9+6-1-7+8-7+3+2-8+6+3-7-9+10+8+1+3-5-7+2-3-4-4+9+0-8-7-8-7+2-4+7+7-9-9-7-2+9-5-4+6-6-1+9+5-9-9+6-8-1-0-9-0-0-10-8-0+1-7-9-7-10+7+5-3-3+2-10-5+10-0+4-4+0-0+5+0-0+10+8+9+1-9+3+8-5-7-8-0+4+0-9+0+1-10-6+6+5+10-1+5+3+2+1-1+5-8-10-9+4-1+6+0+5+9-6+1-2+7+9+3-7-4+4-1+3+6-4+2+1-8+6-8-4-10+4-5+7-8-10-1+1+1+1-5-2-1+9+10+8-7+2+6-2-1-0+0+2-8+0+0-0-1-3-0-8-10-10+2+1-9-9-4+5-0-1+8-0+10+3+1+4+0+1+10+3-5+9-3-0-0-10+5+9-8+5-7+9+10-2-0-4+7-7-4-1-1-7-6-2+9-0-3+7+3-6+8+0-2-8-9+5-1-0+2-3-2-1+10+1-0+2+8-0-2+4+6+1+3-1+5-6+5+1-6+7-9+5+10+4+4+4-8-4-2+0+9+9-1-0-8+3+3+2+3-5-5-2-0-4+5+1-7+0-6+2-10+2+9+0-3-4-0+5-6+5-10-8-7+8+9+9+4-2+1+1+4-1+2+9+1-1+3+5+3-6-0-0-10+5+1-2+3+9-8+10+1+0+3-10+4-0-1+5+6-10+10-10+7+1-0+8+10-9+2-10-10+5-3+1+1-9-1+7-4+0+6+4+1+3-5-2+10+10+6-3+8-10-9+8+0-1+3-9+8-9+3-1-4+7+5+10+7+5+10+3+9+3+1-8+8-4+5-7-3-0-5+1+5-1+4-7-10-0-7+5+0-0-9-0+7-6+2-7-3+4+6-8-0+10-1-1+4+8-8-0+8+9+4+2-8-0+3-9-7+10-1-5-6-10-7+6-4-4-3-6+0+3+2-4+5+9+0-7-2+0+0+1-4+5-6+8-7+9-3+9-6+3+2-5+10-9-6-0-7-8-6+8+5+8+3-8+5-8+0+9+4-8-8+2+1+4+9-3+8-8+3-1-0-1+3-1-9-9-2+2+5+5+7+5-9+2+3+10-0-9-5+10-2-9+2+5-3-6-1-9+7+0-2+8-1-2+3+10-0-1+7-8-2-9-0+5+5+6-9-3+9+10-4-0+0-9+8+9+1-8-5+4-1+7+3-10+2+5+8+4-7+9+3-4+7-1+1-10-6+9-0+1-7+1+3+2-9-3+5-4-6+2+7-7+3-5-6-8+8-7+10-6-8-0+4-4-7+1-8-4+0-8+6+7+8+6+6+1-9+5-7+5+7-5+1+7-9+8-10+5-3-5-6+4+3-6-4-3+7-10+4+1+0+6+9+0-10-5-2+1-3-8-4+3+10+10+6+8-3+6+10-10+3-0+2-2+10-3+3-0-2-3+2-4+4-0+0-7+1-6-8+8+10-1+1-10-9+1-9-7+10-4+3+2+5-4+10-4+3-1-1-4-8+7-10-7+6+4+9-3+4+6-7+6+2+1-6-3-9-4+1+0+5+0+6+1-10-6-5+4+3-8+8-7+2+2+10-6-3+1+3+5-6-9-4+10+7-2+0+2+10+6-2+9+8-3-0-1+8+5-4+5-2+8+2-8-2-0+0-7+2+4-6-5+2+2+7+6+9+0+1-7+3-2+7-3+3+9+9+6-2+1-1-6-5+6+2+9+5-4+7+8-9-10+1-6+9-0+6-7+3+2+7-0+6-8+6-7+1-5-1-5+0-10+9-9+8+2-2-2-3-6-0+3-9+8-2+7+2-5-0-2-7+7-4-8-2+2-6-9+1+0+2+8+2+10-8-2-5-9-0+9+3+9-3+2-6+0+5-5+2-6-9+1-1+7+4-9+3+0-5-4+6-10+7+9+10+6+7+1-2+2+1-10+4+4-10+9+4-8+3-8-4+1+5+1+4+5+5-4-1+10+10+1+1+0-7+5+3+10+9+1+9-0+2+1+6+5-8-2-10-10-7-6+1-3-2+7-3+8+6+8+6+9+10+6+2-2-9-5-2-7+8+1+2-4-9+4+1-7+3+5+9+5-0-9-5+0+4+1+2+9+6-7+7-2+9+0-1+8-2+6-2+7+3+4+0+9+5-3+8-8+4+8+5-1-3+0-1-2+7-7-2-2-5-2-0-3-10+1+5-6+10+0+6+9+7-3+9+2+1+1+2-4-5-9-1+1-10+1-0-1+0-7+6-9+9+3+1-9-8-0+8-2+3-7-2-1+6-1+10-8-6-1+5-2+10-1+8-1+6-9-5+6-1-10-2+10+3-0+10-9+5-3+8-6-4+8+9+3+9-5+7-7-8-0-6+8+1-7+3+4+3-10+0-8+6-2-2-2+9+5+8+0+1-0-10+8+9-3+9+5+1+6-8+2+3+1-6-7+7+2-1-1+9+9+5+9-5+8+1-0-5-2+4-6+4-10-2+4-7+3-6-3+1-1+9-1-7+8+5-2+10-2-6-8-5-8-5+2+10+4-7+2-6+8+6-8+4+7-5+9-7-10-2-10+6-4+5-0+1+6+0-8-6-7+6-0-6+10+4+4+1+3+8-7-6-10+1-8-5-1+1-1+1+6+10+8+3-5+2-10-2+8-10-7+3-5+1-4-0+1-1-10-4-8-1-5+7+1+7+10-1+2+0+4-10-8-10-2+9+10-6-8+5-6-10+3-10+5+10+5-10+2-2+7-10+8-9+8+3+9+5-3+10+0-10-8+10-4+8-9+5+2-8+0+1+1+5+7+5+6+3+0+7+2+9+7-7-8+1+5-0-6+9+9-2-7-10-8+4+7+0-2-5+0-4-8+0-9+9-3+5+8+1+3-2+4-2+10+9-6-5-2+8+7-7-8-4-3+5-10+3-0+0-6-2+7-6+5+6+3+5-4-6+10+8-9+1-9-10+3-2+1-5+0+6+5-8-4+5-8+3-1+8-7-3+4+4+8+9-10-3+0-5-8+9+1-8+7-8-4+7+3-2-1-3+1+0+1+7+9-3-3-1+0-0-5-1-8+2+7-8+10+8-9+8+3+5-0-7+2-0-4-3-7+5-3+5+5+8+8+8+8-10+7+5+8+6+9-1-9-8+1-8-4-8-9+0+1-2+7-8-0-7-5-1+4-2-9-1-8+6-8+3-6-3+2-4+2+5-4+7-3-7-2-8+5+7+5-3+1+4+1-3+6-3+10-2+1-7-5-5+9-7+0+8-10+5+3+4+9-2-6+0+2+0+3-5-10-4+2+4+8-3+2-1+10-3-1+6+10-6-6-3-4-6+9-9-5+9-6-9+4-2+0-5-10+5+4-2+9+4+4-3-3-0+7-5+7+6+1-4+9-4-10-7-5-1+0+4+4+0-10-8+3-6+5-8+0+1-5-5+5+4+0+8+8-1+10+5+5-8+5-4-10-2-1-7-4-8+6+4-3+0-10-0-2-10-4-10+9+8-3+4+7-9-6+2+1-1+8-0-8+0+0+6+5-8-2-3+1-6-7-8-7+5-2-2-8-3-6+0+7-8-1+9-4+8-5+2+7+8+7-7-0-9-7-10+10+3-6-5-5+1-7+2+10+3-2+1-2+5+1+7-10+6+10-3+8-6-7+5-9+4-3+4+9-5-8-5+0-1+9-5-0-4-5+6+10-3-3-0+3+8+3+8-8-4-6+4-9-0+8+5-3-6-10-8+5-2+7+10+5-5-3+10+1+8-6+10-6+8-5-10+4-3+4+8-5+4-7+10+9-4-9-8+10-9+0-10+7-9-0-1-6+1+3+5-0+2-5-5+9-0+8+1+8-2+10-5-4+5-4-10-9+10+0+10-5+6+5-6+3+10-3-10-2-7+2+1+3+5-9+5+2+7+6-9+7-2+10+0+3+8+1+2+8+3+3+7-5-9+8+9-6-2+6-6+4-3+3-4-0+6-3+5-10+3-5-8+4+3-8+3-10+9+0-4-6-6+6+6-9-5-7+5+6-2+9+10+0+1-0+10-5-1+9+10+3+6-9+3-10-1+0-9-3+10-10-6+2+9+0-9-0-1+1+2-4+6-5-7+3-7-8+8-8-6+8-1-8-1-9-0+10+1+9-2-5+5-1+6-4-4+4+4-10+4+8+9-8-1+3+2+4+4+10-5+0-1-10+5-2-1-4-7-0+10+6-7+0-7-6+10+2+2-1+8-1-0+4+2-0+0-1+4+8+3-10+6+5-4+6-0-7-1+8-4+0+4+3+0-10-4+6+4+4+6+9+5+9-6-3+1+2-10-4+7+4+10-5-10+8-3+8+4+2-7+4+0-0+10-9-0-3+3-5-1+5-10+8+10-4-2+6-8-3+9+10-9-1+5-9+2+2+1-4+0+0+3+7-3+3+1-10+10-4-4-4-2+7+9-3+3+10+5-7+1+5-10+2-3-7+8-2+2-1-0+9-6+8-10-2-8+6+2+4+9+8+2+9+4+3+0-4-3+4-10+2+10-0-4+10-1+6-9+0+10-1+8+0-5-8+0-4-8+8+6-4+9+8-8+8+6-8+0+3-10-5-2-4+4-2-0-5-3-0+1+9+7-4-10+8+3-5-9+9-10+3+9+8+10-9+10+9-4-4-9+3+4-8+2+8-8+5-4+4+6-9+10-9-8-3-1+9+5-10-10-8-7-10+7+3+1+10+1-6-6-3+6+10-10-7+10+2+2-1-6-10-6-4+8-7+6-3+0+1+8+4+9-10+3-7-10+3-8-9+3+10-10+1-10+9-4-0+10+5-7-10-8+2-1+0-10+7+10-7-4-0+10-3+1+3-0-5-2+5-1-9+2-7-6+7+1+2+10+4+9+1-4-7+3+1+8+8+3+10-4+9+10-6+2-1+8-1+7-1-5-0-7-7-10-5+9-4-1-5-2+9+4+0+7-7-10+3-4+0+5+10-10-4-8+6-2+4-9-10+9+9-9+8+8+5-6+8+5-4+8+8+0+8-6+6-9-4+2+5-6+0-9+4+10-7-4+2-9+6-5-1-3+4-5+1+1-3+6-7+0-3+0+9-10-10+8-4-6+1+4+9-1+6-6+3-1-6+7+1+8+2-2+1-2-9+6+1-4+6-8-5-6-9+3-3+7+1+4-4+3-8+0-2-5-1-2-5+4+7+8+1-9+0+4-9+1-10-1+8+3-9+5+1-5+3+10-10+10+2+8+6-10-4-1-9+8-5+0+5+1+0-8+1-9+2-3-6+4-2+4+5+9-6-8-5-7+1-7+6+5+10-4-4-4-0-9+1+10+4-8-9+8-7-9+4-0-4+8+2-7+10-1-6+6+9+6-7+3+4-2-7-2+5-9+8-8+10+0+5-3-0-4-0-8+8-1-2+1+5-6-6-4-6+4+1-2+9+0+5+7-10-4-6-10-4+8+5+2+0+2-6-4-8+5+0-6+10-10+8-7+2-5-5+5-2-7-6-7+8-3+3-1-1-8+3+9-0-2+7-6+9-3-9-2-4-10+8+5-2+5-4+3-3-3-9+0+4-7+1+9+7-1-5-5-1-7+10-10+6+8-3+10-10-7+4-5+10-0-7-2-6+6-2-0+2+9-10-0-7-1+5-0-5+3+10+1-7+5-7+8-3-8+2+7+7+8-7-10-7+4+6-8-4-8-4-1-7-6-10-5+10+3+10+10-9-7+3+6+2-9-2+2+0-6+7-9-9-10+1-3+10+9+4+0-5-2+1+2-5-1+6-3-9+8-10+10-9-1-5-9-2+1-4-0-5+1-3+2-4-5+1+7+1-4-0+8-4+2-8-7-10-1-4-1+6-9-7-4+1+0-5-0-8+8-3-10-7+7+2+9+1-3+8+8-10+2+6+0-2-2+4-3-6+2-9+4+2+7-10-7+3+0-5-4+4+3-4-0+6+5+3-0+0-0-4-5-9+7-4-4+2+10+0-9-10+10-5-2+4+3+5-6-4-5+2-3+1-1-10-8+7-10+5-10+3+0+9-4+0-4+9-4-5-10-4+4+6+4-10+5+7+7-1-8+5+0+7-9+8-9+9-2+1+3+9-5-4+9-9-2-9-10+0+5+0+1+9+3+4+4+5-2-1+9-2+1+0+9+10-8+7+6+8-2+2-10+8-5+5+2+2-7-10-2+3+1-2+5+0-3-4+0+8+9+5-2+7-6-6+0+10+8+3+7-4-4-6+2+6+3-6+10+0+0+10+10+5+2+10+5-5+5+9-4+7+6-4+10-0+0+0+9-0-6-9-7-9-6-5+3-7+9-2-8-8-1+0-6-1-0-10-8+5-6+9-8+8-5-4+5-7-10+4-4+2-7+5+8-2-3-9-9-8-7-8+9-2+8+5+9+9+9+7+8-6+7-5-8-2+7-5-9+7-7+0+9+6-2-3-4-4-3+1-9+3+9-10+1+1+4+2+4-9+9+9-5-6+10-6-9-6-7+9+1-3-7+3-9-8+8-3+5+7+10+0-7-6+4-3-1-8-10-4-1-9+6-8-4+0-9-10-0+8+1-3-4-3+8-4-2-6+3-10+9-7+6+6+0+3-0-10-1+9-6+0-5+8-1+6+8+4+2+1-8+8+6+8+8+10+6-2-2-8-5+6+2+4-6+9-10+5+1+4+3+9+3+6-8-9-7-7-9+7-10-2-6+7+4-10-9-7+3+9-8-6+9-7-8-4-6-4-1-3+7-6-6+2-7-3-6+7+2+1-5+10-0-0+10+10-0-9-5-6+1-7-8-9-7+3+0+10-5+6+1-10+4-6+2+5+4-6-3+8-9-0-2+1+6+8-0+9+9-6+9+6+6+2-7-2-0+3+5-3-6+2+9-10+2+6-7+3-2+3+0+7+5-0+5-2-10-9+8+9+1-5-4+9-0+0+10-2-4-2-9+1+3-0+5-6-6+2+5+3+9-0-1+7-8+9+10+0+2-2+0-6-7+2+0-5-10-0-1-5-6+1+5-1-3+3+1+7-1-8-6+2+9+7+0-4+3+2-10+1+8-4-10-8+3-7+4-9-7+6+9+3+4-3+5+5+5-4-8-4+1+3-9+0+2+6+4-6-9+9-7-3-7+4+2-1+3+3+1+1-4+0-3+9+0-6-3-0+2-7+1-10-8+3-5+2-4-4-1+1+4+4+4-10+2-8+10-9-8+6+2-5+0-9-2-0+3-5-5+1+1+0+4+4-0-6+6+9+7+2-1-10-5+3+3+6+1+3+0-1+7-3+7+1-5+2+2-3-1-5+4+1-4+4+9-7+0-4-9-0+6+4-7-6-4-8-5-3+2-6+3+9+4-7+4+10+2-0+0-3-4-5-0-3+7+9-10-9-3+3-4-6-10+10-7+5-0-8+7-10+1+6+1+10+9-8-2-6-8+6-8+0+8+4+4-9+9+6-8-6+2-5+6+4-4-1-1+5+8+1+6+9+4+3+4+0-7-4-2+1-7+7-1-8-8-1+2+6-7+8-3+7-6+9-9-7+7-1+5-4-6+5-7-7+4-7-8-2-2-9-7-3+5+10+6-0-4+4+3-2-2+4-10+0+2+8-7-6-6+2-4+1-2-7-3-5-0-8-9-1-0+4+0+10+8-5+3-2+2+10-8-1+2-9+1+4-10+10-2+10-4-2+0-6+1+5+5-3+4+5+2-0-1-1+2-1-2+3-2+8-2-1-4-3-5-5+8-6-9-2+3-8+4-1-9+3-7+4+9+7-5-4+6+4+4+8-9-0+7+1+1-8+8+5+0-2+3-2-1+2-5-6-2+10-0+2-1-9+9+1-10-7-3-4+6+10-0-5+10-0-3+1+4-2-8-8+3+4+2+6+9-6+6+6+2+10+9-5-6-0+3+1-6+9+10-3-8+4+7+1-0-6-1-8+1-6+2-3-1-10+9-4+5+7+3-3-5+10+6-2+8+6+1+4-4+2-10+4-1+1-3-7-9+0-5-1-9-7+10+7-8-10+6-2-0+1-8+0-4-9+2+8-1+8-5+8-6+8-7-8+10-3+10+4+6+2-9+2+2+4+7+1-6+2+3+8-4+8+10+3-0+6+7+6-2+5+6-8-3+8-3-7-3+6+9-2+1+2+1-6+10+10+1-1-8-0-4+9-10-9+0-7-2+3-8+10+8+5+7+8+0-2-4+8-4-10+8-6+5+3+3+8+4+2-2+2+1+3-0-1+10-4-8-10+8-5+0+9-4+10-4+2+2+9+1-4-2-10+1+6-2+9+0-4+4+8-10-2+2-4-8+0-9-8+8+4-1+3+0-6+2-1-0-1+3+8+0-0+10+9-2+1-7+6-6-6-3-5-3-4-5-2-4+10+5-7+6-1+7-8-6-9+3-6-9+7-8+8+10-3+6-4+5-10-6-9-2-1-6+5+8+2-9+6+4+0-3+7-3+3-0+4+2+10-6+8-2-4+0-1+1-0-2-2-4+8-1-9-3+5+6+2-1-6+1+3-0-0+6-8-4-6+2+6+5+4+6-6-1-1-2+0-1+8+7-7+7+6-4-8-5-10+9+0+1+4-8-3+10-3-6-5+6+7-0+5-9+2+7+5+10+9-10-0-2+2-2-2+10+5+0+7+10-1+8-6+8-0+6-7-1-2-0-3+7-0+2+8+5-1-0-7-6+10+0-10-9+9+9-6+1-0-0+6-1+6-7-5-9+9+8-7+9+1-7+6+1+7-1+9-6-7-2-5-3-4+10+7-0-4+3-0-5-4+3+9-9-0+0+10+10-3-5-6+1+2-10+3+6+5-5-0-0-7+1+6-0+4-8-5-0-5-4+8+10+5+4-3+3-2-7+5+8-10-3-10-3+7+8-2+1-2-3-7-5+7+4+4+2+3-9+9+1+4-4+3+2+4-1-1-2+2-3+1-7+0+5+7+9-7-4-0+5-7-3-8+4+10-3+1+0+3+3-8+9+1-9-9+5-2-4-6+9+3+7+10+6-8-4+5+8+4+0-7+9-8-0+5-3+10+5-6+2+7+2+7-2-8-1+8+8-7+8-10-6-7-1+6-5+5-2+3+6-6+4-8+1-6+1+2+2+3-2-10-6+4+7-5+0+0+2+8+8-2-0+8+0+1-7+0-7-0-6-9-3-8-0+6+1+6-1+1-5-7+10-7-8-5-6-2+6-1+10+10+7+6-5-2+1-6-8+0-4+3-10+1+3+7-4+6-10-6-6+1-9+9-5-5+7-1-2+1-0+9+4+2+0+8+10-3+6-4-3-4-4+0-6-1+8-9-9+3-8-7+7-1-4+10+7-6-6-4+5+6-9+5-9-8+2-10-0+7+1-3+10+8-2+8-7+10+2+4+6-7-0-2-9+8-10+9+6-6-2-7-9-8+1+0+3+8-7-7-2-0+10-1-0+6-5-10+6+0-7+5-8-7-2+0+7-7+9+7-8-3+6-5-8-2-5-3-0+6-4-6+8-3+7-8+8+2-0+9-3-9+2-5-9+6+1+2+4-4-5+10+0+9-8-6+2+3-4+3-6-10-2-5+3+1+3-4+8-3-5+7-10+1+7+0-3+4+4-3+3-7-8-7+10-2-2-5-2-6+3-8-3+8-8-10-7+3-8+8-10+7+3-0-7+7+6-4+7-1+0-6-9+5-4-5+7-4-8-4+10-8+7+0+5-4-9+0+1+2+2+0+5+5+1-2-9-7-3+2-4-0-0-9+5-6+1-8-3-1+2+8+10+5+9-1-7+4-10-10-2-5+7+0+7-7+1+9-3+7+5-4-6-1-2-4+5-9-7-10+1+8+4-9+4-8-1-0+8+2+7-7+8+2+1-1-6-8-7+0-9+10-3+5-7-8-5+5-9-0+6+3-5-10+0+3+2-7+7+6+7-2-1+4-5+0+10+3-2-7+0+6+4-4+10-10+7+10+7+0-1+3+5-6-2+5-3-5+6+10+4-1+1-1-8+6-9-1-4-7+10-7-8+5-1-5-0-6+10-3-8+7-10-5+1+2-9+3+1-8+5+1+6+7+3-7+7+1+8+9-5-9-8+8-5+9-3-4+3-1+2+4-5-5+9-8-8+6-4+2+2+9-5-8+5+2-10-0+9-1+1+6-4-6+0-9+5-5-0+5+3+1+2-1+0-2-4-6-7+7-4-6+9+6+5-1+3-6-1-6+0-10+5-8+0+1-0-6-9-0-10-9-4+1+3+8+8-0+7+7+6-7+2-3+8+1+2+8+9-10+7+6-4+2-10-9-10-8-0+0-7-9-3+9+6-6-1+4-1+7+7-4-0+4+8+4-10+9+2-9-5-3-3+5+10-6+4-1-3+6-0+3-3+9-4+9+6+5+2+1+3+2+6-7+4+2+1-7-4-6-3-10+8-4-2+0+3-9-3+4+10-7+10-3-1+0+3-3+5-2-7-5-3-8-7-8+9+5-3-7+10+0-4+6+3+10+6-5+1+0+0-7+1+9+7+4-8+10+4+8+0-6-2-10-5+3-7+0+8-0+10+10-6+1+6+7+2+5-10+1+9+8+4+3+8-4-2-4-10-9+7+2-1+9-2+0-7+1+6-7-0+5-8+0-6+8+8-0+0-3-3-7-10+4-2-2-1+7+6+2-3-0-3-10+0-9-3-10+8-6-8+3+2-7+9-5-10-5+3+8-7-10+9+7+6+7+2+7+5-9+5-10+1-5+8-8-2-1+3-0+10+9+3-8-9-5-10+1+0+6+1-0+1-4-6+8+8-3-6+3+1+10-1-7-4-7-0-6+7+9+5-9-2-7+2+0+2-10+0+6-5+5-6+10+8+1-1-3-6-0-2+10+0-10+5-4-5+5+7-10+0+5-7-4-5+5-6+5-0+1-1-0+10-10+4+1-0+3+2+2+4-1-1+10+8+6+9-1+4+7+7-5+7+4-6-1+6-9-10+2-9+10+8+4+5-7+8+8+2-8+5-7-0+1-4+10+8-10+0-3+8-7-0-9+7+1+3-6-6+5+9+0+3-9-7-7-10+1-3-3-1-5+6+6+8-0-1+4+7-10-6+2+6-0-0-10+8+8+8-1-10+10+5+9-7-2+9-4+5-9+2-2-2+6+6+10-6+0-8+10+4-3+5+4-0+8-4+2+8+6-2-0-5-4-7-7-10+3-9-5-6-4-8-6+0+5+6+10-0-5+8+5-10+5+6+6+6+10-7+7-0-5-7-5-8+6-6+4-8-8-6-3+5-7+4-6+0+5-10-2-2+4+10-8-9+3+8+7+10+1+0+6+8-0+5+10+6+8-0+8+10+2+0-5+3+9-5-1-3+2-1-2-3+0+0+7+7-1-0+3-0-4-6-6-3-8-1-9+7+3+1+10-1-6-7+1+7+3+9+4-10-4-8-2+5-9+3-4+0+7-4+0-2-8-3-4-1+10+4+2-6-3+1-0+5-2-8+0-5-0+3+9+5+9-6-7-3-7+1+4-7+1-2+5-3-2+4+9-1+7-8-10+0-9-0+1-5+6+5-10-9+7+0-8+4+10+4+10-4+4+7+4-1-3+5+0+9+5+0+6+1-2-1+7+8+1+4-1+3+4+0-3+4+9+2-9-4-10-2+10-1+1-10+8-1-10+2-9+1-0+4-3+10-2-8+7-6-9+2+9-5+2+3-6-7+8-6+7-9-3+0+4-4-7-5-10+6-2-9-6-0+5-3-6+2+2-8-7+6+7+6+5+10+0+5-5+4-4-9-5-1+9-1-3+9+7+5-6-2-7+0+2+8+6-6+8-7+3-4+3-8-4+0+2+7-7+9+6-5+7+4-10-9+7-0+1-1-3+0-8-5-0-2-10+2+6-10-6+7-5-2+1+4-5+6-3-9-2-4-7-8+4-8-7+6+9+3-6+1-9+6-2-2+2+7-9-9-0+1+6+5-2-6-8-2-4-8+4-1+6-4-7+2-7+10-7-2-10-0-0+9+7+3-7-7-3+0+1+6+2+7-0+7-10+4-6+8-6-0+5-9-7+9-1+3-0+5+0+10-9-1-8+9+9+0-7-8+5+0+7-0-2+5-0-2+3-9-0-2+10-1+2+8-2+1-5+8-1+8-0+7+2+3-6-9+2-4+2-9-4+7-7-5+8-6+1+9+2-0+8-0-4+9+0-8-9+7-1-6+10+4+2-1-2-6+5+2-1-7+4-8+3-4-9+10+1+3+5+9-1-2-0+2-2-9+8-9+9-0-9+2-1+7+5-4+0-4+10+10+7-4+10+7+6+1+6-8+7+2+1+2-7-6+4-4+2-5-7-9-4-4-5+2-6-3-5-6-1-3-9+8+1+5+4-1-0+7+10-6+8+8-7+2-6-9+3+10+1+0-3+9-4+1+2-4+4+2+6+4+4-10-8+9-4+5+8-10+4+4+2+3+3-4+6+4-2-7-3+1-5+3+7+2+10-1-1+0+7-9-6+3-8-8-5+7-6-8+8-2-7+6-0+10+1-10+5-1+10-5+1+5-1+10-5+4-6+10+5-2-6+5+2+9-9-0+0-7+7+4+2-5-2-0+7+0+2+6-6-6-9+2-0+4+10-4+10-2+6-5-5-7+7+5-9+4-7+6-1+5-1+6+9-10+2+1-4+2+8-2-5+3-3-1+3-6-8-0+8-6+7-1-8-10-10+4-5+2-1+2+2+6-7+1-1-5-3-4+6+0-6-4+4+5-9-5+9+10-1-8+7+2+2-7-0+3+9+3-8+6+0+7+8-4-10-2-0+6-2+1-1-10+9+6+8-10+4-1+9+3+5+0+8-10+7-7-1-6-1+10-10+6-2+4-4+5-9-1-9+2+2+0+3+3-3+7-2+6-2-0+4-6-8-1-10-5+1+5+4+0+1+3-0-7-6+9-1-10-2-8+5-2-10-6-10+9-4-7-4+7+4+5-3+10+4-0-9+7-9+9-2-5-0+6+9-0-9-10-2-8+7+1-5-3+6-5-0+0-8-3+7-7+1+3+2-4-9-8-2-2-6-0+0+10-3-8-2+2-6-1-4-9+0-2+1+1-0-0+5+6+3+3-4-0+1-8+4+8-4-6-7+6+10+4+9-2+10+2+8-6-0-3+6+6+3-8+7-9+3-8-6+1-10-7+3+2+3+5+9+8-7-9-2-7-4-3-7-10-0-3+9+0+3-3-7+10-6-8-7-4+5-7+8+7+3-10+7-3-4+2+2-9+0-6-6-3-4-8+2+1-7-10-10-0+10+4+7-3+6-9-6-3-5-1+1+5-9-9-5+7+6+8+9-10-8-4+8-2-0-1+8-7+0+2+4+5-8+1-8-8+0-8-3-4-7+3-1+7-3+9+4-3-3-2-0-9+2+1+10+8+8-5+5+5-10+5-4+3+4+0-5+3+8+10-3+2+8+4+9-2+2-6+10+8-8-1+7+1+2-4-0+4-8+10-1+8-7+5+1-4-5+0+9+6-8+1+0+6+5+10-2+9-0-10-7+3-8+10-2+7+4-2-9+2-1-9+9-6-1+5-4-5-9-3-9+3-0+1-7-5+7+7-8+8+9+2-2+7+2+3+0-9+8-4+10+1+9+6+8-1+2-6-9-9+3+0-3+4+6-1-4-7+7+0+6/2-1-10+7-4+1-10-9+5+2+10-10-1-8+6+3+9+10+6-0+9+1+4+1+2+8-3+2+1-1+0-9+4+7+1+6-4-9+8-3-2-7-5+2+8+10+10-9+7-5-7+5+2-2-2-8+6-1-6+8-4-3-2+0-9+0-1-1-4-10+1-8+6+5-0-2+5+7+0+6+5+2+5-7-0-7-9-3-9-4+3-8+2+3+3+0+1+1-5-8+10+9-0+7+1+10+4-3+6-4-7-2+7+1-7-5-6-4+3+8-7+10+7+6+5+9-5-9-6-4+5-0+5-4+3+8-10-10-3-3+2-7+0-4-8+4-1+7-5+10-1-3-0-1-10-6-9-1-0+2+3-9-3+4+0+7-1-8-6-7+6-8+5-9+3+0-5+9-0+10+9-0-1+4+10+3+4-6-6-10+0-7-5-6-1-3-7+3+4+9+2-2+10-10+10+3+1+3-9+1-5-1+8+5-5-4-10+7+8-8+3+2-8-10-3+3-0+9+1-7-5-9-6+5-6+5+10-3+7+1-6+5+0-9+9-2-0-2+0+4-7+2-3-2-0+0-9+2-7-3-3-6+6-5-9+3+6-6+8+1-9+6-10+4+7-8+2-7+5+5-1+2+9-4+1+0+10+8+5+5-10+7+6-4-1-4+2-8+10+0+4+1+6+1+4-9-9-4-2+2-2-4-8+5-6+4+2-10-3+9-1+0+9+10+2+4-6+2-9-1+1+9+10+5-0-8-10-7-5+0+7+0-6-2+6+1+5-9-2-10+0-2+10+5-6-4+5-9-4-10-1-6+3-2+1+3+4+8+5-6-8+1+1+0-10+9+6-10-9+6+6+2+2-10-4-9-7+2+3-8+6+3-10+10+4-2-7-7+3+3-2+4-2-4-5+7-5-8-5-7-5+7+7-1-5+5+3+5+8-6+1-7+2-10+2+10-0-9-7-8+6+5+5-2-0+3-2-1-3+7-0-3-0+9-2-8+9+1-10+10+7+6-3+8-2+5+3+5-8+9-10+9+10-9+2-10-4-0-10+5+6+3-8+5+2+1+5-8-9+9-6-3-6+3-3-4-2+2+10-4-10+6+4+10+10+10+4+4+5-7+2+6+6-6+2+2+1-9+10+9-7-7-1+2+8+5-10+3+10+0-8-6-1-2-2+9-9+5+10-8+3+6-7-9-8+9-1+7+6-10-5+7-0+9+7-7-9-2-9-3+10-5+0-9-8-3+8-3-1+5+1-9-4+7-2-10+0-1-10+8-10+8+5-2-8+7-3+9+10+7+6+7+6-1+8-5-9+1+1-2-1-2-9+9+3-9+7+8+1-10-9-5-5+4-6+10-4+1+6-9-0+7-2+0-4-2-9-1-10+5-0-1-8+10+8-10-0-1+2-1-0-3-4+6-4+10-8+2-6+4+0-6+9+8-0-5+7+1-3+1-6+2-1-8+9+6-1+6+4-8+3-0+2+5-10+0-7+0-3-2+5-9+6-0-2+4+7+4-6-8-5-5+4-9+5+1-7-5+8-2-2-4+2-5+2-0-4-4-1-9-2-2-5-6+10+9-5-7+4-6-1-3+7-8-1-4+9-10+5+9+6-5-5-5+1+6+6+4+2-8+5+8+3-0-2-7+4-9-10-2+10+5-6-5+1+6+5+7-6-8+8-2-10+2-2+4+7-6+3-8+0-5+0+10+3+0-7-5-1-0-8+2-2+4+1-6+5+7-10+9+10+0+7+4+0-6+9-8+5+3+3-10-4-5-5-0+6-8-8-7+4+3-4-10+4+1-5-9-1-9-1-1+3+9-6+9+0-4-2-5+10+4+0-8+4-4-8+3-0+10+9-7-6+7+9-8-7+8-9-7+8-1-8-6+10+10+2-9-6-4+10-5-1-2+8+5-0-2+7+3-5-1+1-7-1+5+8+6+0-1+4-2-10+2+4-4+2-4+5-8-9+8+0+8+1+4+4-10+3-2+1+6-10-4-1-0-8-0+5-7-9-9-8-6+4+8+8-9+8+5-0+4+7+0+10-3-9+6+0+5-0-10+3+10+10-1-3+3+2+2+10+4-1-7-0-9-7-9-1-0+9+7-0+6-3-2+4-6-5-10+6+5+9-9-9+10-3+5+7-5+7+1+10-5-9-8+7+2+0-1-0-2+10-5-5+3+2-10+6-8-0+9-2-1-2-3+0-7-1-1-7-6-8-6-8+8+4-9+6-5+0-7+6+6-3-5+1-10+0-10-0-9+9+4-1+1-0+3+1+4+8-0-4-7+6-3-5+6+6-0+7+0+4+6+9+6+10-4-5+2+4-7-2+1+7+5-9-0+1-5+3+6+1-1-2+8+4+6-5-9+10+10+3-4+8-2+1+6+2-8+3-3-2+3+3+6+1+9-10-8-6-1-8-10+3-10+6-10-8+6-8-3+7-7-4+9-10+9+1-0+0+2+10-6+8-2+1-5+4+2+1-7+3-5-5-9+5+4+0+7+0-6-1-7+10-2-3+4+10+4+0-7-6+9+8-8+9+2+9+5+4-4+4+6+4-5+1+0-10-0-2+6-10+3-7+8-4-3+7-8-10-9+10+1-1+0-10-7+6-7+5-4+2+6+0+2-1+10+4+2-2+1+1-6-10+4-1+0-8-7+9+10-10+1+9-7+8-3+1-6+6+8-0+9-1-4-10+10+8+3-2+3-8-10-4+3+7+9+2+4-7+5-6+1-3-0-8+4-6+5+4+4-0-2+5-10+8-1-0+2+4+4+0-9-2-1+4-6+3-10+0+2-3+7-10+10-1+10-9-9-2+9+0+3-2+8-5-5+5-5-7+0-10-5+9-7-0+8-8-7+5-10+0-6-6-2+8-9+0-4+8-9-8+10-7-2+5-3+0-4-0-9-9+1-8+5-7-7+5-1-6-4+5-9-4-9-0+6-4-4-10-3-1+6+0+8-0-9+7+4-10-10-1-6+2+3-6+1-3+4-10+4-3-0-1-4-8-1-1-7-0+2+3+10-10+2-3+10-2+3-8-6-3+2+5+3+8-0-9+0-10-10+9-9+10+8-2+5-10+4+10-4-5-5+0+1-1+2+8-3+9-4-2+2+4-3-4+1-2-9+9+5+6+5+2+6-9-5-6-3-8-1-4+7+8+4+10-2+10-3+6+4+8+6-10-4-3-9+2+9-7+1+8+8-7-3-5-7+8-9+7-1+3+10-2-3+0-4-5-4-6-5-2+7-7-6+3-7+8-4-5-5-10-8-7-7+0+5+7-2+10-1-4-9-2+0-8+7-6-7-1+6+5+3+5+3-4-6+7-6+1+3+6-6-10+3+0+6-2-10+1+3+0+5-0+9-4+7+0-1-0+2-8+3-1+0-3-1-9+9-5-5+7+8-4-3+10-10-10+7+9+8+7-2+6-5+3+6+10-6-2-0+7+3+5+3+3-3-5+4+9-2-8+9+6-10+1+8+4-7-5+0-9-8-3+7+9+0+0-4+8-9-2-4-4-4-9+1-4-9+6-5-6+6-2-2+7-5-5-10-0-6+0+9-2+0+9-9-6-5+8+5+9-7+5+3+4-5-5+2+8-9+5-8+9-9+1-0+2-5-9-4-6+1-6+3-5+6+1-3-9-8-0+6-3+4+1-3-2-1-1-0+8+1-3-0-5+3+6-7+6+9+9+5+3-4+1+3+1+5-1-7+10+1+3+7-2+3+7+8-0-0+6+10+3+4+10-4-1+2+8+0-0-10+7+2+7-5-6-5+9-5-1-4-9+9-4+2+10+0+3+3+0-4-3-2-8+9-2+9+9+5-10+3+8+10+3+6-8-10-2-3-7-7+2-6-9-1+1+6+2+0-7-4-6+9-3-7+6-1+8-6+5+1+0+8-3+10-2+9-0-5+5+4+1-8-9-8+4+10-2-7-10-9+5+9-0+7+8+4-1-4+2-9-5-6-3+6+10-0-6+3-9-3-8+5-6-10-10+8-7+3-2-4+3+7-2+5+4-7+10-3-10-3-10+3-5-5+7+9+1+5-4-3-2+4-8+0+9+2-5-4-5-4-4+2-6+3+0-9-8+8+0+5-7+2-8+1-8-8+4-0-8+3+7-3+4-0+0-1-10-2+5+5+3-5+4+8-3-7-1+0-0-0-5+2+0-0-3-7-9+1-0+0+8-5-9+9-1-5+3+6+3-7+4+1-1-1-3+1-8+4-3-2+3+10-7+4+3-7-3-1-3+0+2-3+4+1-1+0+8-9+0+3-7-10-6-1+8-1+0-7-3-0+10+10-5-10+1-5+1+6-8-1-0-4+4-5-1-8+7+2+5-7-3+2+5+5+8+5-4-1+4+3-6-1-2+6+3-8-8+10+1-0-10+10-9+7-2+5+8+8+10-7-2+4+7+5-9-2-3+6-5-7+1-9-3-8-5+4-7-5-6+5+6-10+3-6+4+6+2+1-5-9+6-7+5+4-8+2+8-0-2+0-1+9+8-7-5-9+5-1+9-1+8-6-4+4-6-1-1-3+4-6+0+7-4+0-3+4+0+6+4+9+10+4-1+5+10+2+1+6+0-10+9-3-4-3+1+2+7+6-7-4-8+5+3+9+7-7+6-7+4+2-8-2-5-0+3-6-2-7+1-0+9-7+1-10-9-7-1+7+1+5+6-10+1+0-3+6-5-1-10+3-10+10+3+9-1+7-9-4-7+8+2-4-0-0+0+9+2+6+5-7-7+2-7+7+6-7+2+9+8+7-1+5+8+9+9-2+3-0-0-1+9+3+5-1+1+3-6-10-2-8-0+4-7+7-4-3+1-4-6+7-5+10-0-6+9+8+6+7-1-5+6-6-3-1-8+5+8+4+7+1-6+2-4-5+1-1-7-8+3+3-7+4-8+4-10+5+8-8+10-3+0+4+8+4-9-6-8+3+0+6+6-0+4+9+1+10-6-1+9+0+1+3-7+5+10-0-2+0+8-9+7-1-5+4-8+10+3+8+1-5+0-0-8-4+1+0-0-1-1-7+0-0+0+7-3+6-1+8-8+7-3+2+2-1+1-5-0+6-10-5+7-10+4+7-1-3+1-4+4+10-6+4-7+7+2+10-6+0+2-3+6-9-10+3+4+7-7-8+2-4-7-1-4+4+8-9-6-10+5-10-8+6-8+2+0-10+10-10-8-6+5-1+7-4+7-9+8-10-1+0+10+6+9-0+6+5+0+6+10-8+2+9-1-3+5+7+4+10+0+7-0-8+2+3-1-2+1+7-0+1-1-9-4+4-0+10+3-9+2-0+2+10+6-0-9-0-4+7-10-10-8+0-2-3+5+7-7+8+7-1+10+6+9-9+10+1+2-2-1-1+7-7-10-8+3-8+0+3+0-8-0+5+4+2-7+8+7-3-4+6+10-4-10+10+1+6-1+9-5+8-9-10+8+3+3-10+10-10+1-5+3+8+2+0+3+0-10-2-3-2-10-10+8-0-5+0-9-5+0+1+3+8+9+0-6-6+2-2-8-7-3-3+10+5+5+6-6-6-8-6-7-3-8+6+5-4-2+0+6+8-1+1+8-2-1+1-3-10-10-1+7-3-8-10-8-4+0-8-0-9+10-10+6+3+4+1-4+4-2+10+10+5-8+0+10+9-2-8-4+7-6-1+5-1+7-7+1-8+8-7-2-4-2+1+10-4+10-8-6+8-5+8-9-2+7-0+1-5-1-0+3+8-2-3-4-0+3-5-1+10+8-2+9+6-9+6-6+4+3+10-10+1-9-6-9+7-0-1+0+3-9+0-0-7-5-9+8+6-7+4+3-9+7-0+3-4-9+7+7-9-10-4-1+9-6+4-6-0-6+3-4+3+6+5+0-10+6+6+0+1+9+5-5-0+2+10+6+3+8-2-2-3-7-3-8+3-0+8-2+3-10-6+5-7+5-9+9-3-10-8+5+0+7+6+3-5+0-10+7-0+1-1-0+4+5-10-6-3+4-4-2-1-5-9-3+8+2+8+8+1-1-7-4+10+6-9+7+7+7-7-5+6+4-8+2+0+6+5+3-3+3-6-7-3+0+8+2+10-0+4+8+10+8-1+0-0+4+0-4+7+5-1+6+5+9+3+2+0-4+10+6-0-10-4-1+6+0-8-2-8-4-7+3-1-5-5+9-2-1-8+3-10-4+7+8+0+0-7+3-6-6+6+5+9-7-4-9-1+5+6+7-9-9-4-0+0-7-6-10+5+1+6+6-9+8-8+4-10-2+3-4+2-2-10-5-10+1-8+0+9+10-0-4-5+8+2-4+4+1-6+7+4+10-10-5-3+0-8-1+6+2+10-2-6-2-8-7-0+3+0+3-4+9-4-9+8+4+1+7-10-10+0+0-0-4-0+9-2+2+6-3-5-3-1-2+8-3-5+0+6-7+5-10-9-3+4-9+0+1+8-7-8-10-3-7-2+7-8-2+4+1+8+2+0+0+7+1-1-8-6+8+8+8+10+8+4-9+0+9-7-9-9-0+4-6-3+9-8-3-3+10+5+9+4+5+8+3-6-10-1+1-7-10+6+10-1-3-2-6+4-3+7-0+7-4-10-9-10+7+1-6-8+4-1+6+1+3-4-5+6+1+5+1-6+8+1+7-6-2+10+6+10-4-7+0-8-1-6-2+0+3-7+3+9-7+2+2+6+4+8+8-8+1+0-10+4+5-0-7+9-1-5-0+9+7-1-1+0-5+4+7-6+10-10-6+2+7-4-10-2-8-8+10+4+3-3-1+4+10-8-9+10-1-4-1-10+4+4+3-8-2+6+5-3-4+9+6-8-8-6+7+8-6+3+5+10-3-6+10-8-7-3+5-2-1+9-8-8-10+6-2+5-9-3+9-6+2+6+3-3-5+4-9-9+7+6-2-4-3+6-5-9-8-0+4-7+1-10+4+3-4-0-10+10-5+1+4-4+0+9-2+2+2-8-8+4-9-3-2-10+8-0+5-6+8-3-5-3-10-7-8-3+9-1-4+7-1-9-7+10+1-6-9+6-3+4-2+0-6-8+1+3+10-5+1+2-5-1-5-7+8+8-2-3-4+8+5+9-7-4+7-5-2-0+1+7-5+10+7-7-10-4+9-0-3-8+6-1-2-7-2-0+10-5+8-0+1+5-8+10-5-7-7-6-10+6-8+8-9+2-4+1-0-9-1-8-5-10+0-6-9+10-1-2+2-4-5+5+5-9+2-0+3-2-10-5+4+0-5+5-9-7+7+6+1-6-4-4+9-3-7-4-5-2+6-2-3-0-5-3-1+10-7-3+8-9+5+9+5-5+2+8+3+4+7-1-1+1-10+9+10-6-1-3+1+10+1-5+5-9-6-5+1-2+0+7-3+0-5-4+9-9-7-1-6+2-6+8+1-3+5-2-0-0-7-5-1+7-4+10+1+7-4+7+6-5-1+10-8-0-10-4+0+0-6-6-4+8+3-7-5-0-9+4-7-10+8+1+8-8-5+1+3-4-10-7-0-1+3+10+8-4+3-10-3-9-10+0-8-3-0+7+3+4-2-9-4+2-0+8+3-0-6+2-9+4+0-7-8+5-2-8-10+2+7+1+5-9-2-0+5+8-7-1+6-4-3+0+3+4+0-6-10-0+5-9-5-5+6+6+6+8-1-6-8-5+4+9+0+6-0+7+5-8+7+3-8-0-3+7+4+10+5-1-6-10+2+1-6+3+6-2+0+5-6+8+9-7-8-5-4+5-8-0+5-1+6-1-7-8+7-7-7-4-3-0-1+5-5-10+3+10+8+5-2-2-1-5+10-5+6+8-7-0-10-5-6-3-5+10-10-10+6+6+7+4-5-9-5-0+3-2+5-4+4+4+4+6+6-7-10+6+7-5-3-10+6+3-4+8+7-8+4-5+2+0+3+8+1+3-0-3+2+6-7+2-4+3+7-9+7+2+7-4-10-6-0-7-10+5-5-0-7+10+5-9+6+7-4-1+0+0+5+9-6-5+6-4+1+0+8+2+4-7+5-3+0+2+6-0-9+8+10+7+7+10+9-9-0+8+10+10-5+5+5+5-6+6-2+5+3+4+10-6-8+3-9+7-2+8-1-10+10-9-6+9-8-3-0-9-7+5+7-10+2+0+0+7+6+10-4+7-1+5+4+6+7-5+2-7-9-5-5+10-5+6-9+10-8+8+5+0-4+0-0+10+1-5-10+1-7-6-0+2+5+5-0-4+6-6-3-0-5-5-7+1-5+9-4+6-5+1+8+2-1-3-1-10-3+1-10+3-10+5-7-2-9-6-2+4-6+8+3-6-7-4+1+10-3-5+0-2+2+6-9+10-7-10+10-1-7+0-0+10+5-8+6+7-4-5-3+7-9+4+5-4-7-3+5-2-6-0-2+0+9-4+1-10-3+1+0-3+6+2-2-5+8+10-4-1+7+1+7+9+3-1-1-2-4+4+3-4+5+9-6+2+9-6+1+10-0-7-2+4+1-3-2+10-9-6+7-6-6-2+5+9-9+1+0+6+9-7-0-4+8+2+0+1+3+7-2-1+7-1+8-3+6+5-5-10+10+9+6+10-9+0+8+5-4-7-0-4-10-7-4-5-0-10+8+3+1+3+7-6+4+4-0-3-2+1+6-2+10-9-0-10+4+6+1+3+7+1+8-5+6-6-5+1+1-10+6+1-5-8+4+0+0-2-8-2+9+8-2+2+10+5+4+5+8+2+1-4+2-4-9+7-6-8-3-0+3+7-2+0+2+0-8-7+6-7-5-6-4-3+1-3-10+5+6+3-10-1-10-8+4-4-9-4-8-9-3-5-5+9+5+4+4-0-3-7-5-0+0+6+1-0-1+6-0+3-4+5+5+4-0+9-1-1+9-4+5+1-9-5-5+8-1+4+2-9-2+5-10-10-6-10+0-10-9+7-5+9+10+10+2+5-1+3+6+3-8+3+7-6-2-1+5-3+10+0+0+4-9-10+3-7+8-4+9+8-4+5-0+4-9-6-9-0+1-5-3+9+0-2-10+8+4-5-7+6+5+2+7+10+8-0-3-1-9-3-6+7-8+10+8+1+1+1+10-8+4+8+6+4-10-1+3+7+7+9+0+3-1+1-10-4-9-10+2-3+2-4+3-9+4+9+7+5+5+6+8+0+2+2+6+9+4+5+1+4+1+4+1-1-10-8-7+9+6-1-2-9+1-1-1+0+8-4+2+1+3-5+7-4-0+5-10-1-0-4-4+10-8-5-4-4-4-6-1-0+10+4+1-9+4+6+7+0-10-4+10-8-4+3+7-0-10+3+6-0-10-0+6+4-4+6+4+4-6+9-4+4+8+3+0+1-7+5+10-3-2+4-0+3-0+5-4-2-10+3-7+7+9-1-4-6+4-10+8-4+2+10-7+8-7+6+3+7+3+3+1-6+2-2-4-7-1-4+4+6+2-0-8-0+1+5-4+9-10-9+1-3-5+4+3+6+0+5+4+5+2+6+6+6-5+10+9+1+0+4-5-10-0+9-2-6+10-1-6+9+1-10-8-4-7-9-4+9-8+3+5-9+8-7+5+4-2+9+10+2+3+10-2-2-3-8-3+6+8+9+1-1+7-2-1+9-8-10+6-8+6-10+2-0+10+2+8+9-0-6-5-4+1+9+4-7+3-3+10+8+10-0+4+4-10+1+4+10-4+5-2+10-0-9+0+10+4-6-8+5-6+3-6+5-3+1-3+2+8+8-3-7+7+6-10+1-7-0+7+10-0+1+7-10+3-7-3-7-10-5+3+9-0-5-9+10+4+0-4+8+1-6-8+7+7+4+5-5-10+0-10+10+9-0-1+8-8+7-2+0-10+3+0-6+6-0+1-4-4-0+1-10-10-7-6-6+7+10+3-7+3-3+1-4+6-6+8+7-0+3+4+5-1-1-10+4-6-9-6-10+1-1+3-3+2+2-9+9+8-6-1-4-7-6+2-9+3+7+6-3+8+5+9+4+7+9+7+2+5+2-4+6-7-4+4+10-8+3+0+1+7-6+7+10+3+5-5+5+1-2-6-2+3+4-3+7-10+7+8+4+2+6+10-1+10+10-3+7-8+8-4-9+7-3+2+1-9+3+0+2+3-7-5+8+3+1-0-10+9-8-4-1-8-4-6+4-5-1-2+7-6+6-8-1-9+0-8-8+3+1-8+9-0+0+3-4-0+4-7-0-10-3-2-0-7-10-2-2-0-0+10+0-7+7+3-9+10-0-9+2-2-8-0-1+9-4+3+1-5-3+10+0-10-10-2-9-1-5+1+8-10-0+3+9-2-3-7-5-0+3-0+0-0-5-7+3+6-3-2-1-1-10+8-0+4+8-8-9+9-10+3-2-1+6-8-3+0-5+3-5-7+7-9+10-8+10-3+3-9-9-1-0-8+6+2-7-6-3+0-6+10+8-6-7-9+10+4+10-6-1-0+7-9+10-7+4+10-3+8-3+6-6-10-1-10-2+1+4+1+3+8+0-9-10-10-6+1-3-4+3-1+9+3+1+8-2+7-3+0+1-4+0+2-0+4-10+2-9-1-10+5-7-8-3-1+1-7+8+0+0-3+9+1+6+7+0-0-10+0-9+3+10+1-10-6+7-10-4-3+9+6+6-6+0+8+5+1+6+5-5-1-2-1+9+7+2-6+1-2-4+2+4-5-3+6+2+4-6-1-6-10+7+7+1-5-4-2+1-5-6-0-9+6-0-1+0-8+4+4+10+0+1-3-10-5+8+6+9+8-6-10+5-9+3-3+1-4-10-10+2+7+8-4-10+6-0-6+9+2+7-0-1-0-3-10-7+9-4-6-2+7-9-10+8+9-7+6+7-6+2-0-9+3-4-3-9-4+1-1+8+10-10+2-10+10+6+8+10+10-5-3-10-1+1+5-4+1-8-4-3+7+8+3+0-3-4-2-1-5-2-3+6-5+5+5-6+1-2+8-1+2+1-8-6+7+5-6-4-1-3+2-8+3-10+4-2+4+1-4+8+5+6+9-3+5+2-5+5-3+4+9-10+0+3+4+1-1+8-0+10-2+8+10+5+10+3+4-6+8+4-6+7-6+5-3-9+0-5-8-1-9+3-5-4+2+6+4-1+8-2-10+1+10+6-9-4-0-7+1+5-9-9-0-2+9+9+7-4+7+7+4+1+6+0-2-5+6-4+6-0+5-4+7-10+3+2+6-0+4-6-4+0-9+7+8-9+4-3+3+0-6-6+3+8-3+9+5+8+7+4+10+1-9+10-7+2+7+9-0+6+0+3-2+7+3+8+5+0+9-6-9+7-5-4+1-5+3-1-1+10-5+6+5+6-2-0-3-0-9-1+2-9+2+0-9+2-5-10+2+1+2+7-9+10+9-4-2+10+10+4-10+8+1-6-4-6+4-1-9-0-6-7-10+10+9+1-7-8-4-2+5-7-8+3+8-4-6+7-2-3+0+0+3-7-0-9-1-2-2-8+0+10-8+9-2+9-4-7-6-0+7-4+2+3-8+10+2+5-2+7+6+10+2-0-2+4-1+8+8+1-7-9-10+4-7+0-5+4-5+1-9+4+7+10-10+6+10-1+2-7-9+3-5+5-9+6-1+8+8-10-6-6+0-8+9+0+6-4+8+7-2+7+2+9-5-8-4+5+1-8-6-6-7-7+3+2-6+7+9+4-8+10+1+5-9+2-9-4-10-3+10+5-10+2-10+6+5+2+10-5+0-1+6+4+1-10+9-9+6-4+1-7+6+3-1+7-4+6-9+0-9-0+4+8-6+4+1-6-1+5-2-3-8+5-10+8-8+4+8-3+7-1+8-1+5-0+2-10-2-8-6+10-0-3-4+9+8+1+10+3-4-8+4+4-8-5+0-2-5-9+9+8-7+9-10+1+1+0+10-2+10+0+7-1+4+0-0-4-6+9-0-6+4+3-5-3+3+4+2-4-10+3+1-4-1-2-7-6+5+6+4-0-10-6-6+10+4-0+7+8-4-1-9-3-7+7+6-3+4+9-9+8-9+2-8+0-2+4-1+6-6+1+3-6-1+6-3+2-8+3+3-5+5+8+8+6+5-5-4+10-3+8-8+3-8-4+9+6-5-9+0+1+6-5+5+6-8-4-2-2-1+0+2-9-1-4+9-6-6+5-9-8+1+4-1-3-8-7+8-1+4-7-5-1-3-8+1+6+7-1+7+0-4-10-0+10-9+3-9+6-3+4+1-4-5-10+8+9+5-3+9+10+9+3+5-4-3-10-10-2-1+4+1+5+9-6-4+5+1-2-4-7-4-8-5-4+9-4+6+5+1-3+3-8+2-5+6+3-4-6-0-3+2-6+10-5-10-1+8-5-9+4+9+4-7+7+0-3-4-4-3-0-0-1+7-3+8+7-2-4+4-3-0-2-4-10+2+5-10+5-2+7-9-9+4-5-6-1+0-0-1+6+10+0-9+2-10+0+9+5-4-2-5+6+3-6-6+8+8-5-5+3+8-9-9-6+2+5+6-9+1+6+9-4-3-10+0+10-7+4-6-9-1+7-8+2+0-1+2+0-6-2+6+2+2-6-2+6-9+10+3+5-6-7+1+2-9+5+7+7+2+3+10-9-6-9-8-7+2+3+4+10+8-6+6-5-2-3-8-3-3-6-3+7+1+8+9-6-2-7+1-5-5+8-10+8+10+8-8+0+6+2-6+2+9+7-5+6+3-2+4+5-9+10-5+2+5+6-1-7-2-7-2-2+1-5+3+1-7+2+7-10+0+10+7-5+1+5-4-1-5-5+1-5-4+5+2-5+8+6-7-2+1-9+9+2-6+6-1-10+10-8+6+10+0-6+5-5-1+3-10+5-6+1-4-4+2+1+2+10-5+3-10+7+7+7-5+7-2-0-2-9-8-4-6-1+3-2+2+6+7-8+0-3-2-2-1-3-3+1+6-0-6-4+1-4+9-6-7-7+8+8-4+3-4+2-5-3-0+2-1+5-4+9-6-8+1+1-5+3+1+6-1-2-4+4-7+4-5-5-3-7-2+4+3+8-8-10-5+9-3-8-7+10+7+4-8+5+4+9-7-0-0+9+8-2-0-2+4-3-1-8-3+9+3-1-6+4+2+4+9+8-1+6+5+7-10-1-8-2-7-10+9-1+10+4-10-9-2-4+9+10-5+0-3-1-2+7-6-1+10+7+10+4+7+4+8+8-9-5-0+5-1+1+5-3+6+2-6+6+6-1-9-3+7+4+7-4+0+5-9+6-2-3+3+1-6+7+1+5+5-10-7+9+2+10+1+8-2+1+0+7-4+10+5+8+3+6-10+0-4-4-1-4+10-4-0-6-9-6-7+10-4-9-2-3+4-0+1-4-10-0+10+6+6+2-8-5-10-6+10+8-1-8-2-4-8+6-1+1+5+4-0+0-1-2+0+0-5-9+6-4+9-8+5-7-7+0-1+8-9-1-8+1-4+8-7-3+4-1+3+1+6-1-8-3-6-5+5+8-9+1+5+1+3-1-0-0-2-5+2+0+6+1+2+5-4+10+10+2-4-2+10-4+9+8-1+5-5+1-9-1+5+4+1+7-7-8+0+6+2-1-7+10+6-5-3+10+3-10-2-7-6+7-9+2-9+8-8-6+4-4-7-7+5-6+2+9-10+9+3-4+10-9-3-1-4+4+4+5-10-2-8-10-7-10+4+6+6-8+5+5-1+6-4+7+5+9-3+3-8+5+8+9-7+5-10+2+4-1-5-2-10-2+9+3-6+5+4+6-10-0-2-6-5+3+7+9+6-9+0+5+0+6+7+10+9-8-4+5+1+9-6-1+10-7-1-7-8+4+5+3+2-3+0+7+0+4+10+7+4-9+8-7+3+1+6-0+8-9-3+8-8+3-8+10-3+5-7-8-2-6+0+5+8+10+7-2+0-8+10+8+5-3-1+9+3+0+2+6+5-9-0-4-3-1+7+7+8-7+5+10-9-8+9-10+3+8+3+0-9+2-6-10+8+2+0-1-8+10+4+0-10-9-0+1+2-0+5+0+0-9+2-8-8-3-7+5+9-5+6-8+0-4+10+8-2-7-7+3+1-9-1+2+10-9-3-0-2+7+10-6-9-1-4+7-3+0-2+10-1+8-3-2-2+0-0-5-9+8+7-8+10+1-10-7+4-3-4+7-4-10-3+10+2+0-9-6-7+2-9+1+9+2+6+0+1-6+2+4+7+6+6+1+9-9+2+2+10+8+10-4+1+3+4-4-10+6-10+6+10+2-3+5-6+5-8-3-6-7-7+10+7+6-7+0-2-1+5-5+6-0+9-10+6-6-10-8+3+10+5-10-9-7-7+7-9-9-3-2+6+6-7+2-1-1-2-10+5+3+0+1-1+10-4-6+4-10+7+9-10-10-10-2+1+5+2-4+2+8-6-0-10+8-1-8-8+8+5+0-1+5-1+6+5+4-2+6-1+8+0-5+1+8-1+4+3-8-8+2-10-4+10+10-1+9-4+4+1+1-4-1-10-9+2-3+10+0+2+4-8-10+10-3+10+0+6-8+5-9-3+10-8-2+1+2+8-8+5-6-8-6+3-6+9+6+7-9+8-9+0-6+10+0+6+3-1+1-2+5-5-0-1-7+8+2-10-9-10-3+3-8-1-2-4+2+3+1-3-3-0-7+4-4+1+3+9+4-7+4+6-6+3-10+4-10-4-2-4-9+8+4-6-1-6-8+10-4-4-4-4-10+10-5-1+0+9+9-0-6+5-8-3-8-10+4+8-9+6+5+4+1-1-1-2+9+3+3-1+9+3-10+9+8+9-7+1-5-3-8-0+0+2-9-4-6+5+3-4-10+8-3-8+9+6+3+6+3-2+9+2+9+10-2+3+4-2-2-6+1+9-2-6-5+3-8-2-1-2-7-10-4+3+0-4-2+10-3+6-1-2+4-9-0+10-3-8+2-3-4-5+6+10-8-2+0-4+5+6-3+0+4-9+10-1-6+7-0+10+6-5-1-9-9+1+5-7-6+3+0+6+1+8-6+7-3-7+1-3+10-0-6+3+7-1-4-6+0+10+8+9+1+9-8-6+5+3+0-9-2-8-7+10-7+8-6-3+9-1-5+1+0-10-3-6-2-0-9-5-5-8+4-6+10-7-3-0+5-8+8+6-2-6+4+2+8-0+10+2+1+0+7+1-3-2+1+10+0-7-2+0+0+3+9-3-9-9-2+2-3+7-0+7+9+9-10-1-3+0-0+5+6-8+0-4-3-3-0+5-3+7-10-0-9+4-4+7-8+0-2+7-5+9+8+4-2-7+1+1-6-2+5-4-0+7+3-3-8-7-7+4-0+7+10-10-4-1-9-5+0-1+4+4+2-0-3+8+5+4+8-2+7+1+6-4-0+3-8+9-7+8+6+9+8+10-10+4-2+8+8+7+5+4-3-7-8+7+8+7+5-4+10-5+1-5+10+10-10+6-0+8+9+6-6+5+4-1-0-2-0-10+10-9-0-1-2+8+9-3-4-0-9+10-9+3+2+10+2+4+5+4+2-10-0-7+2-10+2-1-0+6+6+4+2-9+3+9+6-8-8-3-0-1-10+2+10+9-3+4+0-7-6-7-5-7-8+5-9+8+0-6-4+5-4+5-2+6+4-1+4+2+8-5-4-8+3+9-7+5-3+7+0-7-1-7-0+0+10-5-5+2+4+8-8+9-2-1-10-10-5-7+1+7+2-8-9+6+1-10-2-2+7-6-5+3+4-3-8+7+8-7+6+9-5-3+4+6-1+7+9-5-5-6-8+9-4+8+2+10-6-2+5-9-3+6+5+3+7+6-0+3-1-5+9-2+0+7-0+0+1+6-3+4-0-7+8-9+7+0+9-0-7+4+7-7+8+7-3-6+7+9+7-10+0-2+10+2-5-10+8+10-5+6-0+9-8+3-4+9-6+8+9-7+10-10+1+7-0-4-8+1-0-5-2-3-2-5-2+7+8+3-8-6+4-6-9-9-6+4+1+6-6+6-0+3+4-7-6-2-0+9+7+7+10-4+9+8+4-9+9+3-7-6+5-3-4-3+5-2+6-9+1-6-9+10+4+9+5-0+4-9+2+3+10+10+4+0-7+9-9-3-4+10-5-6-6+10-4-7+5-5+1-0-7-3+2-9+3-5+0+0-2-5+6+1+2-1-0+10+6+8+9-6+5+3+5+8-0-2+10+8+2+9-9-5-6+4-5+2+6-7+0+5+1-8+8-1-1-1+5-2-6-2-7-0-0+2-8+0+6+2+5+9+1-8+7-6-0+7+6-10+2+6+2+10+2-2-4-4-1+10+10+1-8-3-1+4-3-2+8+1-5-5+9+10+7-6-10-3-6-9-3-3+0+3-0+9+10+4+9-2-8-0-1+9-9+8+5+5-7+0-6+8+0-1-7-10-7+8-6-5+1-0+1-3+1-10-8+4-10+2-9-5+2+0+6-7-5+2+5+1-2+4-8-10+1+8+3+7+8+4+7-4-8+7-7+1+0+7+5-2-1-8-8+1+8+0-2+8-8+1-8+7+2-2-1-5-1-0+7+1+10+7+1-7-4-6-6-6+9+10+1+7+4+8-0+7+2-8-1-1+1+9-8+8-0+9-4+4-7+0+8+0+9-4+5-3-5+9+10-6+8+7-2-1+7-4+2-6+9+4+5+5-9-0+6+7+6-2+5-3-10+7+9-8+10+6+6+8+8+4-4+3+7+7-8-6-10+3-1+7+3-1+8+7-5+8+10-0-10-8-6-5-2+5+2-9-5+5-10+8-1+7+6-5-2-10+5-3+2-9+0-7+4+5-1+9+3+1-3-8-6+10-9-1-10-1+5+4+1-0-4+0+0-1+7-4+6-4-4-3-7-4+6+4+6-6-5-10+0-6+0-6+7-5-0-8-8-4-10-7+10+10-1-1-9+6-0-3+0+2-10+0-4+3-0+0+10-4+7-3+5-6+6-6+5+3+9-0-10-0+0-1-5+8+5+9-4+8-7-3-10+0+9+6+0-10+2-2+6-1+4-2-8-2-7+1-10-5+0+3-7+3+4+2+6-3+9-8+7-9+4-3+2-3-6+9+8-6-1+8-4+8-1-9+8+1+7+8+10+10-8-9-1-1+4-10-5+0+10+3+10-7+9-10-1+5+0+5-4+7-6-2-10+8+9-2-8+2-5-3-6+2+7-6+3+8-2+2-9+10-3+1+2-3+4+5-6+4-2-0-9+2+4-9+1-6-6-0-1+0+4+7-5+6+1+8-5-2-3+0+2+9-2+5+4-5+4+10-5-3+6-0-0-5+10+10+2-6+10-3-2+8-0+8-4-10+3-5-7-5-7+3-0-7-4-0+9+4+1-9-2+2-6-0-2-4-10+2-3-7+2-6-2+10-7+6+10-9+2+0+10-2+10+9-2+10-4+3+3-8+2+10-6+8+4-6+7+7-10-2+10+3+9+7+9+4-0+9+10+9-10+0-3-2-5+7-6-2+5-7+0-4-0-10-7-7+9-5-0+6-7+0-10-6+3+2-4+4+7+3+10-10+9+4+2-5+2-3-8-3-4+0-10+8-0-1+0+3+5-5+8+10+9+10-10-1+9-4+0-0-2-6-9+8-3-5+6+6-7-1-4-7+3-5-7+7+8+8+0-9+1-6-0+0+8+6-2-8+0+10+5+10-5-6-10+1+0+5-8+6+1+6+10-0+9-6+10+0-10-6-2-0+7-5+9-4-4-4+8-8+0-3-2-6+10-7-6+0+10-6-1-1+6+10+8+4-9-8+1-2+7-3+3-4-4-1+8-1+4-7-5-1-0+4+2+3-8-8+10-2+1-8-2+0-0+10+5+7-7-3+1+6+4-8-2+2-9-9-4+8+1+9+4+10+6+8-4-9-3-3+7-10+5+1-4+8-10+2+6-9+1+4-2-6+4-4+7-9-2+2+10+0-0+0-3-4-9-2+7-3+10+5-0+3+6+2+6-5+3-8+3-4-4+0+4-9+1+9+0+2-2+4+1+5+2-0-9+0-4-10+8+5+4+1-0+2-4-9+2-5+10+1+2-2+1-6+9+6+5+10+9-9-8-4+9+0-7-3+7+7-1+0+4+10-9+8+4-10+9+8+3+0-5-1-5-4+6-1-0+10-10+1-10+8+0+4-5+4-10+10-7+9+4+2+1+9+8-10+1-10-10+9+3-5-6-1+6+3+1-5+1+3-3-9+1-8-4+8+8+3+0-7+4-10+8-2+4-8+9-5-1+4-5-0-7+3+2-2+0-0+2-1+3-2+3-7-4+0+3-10-10-9+7+10+0-10-10+9+10-4-4-0-10-7+0+10+0-8+3+3+7-2+8-8+1-7+2+3-3+3-3+10-8-9-3-6+0-3-1+7-4+9-7+9+3-1-4-5-4+1-3-7+4+8+10+9+4+2-6+6-3+4-8+2+2+8-4+3+7+9-8+5+7+0+1-10+5-10-7-7+1+2-10+8+2+6+7+10-3+5+3-0+6+6-7-1+10-6+7+6-3-10-8-6-2+8+0+6+5+8+5+8+0+6+2-9+6+6-7-7-3+3+3-5-3+2-0+4-9+10+0+5-5-1-4-4+7+10-10+6+9+0-6-7+8-1+6-2-0-7+4+6+7+7+4+7-8+10-3+9-10-3-7+10-8-5+1-6-6+8-3+6+7-3-7-0-1+0+1-7+1+10+9+5+9+2-8+1+9-3+1+8+6-0+3-0-0+7+0+6-5-8+9+10+3+0+1+10+3-0-1-10+2+7+9-5+1-6-0+1-8-8+6+4+8-6+5+3-8+5+10-5-4-4-4+10-6+3+2+3-1-10-1-2+2+2+3+8+4-8-0-0+2-7+1-6-9+6-8+10-4-6+8+4-9-9+0+1+10+8+9+7+4-3+8-3+7+1-0-2+3-2-2-5+3+1+9-7+4-5-4+3-3+3-2-0+5+7+9-3+2+10-5-5+7+9-5+7-0-8-2+9+5-9-0+9+5+4-8-4+9+1+9+8+4+9+4+0-2+9+8-8+1+3+6+9-1+6+1+0+8-6-2-0-2+8-10-0-10+6-6+7-5-10+9-0+1-3-7-9-0+1-0+10+3-5+1+3+10+1+1+6+9+10-6+5-3-6+3+8-5-3+7+9-8+2-0-1+7-8-9-1-1-9-4+3-3+8+4-5+6-8+2+8+3+8-1+7+2-1-10-4+1+9-8+1+0+6+3+0+9-8-1+1-6-7-7+10+3-6-1+4-2+3-9-9-0-2+0-5-4+10+6+9-4-5-8-1-9+8-2+7-8+0+8-5-1+4-3+4-4-7+0-0-0+9+5+7-3+0+9+0-10-3+0-6-2-10+2+0-6-9+9+1+2-8-7-8+1+10+7-5+5-0+3-6+4-0+5+5+1-6+3+1-1+4-5+3+8-5+5-9-2-5+3+5-7-0-1-3+8-7-0+2-7+1+8-5+3-10-4+3+3-6-3-3+7-3-6-5+9-1-5+2-9+0-3-10-4-3-5+10-5-10-0-2+0-4-0-7+9-10+10+4+0-9+7-0-4+10+8+9+4-5-8+0+6+4-4+2-2-5+8-8-0+0-4-3+1+4+5-5+8+3+0-9+0-4+0-7+1+6+8+9+4-6+7+1-0-0-4+1-9-3+2+5-6-5+5-1+6+1-3+3+7-10+0+2-4-7-2+0+5+9-4+2+0-10+0+10+10+5+3+3+1-10-6+6-2-3-5+0+1-0-7+9+5-5+8+8+4-0-9-4-0+9+10+8+6+5+2-0+5+3-0-1+9-0+3-3+3-10+10+3+4+9-4-8-9+1+8-10+1-9-2+7+5-9+6+6-0+7+10-0+2+0+3+4+3-1-5+10+4+6+7+6-10+6-2+10+6-10-10-1+8-7+0+5+5+1-3+1+7+3+1+5-2+7+0+2-5+9+3-10+8+0-1-5-1+0-7+2+6-2+9+10+7+3+10-10+5-3+5+5-8-7+10-1+9-4-10-0+8+5-5+4+0+9+8-3-8+9+10-2-4-3+7-6+8-3-2+3-5+9-7+3-10-5+1-0+5-6+3-1+6-6-3-3+3-5-0-5-1+2-6+10-5-0-8-7+10+9-3-10+4+10+4+6+6-9+10-2+10-3+4+6-6+1+1+10-3-9-7-2-4-0-7-5-9+8-8-4+0+8+4+8-1+1+4-8-4-10+1+7+1-4-0-4-10+3+9-5+8+4+2-7-2-1-2+7+8-1-1+4+4+7-10+6+6-8+8-5-0+10-5+1+7+1+10-6-4+7+6-4-9-5-9-4+4+1+8+7-0+10+1-5-7-9-5+8-3-8-2-4-8-10+0-1+10-1+4-1+9-3-9+1+8-0-10-3+8+8+10+1+6+9-5-6-4-8-0+8-2+3+0+3+9-5+4-6-1+8-1-2-1+8+0+1-1-6-6-7-0+2-0+3-8+2-0-10+2-7+2-6+2-5+3+4-4+1+7-1-5-3-6+6+6-1+4-3-8+7-5-8-7-1-4-3+5+8-6+6-3+2-3-8-1-9-1-1-3+3-4+3-10-4-9-4+2-6+3+0-5+9-3+4+4+6+8-2-2-1+8-2-6-10+7+10+1+8+8-3+2+2+6+7-3-6-8-7-0-7+5-3-4-8+0+10+2-10-0+1+8-9-6-7+5+4-8-9-0+7-1+1-2-10+0-3+2+0+8-6+0+9-1-8+2-10+0-2-0+0-4+6-10-5-9+5+10+5-7-9+2+3+1+7+5+2-5-6-7-6-4-2-3+3+4+4+3+8-8+3+7+2-1-9-0-3-4-4-1+6+0-5-3-10-5+10-7-9-6+0+1-3-4+0+2-10+7+6+8+3+10+4+9+2-1+9-5-3+3-0+9-7-6+8-7+9-8-10+7+0-5-5-7+5+5-4+5+7-5-1+2-4+3+8+4+5+7+1-7+8-2-0+10-9-0+1+4+1-10-4-0+10-8-0-2-5+8-9-8+0-9+4-0+10+1-9+6-5-3+5+6+6-0+2+0-2+6+4-0-9-9+10-6-2+0-8-8-9+3+0-9-1+6-1+10-3-4-3+10-9+3+5+6-5-9+9-7-5+0+8-2+6-0+10+9+9-4+1-9+7+1+0-0+2-3-7-7-3-7-2-0-4+9-9-3-1+10+0-0+10-10+2-1+0-3+6+2+2+6+1+7+10-0-10+1+2+8+2+9+6-3-4-1+3+8+7+8+1-0+1-5-0+3+9+2-1+10+4+4+5+3+7+1-6-6+4-6+0-7+3-10+3-0-6-6+5+4+0+8-8+8-1-3-10-1-3-7+4+9-10-6-0-6-5-2+4+2+9-10-5+1+3+4+7-8-5+5-7-3+6-0+9+7-0+0-1-0+5-9-3+5+0-6+4-6-9+1-5+0-2-1-7-1-1+3+9+2-9-8-8-0-0-3+9-9-4+3+1+4+5-4-7-3+6+7+1+1+0-1+5+7-6+0-3-0+7+6+0-1-7+0-6-1-7+7+2+10-10-9+1-5+8+8+3-0+2+10-3-5-10-4-9+9+0-0-0-10+4-1-10+6-7+6+6+10-5+2+9-2-3-9+7-3-8+8-6-5+2+9-1-9+10-0-1+0+8-5-7+10-8-4-2-5+7-7-2+10-5-9+0-7+1-7-0+5+9-2-0-7+6-7-0+2-0+9-5+10+3-2+5+1+3-4-7+0+8-3-9-4-0+8-3+8-9-10+4+3-2-8+5+7-2+3+5+3-9+7+6-9+6+2+2+1+5-3-3+4-2-0-4+3-0+2-8+9-10-0+9-7-1+6-3+8+4-3+10+5+1+6+1-4-9+10+10-1-10+8+2+3+7-4+0+5+7-9+5+10-1-5+2+5-1+5-3+2+0+3-3-2+8+10+6+1-8+9-7+1-2-9-10+5+3-5+7-9-2-1+7+7-9-2+8+7+7+9+10+4-8-0-1-0+9+4+5-10+0+8+6+0+8-9+8-3+6+2-1+4+3+7+1-7-9+4-6-1-3-6+2-1-1-2+1+0-9-4+9+2+4+8-0-0+10-8+3-10+7+9+2+1-5+5+0-2+6-6-5-5+3+2+2+6+0-10-0-3+4-5+0+8+7-1+2-4-4-0-8+8-9-6+1-7-0-10+6+4+10+5-1+6+2-0+10-4+2-0-2-9+1+5+4-0-4+9+6-6-9+9+3-0+8+0+7-7-4-2-10-10-9+2+5-8+2-0+10+6+5-5+9+2-1+9+4+2+4+9+2-7-9+9+8-7+3-4+4+4-9-1-4-4-8+9-9-6+4+0+9+10+4-7-3+6+4-7+5-6-3-4+4+7-3-7-1+3+9+6-7-7+5-1+2+3-0+10-1+10-3+8+0-0+5+7+0-3+3-2-1-10+6+3+10-7+5+4-7+6-5-8-1-7+6+5+2+1-2-8+5+4-0-1-8+3-0+3-10-6-8+10+8+3+5-9+0-10+9+7-3+7+6+6-3-6-4-6+10+7+8+9+7+2-9+8+8-6+9+3-2-2+1+9-8+6+10-5+8+3-7+0-2+3-9-0+10-3-0-5+8+4+7+3+10-9-9+4-2+6-2+7-7+4-8-7-10-9-3+8-10+9+5+5+1+7+4-6+2-7-0-6+3-1-1-7+5-9+3-5+2+2-4-3-10-7-0-9+7-5+9-3+2+9-0-9-2+0-8-9-7+2-4-4-6+6-6+0+10+5-10-6+8+5-9+1+2+7+8-4-6+7+9-0-1-4+6-3+10-9+10-5-0-7-6-1-6+1-5-1-3-5+4+5-8+4+5-2+5-9+10-0+6+9+8-9+0-2+0-10+2-4-4+4-3-10-8+7+0-4-5-1+2-6+4-4-1-10-1+2-0-6+0+2+10-8-9+0+7-6+6+5+3+4-6-4-5-0-2+10-2-3-10+4-0-6-4+3-6+2+3+5+2-9-10+7-9-4-9-10-0+2+3+0-1+9-0-10+10-1-5+0-0-2+5-7-7+6+8+6+3+7+3+4+6+2-2+0+2+6-0+0+7-3+2-10-8+2+2-10-7+9-9-1+6+2+4+10+4+7+4+10-5-8-9-4+2+7+5+8+8-7-10+8+8-2+7+4-7+1+4-4+5+7+4-6-9+2-7+7+9-5-5-9-2-9-8+2+1-9-5+1-0+8-5+8-8-9-0-8-9-6-5+1-5-3-8+4-10-5+2+9-1+5+0+2-4+0+7+5-2-8-9+1+7-9-10+9+10-7+6-2+1+7-0-0+3+6+6+1+4+7-4+7+9-4-10-4+2+3-4+1+1-3-3+10+10+0+10-3+5-2+9-3+0+9-7-3+2-8-6-6+4+4-3+6+7+0-10+9+10-6+0-7+8-5-2-1-1-9-9+2+0-1+4+0-10+3+8+1+8-1-1+7+3+8+7-0-10-10+7+9+10+10-3+3-7-1+5-0-10-4-6-1-5-6+6-5+10-9+10+10-4-4-0-5-2-0+2-5+5-5-5+7-9+10-0+2+9-10-8+2-7+8+9+7-2-2-8+9+2-2-0+1+5+5+10+4-10-6+10-3-9+1-6+6+9+4+9-2-3+3+5-10-7+1-10-9-7+3+3-2-7-5-2-10-0+10+3-0-4-8-10+9-2+0-9+9-3+2+6+1-5-10-8+10+7+2-6+9+2+1-1-5+3+3-9+4+8+10-3-7-5-10-3+5+7+6-3+9+8-3+8+6+1-4+7+10+7+8+2-1-4+10-8+3+9+4+6+0-4+9+6+8-9-2-8-8+7-4+1-10-2+2-3+10-0-3+9+6-10+2-8+10+3+9-2+5-0-5-8+6+2-7+9+6-9-4-8+1-9-2-2-5-3-0+8+9-2+6+3+6+2-7+6-1+0-2+4+1-8-2+0+6+5-10+0+3-7+1-9+4-0-10-6+6+4-6+9-8-1-10-10-3-10-3+6-0+7-5+5+4+0-10+3+8-4+4-1-10-1+5+10+2-5+7+0-7+5-1+7+8-4-2-10-4+7+3-3-4+3+5-6+4+3-0+0+10-9+2-3-3-0+8+5-6+5-4-6-0-4+8-8-3+10-6-4+0-2-4+6-1+10+1-9+6+1-9+5-4+7+4+5+7-3+7+0-5-3-4-2+7+3-9-2+0+9+1+10-2+8+6-3+9+8-6-8-1+0+8+3+3+5+1+8+9-4-8-6+3+0+8-1-8-1+8-0+7+1+2-2-4+8-7+10+4+2+1+1+9-1-4+3+3+7+8-0-4+1-6-8+9-3+2+10-1-2-0-3+8+0+1+6-7-9-6-4+7-3+3+4-5+10+5+7-10-8+0-8-7-7-2-8+1+3+10-0+2-5-3-8-5-9-2+10-9+5-4-3+5+8-1-8-5+6+6+10-1-2-1+3+1-3+2+10-2+5-0-5-7-10-4-6-6+3-5+5-5+4+3+8-9+4-9+0+1+9-3+6+8+4+8+2+1-9+0-3-8-6+2+8-7+5+9-5+3-6-1-10-8-4+4+1-2+5-9-4-5+3+10-7-3-9+5+10-1+9-2-2+0+9+2-4-3-9-9-6+3-10+8-2+5-0-4+4-1-5-6-4+10+8+2-3+5+9-6-9-9-9-9+8+8-8+6+10+0-2+2+3-9-5+5+6+1+5+4+4+6-9+1-6+0+7-10-4+7+9+5+9-0-8-8+10-5+3+10-4-2+0+2+3-6+6-8+9+9-0+5-1-8-3-8-1+8-3-7+10+6+3-4-9+6+5+5-1-6+10-10-7+2-6+0-10-4-3+3-1+1+5+9-1+3+4-1-0+0+3+0-4-2+9+3+0-3+4-2-7+2-1+4-0-3-8-2+9-8-2+9-0+4+9+2-5-3+4-5-10-3+0+0+10+4+10-9-3+0+4-6+3-10+4+0-2+3+4+10+8+6+8-1-5+3+8+7-6-4+5+2-5-5+9-6-10+0-1-4-9-0+2+0-8-0+1+4+1+5-8+5-10+5-7+5+1+10-8-2-7+4+6+0-2+0+8+1+2+7-8-8+3-8-8+10-0-9-4-0-3+6-10-10+4-6-1+0+2-1+3+0+3-1+8-2+1-2+8-3+0-2-0-7-5-0+4+9-6+4+7-6+10+3+10-7+4+0-8+7-10+4-9-9-9+6-8-0-8+6-1+2-9+9+10-0+1-2+10-8-5-4+1+10+9-5+7-0-5+0+8+3-10+8+0-6-0+0+8-0-4+10-3-6+0-8-5+5-6+8-7+3+10-9-7-6+10+0-10-8-2-1-10-7-10+7-8-3+4+1+3+0+4-2-6+10-5+6+8-3-6-2+0+9+4+9-4-1+6-4-7-1-8-6-2-7+7-10+4+6+3+2-0+4-1+0-1+1-2+8-2-8-1-7+8-3+5-2-5+7+6+8+4+10+2-9-9-9-8+0-0+6+1-4-8-9-4-7+1+0+10-1+1+8-7+3+7-6+4-1-4+0+9-4+1+6+8+0-1+3+5-9+6-9-5-0+9-1+2+2+10+3-3+10-6+9+10+5+8+5-3+9-0+10-6+9+5+6-6-0-9-3-10-9-7-3+0+4-7-3+4+10+4-4+0+5+2+9-9-9+3-5+1-3-3+8-3+3-7+1-2-2-8+5-10-2-1-5-0+9-4-0-8-0-0+3-3-0-2-6+9-1+8+3-9+3+0+7-2-8+10+1-10-4-7-3-4+1+3+4+4-2-10-4+4+6-5+4-4+8+3+6+3-7+6+5-7+10-1+0+10+0-4-6-0-1+10+4-0+6-4+3+1+3+2-5+3-0+1+3-5-7-2+10+0+0+6+7+10-8-8+3-9-1+8+0+9-5+3+5-9+10+5+7-8+3-4-0-2+8+4-9-10-10-3-0+4+7+6*7+1+9+3-9-4-4-2-7-5+7+7-7-9-9-2+1-8+7+1-7+8+9-0-3-2-4-6+9+4+9+5+5-4-1-7-1-2+3-0+2+1+3+9-9+2-0+3-8+1+8-8-8-9-7-4+4+10+2-6+7-1+7+9+7+6+10-10+9-9-2+10+5+2+9+5-2-0-8+5-10+9-0+0-3+7-0-6-9+5-3-8+5-4-7+5-8-1+4+10+10-7+0+0+6+5+3+3-2-3+1-2+1+8-8+9+10-5+6-5+1-4-5-6-2+10-4+4+4-4+10+4-0+7+5+5+2-3+7+3+4+6-6-3-4+10-2+3-9+5-1+2+3+5-4+6-4-10+10-4-1+10-3+5+5+0+5-1-7+9-5+3+0+6-10+10-3-9-10+7+10-10-8-2-6-7-0+6-5-1+3+8+10+5+5+4-10+6-6+2+10-1-9+3+6+0-9-5-1-1-9-10+4+4-5-2-4+8-10-7+10+0-3+5-8+3+1+0+1+8-6-5+5+5+2-3+0-9+4+10-3-4+7-4+8-1+5+0-5-5-6-8+7+7+1-2+1+5-5-2+8-5+4+5+7+2+8-1-8+6+1+10+9-4-6-3-6-7-4-9-8-4-7-1-2+5-9+10-5-8-6-1-5+7-6+1+3+2-3+2+4-9-3-4-1+4+0-6-10+5-5+7+7+7-3+1+3-4-4+4-4+3+4-0+4+7+5-6+4+9-5-2+9-3+8+10+9-6-3-1+3-0+5-2+2-8-8+8-3+2+8-9-1-6+2-6+10+6+4-8-9-5+7-0-5+6-6-4+6+0-7-7+0+5+5-0+9-8-5-1-2-8-1-9-7-10-0-10+4-5-8+9+10+2-7+3-1-9+6-6-9-2+4+9+10+7+10-4-1+1+4+4+0-0+3+10+8+8-4-6-7+9+5+9+1+9-8-10+8-2-1+3-6-7-10+8-1+4-2+3+8-10+0+10+8-8-8+0-4+4-9+3+10+8+3+6-3+7-10+1-3-8+2-9+0+2-10-2+7+0-3+10+9+8+10+7-8-5-1+0-10+8+9-10+10+6+9-4+1-2-9-3+8-4+4-9+7+1-7+0-4+9+10+3-9+2-7-1-6+7-3+0-8-2+5-5-1+2+4+6-5+8-0+3+0-3+7+5-10-10+8+8-3+4+1+8+9+4-0-6+5-3-3+1-3-10+7+5-2+0+5+4+10+9+9+9-5+2-5-7+1-0-6-2-0-10+9-0+7-2+5+3-9-8-3+9-8-8+10-10+3-8-3+4-6-6-3-2+7-0+10-9-5+9+10-4+5-10-1+8-10-10+3+1+10+7+7-9+5-8+10-8+1+0+7-3+0+5+1+8+3+8-3-10+3-1+8+5-3-9-6-3+5+7-3-0+5+5-4-5-3+7+0+2+0+8+2+10+6-3-1+5-8-6+9-0+3+6+8+9-3-1+10-8-0+3-6+9+6-10-4+9+6+3+8+8+4+3+10-5-10-10+0-9+8+3-4+2+5-10-9-4-8-10-6+10+6+6+5-2-7+2+9+5-2+10-9-0+9+7+3+1-9+5-3+2+1+9-0+6+10-4-0+6+3+0-10-5+9-5-8+4-8+3+5+1+10+8+8+9-1+0-10+10-2-0-9-9+5-2-1-9-8+3-10-1-3-1-1+6-0+8-9-6-10-4+1+0+1-2-10+6+5+0-2+8+0-2+7+0+9+4-8+9+8+2+2-7-0-3-3-10+6-9+3-6+9-10+8-7+4-0-4+5-7-8+7-5+6+10+3+6+3+9+0-1-1-9+0+10+0-4-3+9-2+10+10+6+10+5+4-0+9+10-7+3-6-3-4+5+0+9-6-4+0+0-10-10-10-8-9-1+1+10-0-7-7-1-4+2+2+0-10-0+6+2+7-7-0+1+7+9-0-6+2-6-6-4-2+8-3-0+7+10-2-1-8-0-1+2+5-10-2-7+0-3-8+4-9-4+5+0-2-7-7+10+6+7-1+4+10+1+5-5-6+1-6-4+3-10-1-8+4+4+5+4+1-7+9-7+9+10-8+2+6+0-9+3+1-1-7-4-10-8-6-1+10-9-3-2+10+8+8+2-6-5+8+2+1+8-2-3+8-8-4+6-2+6-7+9+1-7+5+1+5-8-0-10-5-10-8+4-8-0-3+3-5-3-4+1-3-2-8-4+9+5-5-3-5-10-1-0-5+1-2+8+6-2+8+6+7-1-1-0+2-7+4+6+5+6-4-5+9+4+1-0-3+1+0-8-5-4+2+0+2-9-2-0-6-8+9+8-6-1-8+2-5+6-4-0+5-2+6-5+7+7-3-6+6-10-4-4-3-4-4-6+3+4-5-4-7+4+0+4-9+6+9-8+5+1-0+10+8-2-6+2-7+6-10-7-3-2+10+4+5-3+3-0-10-4+1-9-5-8-6+5+5+9-4-6+10-5-0-10+10+8+1+3+7-6-5+0+6-6+7+9-5-9+4-8-2+2+0-7+0+9+5+3+6-7+4-8-1+3+3+5+4-8+0+5+2-5+0-1+1-0-3-3+0-3-1-4-3+10-10-2-10+1-7-0+6-6+7+3-0+4-1-0-8-10-2-9+0-0-3-7-5+5-7-8+0-6+8-9+0-10+10-5+2+2-0+9-2-3-7-8+4-1+3-0-2-4+3-7-7-4-4-10+4+0-7+3-0+1-7-4-1-9-3+7+5+10+7+10+0-7+4-3+6-10+6+4-8+8-2-4+2-5+0+5+7-9-7-2-1+9+0+1-9-1-8-10+8+6-7+9+6-0+7+3-1-7+9+6-8+9-3+1+9+3-1-4-1-5+9-4-7+8-8-3-10+2-8+8-3-9-2-3-3+2-0+1-6+6+0+1+3-7-5+2-7-2+7-2-9+7-3+0-5+9+3-3+6+4-1+6+2-3-5+9-10-7-8+2+0+0-2+7-2+6-10+8+3-10-3+6-1-1-6+9+2+9-3+10-1+4+3+3-9-7+7-3+7-6+3+3-4-2+4+1+2-4-3-2-5+5-4-9-6-2+1+6-6+9-2+6-2+3+9+0+3+10+10+1+9-5+4-2-4-5-10-1-7-4+8+1-3-6-6-10+4-1-7-5+3-0-1-2+10+3-7-9-7-1+6+6-7+7+6+2+3-8-0-8+3+5+1-4+7+9-6-0+9-7-0-5+4+7+5+9+4+10-5-4-2-8+6+5-8+8-3+9+9-1+2-1-2+3+8+1-9-10+3-5-9+6-9+5+0+6+0-8-7-3+3-9+9+9+5+3+3-5-4-9+5+9+2-6-4-1-1-3-4+8+2+8-2+2-0+5+9-6+9+4-2+9-4+2-8+4+8+9-10-7+10+0-1+10+9+8-8-1+7-9-5-6-7-10+10-1+8-0+3-9-6+10-8+4-5-9-2+8+1-5+6-1+8+9+5+10-9+4+6-10+2+3+0+3+0-6-0-7+5+5-1+10+4-1-0-8-5+4-0-8+10+0+9-5+3-4-2+4-10+7+3+4-10-3+4-0-7-4+2+4+4+1-9+1-1+2+7+10+7-4+2+3-8-2-5-6-6-7+2+10-10+1-0+6+2-4+0+8+0-8+9-7+5-3-10+7+10-0+7-2-6-10-6+4+6-10-5-4-6+7+7-0-6-7-7-7+3+6-9+1+5-1-0-2+0-5-4+6-3+6+3-2-4+6-6+2+9-0+4+1+10-3+7+2+8-0-9-2-0+1+5+3-2+5+3-7+10+5-1+4+7+0+6+6+1+3+4-7-3-10+8+7-10-0+10+9+4-6-9-6-2+2+7-0+10-5+3-7+9+1-7-5-8-1+7+6+4-3-8+7-10+5+6-10-3-9-4+5+7-6-2+4-9-8+1-2-3+3-1-2+7+9-1-10+0-2-7+0+3-9-0-1+4+0+5+5+10+0+8-9+7+4-4+2-8+2+1-3-3+6+7-9-6-7+4-8-8-0-0-5-5-3-7+4+4-3+8-10+7-10-2+3-10-2+2+5-10-7+8-6+4-3-1-2-3+9-8-8+2+8-0+0-8-1-5-2-6-10+10-8-7-4-1-0+9-10-8-6+4-3-4-9+10+0+5-3+2+2+6-2+5+0+3+8-6-7+9+7-8+7-8-6+5-3-9+4+3+2-3+5-1+0-7-10-4-10-3-7-0-10+5-5-9-5+6+2+5+3+10-0+5-4-9+9-9-4-0-9-2-4+2-1+5+5+5+3+5+5+5+6+9-8-7+7-9+4+4+3+0-1+1-8+3+10-6-5-0-8-8+8-0+1+2-5+4-2+2+10-8-6-3-3+5+6+10+8+0+7-9+5-3+1-6-6+10+9-9+6-6+2-4+4+3-1-2+1-4-5+6-3-1+7-0-2+5-6+5+4-4-1+1-3-6-5+7-2-9+10+0-1-9-6-5-7-5+2+3-1+9+6+1-2+1-3-4+2-7+9+0+8-0+9+3-9+7-0+5+6+5-3+6+10-3+2-1-0-1-10+0-8+0-1+6+10+3-9-4+4-9-10-0-0+1-2+2+4+3+2+4+7-8-9+7-5+9+2+6+0-0+5+10+0+1-0+4+7+2-1-1+1+8+9-6-7+4-0-9-10-1+5-10-1-10+6+1-7-6+2+5+3+5+9+9+1-9+10-2-3+5-7+10+3+1-9-6+7-5+7+7-2-2+8+4+6-10-0+1-2+1-6-1-8-10-3+5-3-3+5+5+6+1-4-5+5+2-6-10+7+3-7+10+1-4-10+8-0-3-0+4+8+1+10-6+5-3+7-3+6+2+8-7-6+4+5-7-9+10-2-4-4-1+9+6-3+6+7-3-6-4+9-2-8+3+4-3-0-1-7+8-6+6+3+8+8-2+10-5-8+2+8-10-10+2-4+10-6-4+0+10-6+6+1-10-0-10+4+4-5-0+2-1-9+0+9-6+6-3+7-0+5-7+0-4+1-4+1-8+1+9-4+8-7-4+5+2+5-1-7+0+10-5+6+10-0+6-7-3-4-8+3+6+4-1-8+3+10+4-6-9+2-6+10-9+5-7+6+7+10-0+7-4+7-4-7-7-8-0-1+1+9+2-1-4+9+0-0+10+10+6-5-8+7+6+10+7-3+5-10-3-2-1+7-2+1-0-3-5-9-6-0-5-7-0-6-1-1+6+4-6+2-5+9+4+9+4-10-7-6+1+4-10-4+1+9+6-1-3-1+1-2-9-0-2-1-8-6+10-7-8-9+0+3-7+9-4+1+1-1+7-8-5-0-8-7-5+6+2-3-6+10+2+0-7-9+10-0-3+4-9-2+9-5-1+8-7+4+7+0-5-3+4-6+8+2-9+7+6-9+7+8+8+5+0+9-7-4-7+9-0+8-0+5+9+10-0+6-9-7+5+5+1+5-2-1+5+9-10-3-3-5-0+10+0-10-0+7+4+1+8-2+1-2-0+8+9-5+6+3-4+4+7+10+3+6-4+9-7-1+6-10-2-1-2-3+9-9-6-10-4-9-10-9+2+4-5-2-5+0-4+5-10-7+2-9+9+10+7-1-4+6-4+10-8+7-6-9+0-5+10-0+5+10+7+10+3+4-7+6+1+4+6-5-8-4+0-8-0+2+10-10-0-1-1+1-10+3+7+2+1+5+2-1+10+7-1+6-0-10-9+0+2-6-2+1-6-6+5+4-0-6+9-10-10-6-3-9-4+10-0+7-8-9-10-4+0+6-5+0+2+7-9-8-0-0+5+1+1-4+9+10-8-10-4+0+6+2+4+5-4-5+5+3+3+0-0-6-9-0-2+3-0-4+1+10-10-2+5+1-5+0+4+9+9+0+1-10-7+0+4+9-6+9+8-2+9-9+4-8+7+10-3-0-1-9+8-9-2+6-3-0-4+4+0-10+0-7-5+3-6-3-3+8-7-7+2+2-3-1-4+7+7-10+1+10+5-3+7+1-6-4-10-9-0+0+4+6-10-8+5-3-4+8+10-3+2+2-6+9+6-5-4+9-0+8-7-3+0+2-10-8+4-4+4+3-5+6-5-0-10-2+4-7+6-2+10-8+2-9-8+2-7+1+8-2+7+7-7+6-5-0-3+9-9-6+8-4+2+6+4-5+10-0-5+2-9-5-7-1-9+5-10+3-9+7+0+1-4+5+4+0+8+3+0-2-9+4+0-9-3-4+8-6+5+1-8+9+9+7+10+9-4-4+1+7-8+5+7+8+7+2-4-9-3-8+9-3-6-4+1+0+10+3-4-10-6-1+2-1+5+2+1+4+0+9-3+8-10+4+0-3+0+1-5+9+3-0+1-8-1+1-8-3+5+5+9+2-7+5+5-8-7-5+3+4+6-9+2-9+5+3+9-6+0+4+4-3-4+6-8+7-9-8-5+4+8+5-0-6-1-10-2-9-6-10-10-2+7-0-2-2-10+9-5-1+0+4+4-4+4+9-2-3-2-8-2+7+3+5+8+5+4-1-1+8-9+5+5+6-1+6+0-9-0-1-10+2+0-5+8+4-0-7+0+2-3+7+8-4+0+5-10+3-7-6-6+2-7-4-7-10+1+8-9+10+10-6-1+9-9-10-9+7+4-6+5-4+7+6+7+10+7+5-10-7+2-5+0+2+10+8+2-4-2-2-2-3-8-5-1-6-0+4-2-5+10+5-7+6+5-0+10-1-5+0-10-6-9-3-7-4+3+4-4+8+0-4-9-6-9-3-9-3-5-3-3-8-4+10-1+10+7-3-1+3-6+7-9-5-9+3-7-1-5+3+10-6-2+0-5-5-9+2-1-4-3+2+3+4-3+9+4-10+9+5+8-8-10-4-1+1-1+3-5+3-7-1-5+9+9-0+9-5+5+3-0-4+2+1+3+7-5+4-9+0+2-6-2-5-3+10+10+4+10-7-4-7+1+2+5+8-7+7-7+5-8-7+4+1-4+5+9-3-5-7-0-9-10-4+5+1-6-5-8-10+1-9-3-2-6+10+3-3+1+5+7+5+7-8-3-2-10+5+10+1-10-8+4-5+9+3-2+0+9+2-10+1-5-6+10-8+3+0+7-8+1+3-4+0-9-2+10+5+4+1-9+0-0+6+7+7+10+8+6-9-0-1-1-4+2-1+1+0-3+1+1+7-1-2-4-0-4-5-4+7-3+10+3+1+1-5-7+6-7-0-10+9-5-5+2-9+4+3+6-3+10-3+4+10-8+3-6-9-10+6-0-7+6+3+4+1-3+8+3+4+4+9-0+5+2-8+0-0+6+8-2+5+1+9-7+4-5-0-5+1+5-10+0-0-3+3+10+2-2+1-7+8+1+9+0-6-10+10+9+10+6-0-4+7-8+6-1+7+2+5-6+0-0-8+7-3-7-10+0-7-10+1+2-4-5-4+1-4-4+3-10+0+7+2+2+9-6-1-3-6+0-0+6-5-2+4-10-1+8-3+4+10+1+7+0-10-7-1+10-1-10+1-10+6-5+9+10+9+0+8-0-2-10-6-10-6-8+9-5-5-9+8-1-3+6+8-6-0+2+2-3+10-0+1+8+4+8-7+6-3-3+9-5-8+7+10+10-9-4+3-8-3-10+3-7-8-5+5+5-6-6+2+0+10-1-6-8+1-7-8+6+1-7-7-0+2+8-6-2+1-9+10-8-4-3+5-2-6+7-5-0+2-4+0-2-1-4-6-3-1+0+3+0+4-7+8-6-9-10+5+2-8-5+5-8-8-8-3+6+2-3-7-0+9+10+1+5-3-1-10+6-6-0+10+1+2-6-4-7+3+4+7+0-9+5+1+6+2+8+3-7+7-2-0+2+4+3+2+3+1-10-7+10+6+2+9-6+10-1-1-1+5+3-6-0-7-6-0-1+8-5+2-8+10-3+4-5+7-2+2+8-6+9+2-9-4+4+7-10-7+7+6+1-2-4-9-4-6+10-10-6-7-1-9+4-6+5-0+6+0+9-4-5-6-2-2+2+6+4+0+2+2-10-5-1+6-0+0+9+2+6-0+5-4-6+8+1-2-7-0+0+4-10-1-9-5-5+10-9-10-4+1+4+8+0+2-5-6-3+3-9+6-0-4+3-6-10+10+5-3-0-0-9+5+9-3+8+10-8-4-3-7+10+8+8-10-6+4+4-8-3-4-3+2-0+3+3+4-9+3-6+7-10-6+0+7-4+2-7+5+2-9-9-4+3-5+10+2+3-2+5+7-6-1+0+9-4-3-4+10+7-5-0+6-1-2-7+7-3+0-0+8-5-8+3+3-1-4-7-10+3+0+6+6-5+8+6-6-5+8-4-4+5+0-1+4-9+0-10+9-8+10-10+4-4+8-3-6-6-1-6+9-10-3-7+10+5-2-1+9+10+2+0+7-5-7+5-2-6-2+8+0+5-0-7-9-4-5-7+8-2+2+8-10-1-1-8+3-7-8-8-2+1-7+9+3+7-7+6-1+5-8+0-4-6-4+9-7+1+5-1-9-5-5-6+7-2+3-0-0-9+4+3+8-0-7+10-0-2+0-5+2-5-0-1-2+8+6-6-3-0+1+10+2+6-1+6+5+8-1+3-7+7+1+7+5-2-0-4+8+2-3-3-1-6-3-2-5+10-9+8+3-10-7-10-7-2-0-2-2+3-1-2+1-8+0-5-7+2+10-0+0-7+5+9+4+4+5-6+9-1+5-9-1+7+3-5-1-4+9-10+0-1-5-9+9-10+8-9+5-1+10+7+9+10+1-0-10-1+10-2+10+7-3+2+0-4-4+4-1-10-8+3+2+3+7-6+8-6+1-2+4+6-10-8-0+3+9+5-6+9+10+3-4-1-8+3-4-10+2-10-8-4+10+9+6-6+6-2+10-4+6-1+1+2+0-6-3-9+8+2+4-2-8-1+7+6-9-5+2-10+2+9-6-5+3-0+6+4-2-0-9+10+3-10-1-5+1+2-1-7-3-5+5-7-10+10+9-9-4+10+1+0-2-3+9-7-7+4+0-4+10+1-7+4-10-2-8+5-10-6+9-4+6-8-8+2+9+5-3+9-5-0-5+9+7+7-9+9+6+6-5+6-3-5+6+5-10-4+8+10-7+0+10+1-2+6-10+8+10-2-5+7-2-7-9-6-7+5-10-9+2-8-8+1+1+5-5-2+8-8+8-9+4+9+6+9+1-4+7+3-4+0+4+10-4-10-7-9+6+8+2+4-1+7-8+3-2-1+0+3+3-4+2-7+1+9+2+0+7+9+1+3-7-1+5-2-8-2+10-5+6+10+0-3+5+1+2-0-1-5-1-9-3-10-0-2+6+3-9+4-5-3+4+10-4+2-1+3-9+5-2+8+6+3-9-8+6-7+4+8-10-5+10+1-8-2+0+3+8-4-1+1-10+3-1-7-10+6-6-0+1-9-9-6-1+4-7-5+1+9+5+9+7-2-10-1+8-8-9+0+9-1-2+4+9-7+10-6+7-1+2-6-5-6+1-0-3+1+9+1+10-3-9+7-7+7+10-7+0+2+9+10-5-1-9+3-5-10-10+2-4-6-0+7-5+0+9-4-10+0-4+8+1+10-0-7-6+9+3+4+4-5-0-3+2+6-6+2+5-2+2+8-6-1-8+2-3+6+1+9-7+10-10-1-2-8+6-7+2+8-8+2+5+5+2+6-4+3+6+5-3-10+5-7+2-0-9+2+7+8+4-0-2-10-7-2+3-10-2-6+9-4-3+9+5+10+2-10+1-2+5+7+9-7+8+5+8+2+8+1-5+4+6-9-9-7-2-5+0+2-2+10-7+1-2-10+6-8+10-7+3-2+7+6-3-8+6-2-3+9+10+1-10+3-2+9+3+7+2+4-1-4-8+1-3+8+10-2+3-1-9-3-0+5-4-9+0+5-1+7+8+9+7+0-8+2+5-9+6+9+2-1-2-0+5+0+0-4+9-2+7+7-7-5+3-4-4+3+2+6-7-7-8+6-8+4-2-3-7-3-0+6+0-0-0-5+7-2+10-2+10-3+9+5+3+9+2+1-7-9+5+9+0+2-0-9-10+2-9-2-0-3+4-3+7-5+6+7+9-10-3-0-5+1-5+2+9+3-3-0-8+10-5+4+4-3+10+1-2+10+1-9-2-10-10-2-1+7+6+10-0-3+9+7+5+2+7+7+8-4+7+1-1-2-7+1-9+7-8+4-1-1+1-10+8-4+9+2-8+7+9-0+10+6-1-9-6-6-8-8-3+5+4-10-8-8+7-6-3+1-3+0+2+4-1-2-0-2-7-10-7-10-3-10+0+8-5+7-3+1+10-10-8+4+0-9-6-8+5-3-10-0-0-9+5-8-8+5-9+8-1-6+0+5+7-9+0-8+1-7+3-6-7-5+7-4-5+0+3+8-2-5+9+1+9+0+0-9-2-6+10-7-10-9+9+2+8+7+9+2+10+0+5-5-9+5+3-5-9+9-9+5+1+5+10+4-10-1+2-6+0-4-4+1-1-7-10+9+6+7-7-6+3+10-6-4+4-2-3+2-1-6-5+0+1-6+10-5+3+10-8-7+0-1+8-10-1-3+1+1+2+4-9+7+10+3+10+7+0-6+3-8+3+7-10+3-8+7+3+9-1-4-3-4-0+9+10+3+0-2+5+4-7+6-5+0+2+8+6+5+3+10+7+4+3+7-4-0-7+10-3+10-0+7-9-6-7-3-8+7+9-6-0+5-1+5+6+9-0-0-9-6-4-0-9+10+0+8-2-4+2+6+3-6+9-5-2+0-9-9-3-1+3-8+7+1+9+10-9+2+1+9+1-7-4+8+0-8-0-3+0+6-1+8+8+0+6+2+10+6+10-4-10+9+0-8-3-8-10-7+0-5+5-8-7-9+4+2+7-0+6-7+1-8+9+1+6-10-4-0-0-1-6+3+3+7-3+10-1-3+5+0+3+0-3+3-8-1+5+10-10+7+1+5-8+1-8-10+7-0-4+7+7-9+3+8-4-7+0+7+8-3+2+9+2+6-0-10-2-2-7+8+7+0-0+3+0-1-10-4+4-2+4-3+7-10-10-3+9-6+1+6+3-0-9+3+4+7+7+5+10-6-3-7-1-2+9+4-1+0+2+5+0-9-10-10-1+3+1-8+4+0-5-7+4+0+3-10-0-6+0-9-9+0+7-1+3-0-9-8+10+9-0+9-7+3+3+10+3+6+4+8+0+7+4-7-8+1-5-0+4-8+6-0+5-3+0+8+3-4-4+0+6-2+6-0+10+6+5-0-8+9-0-2-3-6-0+6-6-8+3-0-2-5+7-2-5+9+5+10+9+10-9+7+9+7+8-1+1-5+0-3+7-1+2-3+0+1+4+1+2-2+9+0-10-4-1-1+7+6-9+1-7+2-5-2+10-1-8+0-9-10-6-1-3+5+1+4+8+5-10-4+5+9-5-5+5+4+8-5+10-7-9-3+1+10+3-0-1+5+4-1+10-10+4-1-6+3-5-4-5-9+6-3+5+4+10+10-1-10-2-5+3+9-5+7-4-5+2+5-7-6+3-3+5+6-10-2+0-0-3+9-8+1-4-5+10-1+5+3+3+9+3-3-10+7+1+6-7-3-6-5-8-1-9+4-7-8+6+5+10-8-6+10-9-0-0+8+3+4-5-7+3-10+6+3+10+10+6+8+9+0-5+5-7+10+9-8+9-7-2+6+6-10+2-2-5+9+2+9-1-5+9+10-3-8-10-10-0+4+0-8+7+4-2+7-6-2+2+10-0+6-8-6+9+9+7+9-8-2+2+5+7-7-3-5+1-5-4-6+8-6+8+8-1-0-5-3+5-5+2+7+8-7-10+6-3+6+0-4+8+6-6-7+9+2+2-8-9+8+5-2+5-5-4+1+6+1+2-1-9-0-4+6+3+9-9+8+0+7-10-0+1+2-6+0+1-7+1+6-9+8-7-3+9-3+0+2+6-1-6+10+5+5-2-4-6-1+7-4-7+2+1+9+2+10+8+5-7+2+4-10-4+10-9-7-9+10+7+4-6-8+2+1+6+3+2-5+4-1-2-4+3+8+5-0-4-0+3+6-1-4-10+4+8-8+10+10-10-2+2+2-10+5+9-2-6-9-4-3-9-7-8+8+4-8+6+3-3+8-5-9+4+10-5+2-7-1+0+5+3+4-2+8-6+0+6-0+1-6+9+1+1+6+4-10+9+6+7+8-10-9-2+1-3-6-4+4-8-4-5-7-9+2-9+0+2+3+8-8-10+4-2-4+8+0+2+2-7+8-9-0-9-5+6-9-8+4-9+4-2+9-7-10-9+0+0-7+4+0-3-9+2+2+2-7-5-3-8+0-0+3+3-10+4-7+3+1+0-1+9-9-1+4+0-9+0-1+9-9+3-8+6-2-9-4-7+3-0+8+5-3+10+6-7-9+2+8+0+6+0+10-6+8+6+2-2+5-4+5-10+10+1+1-2-9+2-10+9+10+6+6-3+1-0-10-3+9+6-3-6+7-2-8+2+10-7+7-10+10+10-5+10-7+5-5-2+5+4-5+8+1+8-4-8-6+4-3+8-2+8+8+1+3+9+5-5-10+5+5-6+8+6-9-8+10+8-7-4-1-8-1+1+10-7+5+0+2-0-6+3+3+0-0+8+10+1-6-2-5-5-2+8+2+8-8-7-8-7+10+8-3-1-2-8+3+0-7+4-6+6-9-8-8-5+8-4+10-7-5+6-9+6+5+8+5+0-2+6+4-4-0-3-1-4+8+8+3+7+7+2-0-0-4+9+3-6-7+6+0-6-6+7-8+8-1+3-5-1+3+0-0+4-0+9+8-5+8+7+9+6-8-4-8+1-0-5-4-6-3-1-8-2+4-5-5-8-10+6+7-1-5-1-3+4+6+0-10+8-10+1-9+3-7+4+8+6-2-3+4-8+4-3+2-4-7+0-4-2-0+3-9-6+6+5+2-5+1+7+4-3+6-9-1-3-0-9+8+1-3+10-6+7-2-6-0+10-2-1+2+1-1-1+6-4-0-3+1-0+5-1+1+5-2+10+9-5-2-2-6+1-2-0+4+3+10+4+2+8+5+1+0+5-10+1+6+2-2-0-8+5-5-9+10-8+7-7-4-2+0-6+0+7+5-7+9+0+9+10+7+8+8+5+0-8-8-1+1-4+2-4-8-10-1+2+3+4-1-5+3+0+8+2+7-3-9-6+2+8-0-7-3-10+7+8-3+5+7+8+2-0+7-4-4+1-6+8-7+8-7+8-9+10+9-1+9-5-4-0-1-7-8-4-0+10+9+3+4+9+7-3-4+0-1+1+6+9-2+2-7+2+0-3-7-2-1-8+7+10-0-1+7+4+4+1+8-2-0-1-2-7+7+4-8-1+6-5+5+1+3+10-5+7-1+7+5+4-3-5-2+9+1+10-1-6+1+6-4+6-4-5-10+3-6+1-5+2+6-3-0+4+1-1-9-4-3+5-5-2+8+2-7+0+0-7-6+7-2-3+4-6+2-9+8+2+0-10-0+2+5+10-3+4-1-1+3-7-5-0+3-4-4+1+10+4-5-6+4-10+7+8-2-7+8-3+4-3-8-6-1-0+5+1-1-9-6-10+1+7+9-6+2+8-2+5-7-9+2+3+6+5+8-7+1-10+1-4+3+1-3+7-1-3-3-2-9+9-0-7-7-6+4+2-8+4-5-2+8-1-9-10+4+1-10+9+0-7-1+10+10+9+4+6+9+7-8-1-4-6-6+3+2+7-5-7-0+1-9+10-7+6-5-4+5-7+10-5+7+10-9-4-2+5-9-7-7+5+2-10+5+5-7-3+7+7-3+9-1-3+9+2+2-5+5-4-5-3+4-9+2+5-1+8-9-8+10+4+4-1+6-2-2+9-8+0-4+4-10+1-5+7+4-0+5+10-3+8-0-1+5-3+1+6-6-1-4-4+5-9-3+4-3+1+1+2+3+3+9+1+0+10+1-4-9-0-5+8-2+5+9+0-3-8+3-4-2+2-2+0-5-5-7-5+7-5+1-7-9+1+8+8-8+5+4+6-1+0-0-9+6+10-5-5+0+10+5-7+4+2-7-10-1+3+2+7+1-10+1-3+8+6-1-0-1-5-7-8-7+9-3+8+9-1-3-1-5+8+8-4+8+6-4+10+7+1-4+3+6+1-4-5+5-0-6+5+10+10-10-5-9+7-1+4-5-1+0+10+8-9-0-8+5-0-3+6+1+3-9+4-3+1-2-1-1+1-1+10-1-2-3+8-10+8-7-8-4+6-3-4+7-10-4+7-3-9-1+6+9+0+8+7+9-10-2-0-1-5-0-0+0+1+3-7+1-4+10+6+2-2+10+10-5-10+6-0+2+4-9+3-6-3+0+8+10+3+9-8+8+1-8-3+1-6-4-9-7-6+4+8-7+4+3-1-10+2-9+2+10+0-8+1-6-6+6-10+0+10-6+4+6+6-6+9-2+8+5+9-2+9+3+1-1-8-8+2-2+1+7-6-8+2-1+3-4-2+0+10-0-3-8-0-9+2+5-1-9+9+4+4-7+5-1+5+6+3+9+2+3-10+3+5+3+9-7+3+7-8-9-9+9+2+9-10-5-10-3+6+4+10+5-8-6-5-10+5+9+2-8+3+4-9+10+5+1+10-5-2-5+5-3-3-0+0+8-1-9+5-8+4-3+10+2+5+0-1-3-9+8-9+1+4-6-3-0-9+8-9+0+1+5-1+10+8+8-3-8+2-8-1+10+3-7-3-4+9+4-9-10+4-0-8+8+2-3-0-5-7-6-9+8+2+9+7+5+7-8-2-7-9-1+8+10-6-5-7+7-10-2-4-8+5+0+4+5+8-9+4-2-8-7+2-6+0+1-5+0+7-3-3-10+7-4-4-0-2+9-2+5+7+2-10+9-0-6+10+8+5+0-6+1+5-2-2-7+3+7-4-6-2-5-9+8+6-7-5+2-10+9+5+8+8-1-0-8+4-7-9-1-4-4-10-9+9+6-2-6+4-6-9+3+9+0+6-3-2-2+8+7+2+3-0+0-10+9-10-8+7+6-4+5+8-2+1+0+1-3-10-5-6+6+8-6+7+5-2-9-0-9+3+10+10-0-6+4-7+4+4+6+4-2+2+7+4-10+0+2-8-3+2+5-7+8-2+3-1+3+1-6+5+3-2-9+4+10-6+7-6-4+7+8+2+10+10+0-0-1-3-8+8+0+3+3+0-6-8-0-4+5-3+0+2+1+7+7-7-0+5-6-5-4+3-9-6+9+5-4-9-9-6+1+10-5-1+10-4-9+6-1+0+3-7+8-4+0+5-6+3-8-3+6-6+4+9+2-1+9-6-0+0+9+0+8-8-3-2+8-6-2-8+3-4+9-10-4+10-7+3+5+4-4+0-8-10-7+6-2+3+4+4-8+2+2-6+10-10-3+7+7-8+5+3-7+2-7+9+8+0-0+6-6-2-5-5-8-4+3-5-7-1+2+5-3+6+9-8+5-7-7+1-0+3-3+9-2-10+1-2+4-3+5-2+9+9-7-6+6-5-7-1-0-7-0-2+3-0-6+8+4+9+9+4-3-6-10-6-3+4-3-8-6-4+0-3-4+5+1-5+9+6-3-1+1+3+10+3+10-4+9-3+6-9-2+9-2-3+5+7-4+3-2-5+7-10-4-8-2-3-5+1+5-2+8-7-7-9-7+5-1+2-8+2-7-3+4-1+1-1+2-2+2+3-10+4-8-7+10+6-7+3+6-6-1-2-8+2-10+2-9+1+8-4+0-7-4-3+3+9+0-10-6+0+6-7+1+1-2+8-5-10-7+5-10-9+5-4+8+2-5-6+3-10+2-6-6-1+2+3-5+10-10-8+4+3-7+7+0+9-3+10-3+1+1-3+10-9+4+1-2-4+3+2+8-4+0-1-5-5-3-6-4-9-5+5-0-4-1+6+4+0+1-7+2+3-1+5-10+1+0-3+0-2+8-3-5-2+7-2+2+9+1-5+1-10+8-7-4+9+3-0-7+4+10+5-4+2-4-8-0-5-8+10+9+2+6-8+9+3-8-4+0-10-10-10-5-1+9-1+9-5-8+4+6-10+4+5-7-4+6-3+5-3+9-8-6-6-0-4-7+8+7+7-3+2-10-10-8+9-9-10-9-2+1+5-6+6-4+6-7-9-9+8+8+4-4+0+0-7+5+8-8+3-6-4-8-1-5-2+10-4+8-4-5+2-7+5+5-0+4+8+8-3+6-1+3+7-3+9-7-3+0-8+8+7-2+5-3-7+4-10-9-0-6-9-2-3+1-0+1-2-5+3-1-5-9-10+0+8-2+5+8+2+5-10+1-3+8-0+10+7+6-1+5+1-3-0-0-9+1-1-4+10+10-5-2-10+6-10+9+8+9+10+3+7-2+10+6+7-9+5+6+3-2-4+0+3+2+9+0+5+0-5-1+8-5+10+8+9-10+3+9+3-3-9-5+3+5-8+0+1-5+4-6+7-7-6+2-8-9+2-1-0-2+5-0-1-6+0-8-5+6+7+1+3+6-10+7-9-3+1+2+10-8+4+4+9+8+10+1+8+0-6-8-8-0+10-2+8+7-0+6+6+0+5-0+1+4+1-8+4-10-10+6-7+0+4+5-9+7-7-1-8-7-8+5+10+3+8+3+10-7-4-6-9-5+0-2-5+6-6+1+3-1-4+0-10+4+5+5+1-7-2-1+2-7+4-2+7-9-7-8+5+9-8-6-10+10-4-3-5+2+0+5+8-1+6+1+5+10-10+2-7+3-5-8-9+2-5+6-10-4-4-0+0-10-6-6+0-10-5+1-1+1+7+6-9-8-3-6+0-1+8+4+2+4+4+6-7-5+5+3-2+1-7+9+7-6+10-2+8-6-3-0-9-7-8-6+1+5+8-3+0-8-4-10-10+2+4+5-5+2+9+6+2-3+4-7+10-2-6-5-10+7-2+9-9-8-4+6-7-2-8-6-3-3+9-9-9+9-9-6+3+10+6+2+10-7-7+9-3+0-7+2+10+0+0-4+5+4-4+6-8+8-9+5+6+0+2+5-7+2+8-6-10-2+4-5-5+0-4+4+7+8-10-4-10-4-1+1+7-4-7-8-6+2+7-5+2+3-5-2+3+10-9-0+7+5+5+5-3-2-6-7+2-1+3+10-3+4+1+10+5+10+6-10+7+0-2+9-10-7+4+1-2-9-10+5-0+3+6+4-0-5+6+2-3-7+1+7+2-10-0+6+5+0+6-5+7+10+1+7+5-6+7-9+8-5-10+7+10+10-9+3+1-9+6+1-6+2+1-2+10-9+1-7+3-10-0+3-4-5+6-10+0+4-7-10+8-6+8-10+9-6+7+9+8-9-8-4+9+0-1-4+8+4-7+6+3-7-7-8+4+9-4-2+2+2-0+10-2+2+0+7+5+6+1-1+3+6+0+3-5+1-5-1+9+7-9+8-8-4-3-10+9+7-8+10-5-5+4-4+2-4-8+8+1+1-3+8+4-1-9-10+6+10-9-2-4+8-3-4+9-5-7+3+2+9+7+7+1-5-7+4-1+1+1+6+0-7+4+3+3-4+2+9-9-9-10-8+10-10+4+7-0+2+10+3-8-0+7+3+0+10+8+0+6-8-3-6-10+1-1+1-3+4-5-7+5-5-7+2-10-7+8-1-10+8-1+4+0+4-10+9-0-5+6-6+3+2-0+1-3-2+0+6-8-4+9+10-10+7+2-3-5+4+0-3-10-4-4+8-3-4-4+1-2-6-6+3-10-10+9-4+8-10+9+5-8+6+9-4+9-4-3-1+8-10+0+3-4-0+7+0+1+5-0-4+9-2-1-5+5-4+6-9+4-1-3+7+4+5-9+4+10-7-0-2+3-8-4-4-4-5+1+8+1-5-5-4-2+8-8-5+3-3-9+10+4+9-10-1-8+0+0+6-2-6-10+5+1-10-10-6+2-8-10-0-8+9-8+4+4-8+2+10+2-1-2+0+5-0-7-3+9-5+6-9-5+9+9+3-9+5-1+1-4-2-4+9+0-0-10-9-10-9-7+3-4-0+1+7+4+0+3-2+7+3+9+3-7+0-4+9+9+1+9-3+2-6-7-10-4-2+7+0-10+10-3+6+3+7+8-8-10+9+8-1+6+8+2-2+1+10+8-6-7+1+7-10-0-0-2-5+4+0+8-9+9-1-10-3-0-4+3-7+7+3+2-9-9+7+2-6+10-9+4+6+10-5+3+10-5+5-5-6+1+10+0+7-2-7-0-10+7+5-5-8-10-3+4+1+0-6+7+10+0+2-8-1-1+10+6+10+9-5+0+8-3+1-5+1+6+9-0+2+10+5-0+9+6-3-2-5-10+0-10-2-9+3-0+9+0-3-1+1-0+4-6+9-6+1+5+0+6-6+8-6-10+3-3+3+4-7+8-7-2-3-9-6-7-4-2-7-3+8+5-1-5+0+1+2+10+1+8-2+4+1-1+0-3+9-8-5-2-0+9-2+10+6+5-5+9+2+0+3+7-2-0-6-8+7+10-2-7-0+2+10-0-1+3+0+7+8-4+8+5+2+6+10-9-2+0+7+4+6-0+0+0+8+4-6+10-8-10+7-8+3-1+0-4-6-6+9+9+9-0+9+0-1+8-10+9+0+2+10-5+6-1+10+1-5+4-10-4-0+6+4-0+9+2-8+0+1+5-1+10+8+1+2-2+2+6-10+7-2+2+6+1-4+6+2+4+7+5+1-2-0-1+2+2-9-1+0+0-5-9+6-6-0+6-4+7+2-6+0-9-1-1+0-7-6-4+2+7+4-3-5-1+1+1+9+1+4+4-5-0+10-7+2-6-7+3-8+3-10+5+6-5+9-8+6-2-4+2-1-6+2-3+10+7-1+4-1-2+5-7+2-6-3+4+10+1+7-8-3+3-3-10-10-7+0-7+6+9-8-2-1+0+0+6-6+10-9-1+1+3-3-10-2+6+8+4-9+6+1+8+0+3+8-10+4-0-3-5-6-2+8+3+3-5+2+9-4+10-0-5+10+9+4-2-3+4-10-5+4-7-7-1+3-5-4-7+4+0+2+1+2-4+2-3+1-3+10+7-1+0-6-6+10+10-1+8-5+1+0+6+6-1+9-3+0+6+0-3-9-0+10+4+9+8+9-5+0+2+6-4-2+3-0-4+2-5+8+0-2-3+4-1-1-3-10-2+4-1-10+8-7+2-5-4-8-5-8+8+3+0-4+1+10-8+0+6-3+6+5+10-1-1-10-5+9-5+10-10+8-7+4+10-1+9+4-0-6-5+1+10+9+0-4+0+2-4+1-4-6-6+7-6+0+6+9-8-6+8-8+6+4-4-9-4-6-1+2+1+10-8-7-6+9+4+0+2+4+0+2+6-7-3-4+3-7-7-8-10-5-0+5-6-8+10+7-5+0+9+7+1+10-10+10-7-8-10-7+0-8-6-3+6+9+3-2+10+5-9-6-5-8-3+8+2+8-2-6+0+4+8-7+0-0+2-10+5-10+5-6+1-1-0-8-9+4+5+1+8-10-7+10+2+8-7+1+2+3+8+1+9+7-3+4+9+3+5-5-1+9+2+1-6+10-1+2-4+8-5-8-3+5-9-5+3-10+5-10+7+1-6-7-2+2+5+9+7-5-5+5-5+3-4-1-4-2-3-8-8-6-5+5-0-6-4-2-0+8+3+0+6+2-4+7-7-2-8-8-0-2-6-7+2-8+2-2-2+8-5+5-7+2-9-2+1-6-6+10+3+9+1+7-0-8-7+8+2+5+6+5-3+3+6+7-2-5-10+5+1+0-2+5+7+9+4+9+7+4-1-2-3+9-7-5-3+3+4-1-3+10-4-9-2-1-5+2+10-1+8-5-10-7+10+3+10+6-8-3+3-4-3-1-10+8+0+9+8+6-7-1+9+7+1-9-8+9-3-8-1+10+10+10-2-4-10+2-9+0-0-8-4+9+1+5+6-2+8+10-5-7+4-0-8+2-1+8-8+2-5+8+2-0-10-7-4+10+0-4+9+6+0-6-7-3+0+1-10-10-4+2-10+2+10+9-7+2-3-0+7+0-9+0-7-1+1-10-6+8-1-6+5-9-1-1+6+2+8+10-1+1-4-4+2-2-6+3-3+0-4-0+1-2+6-5-9+9+6-7-9+8-4-7-1+9-9-3+6-6+8-3-3-6-6+4+6-2-8+6-2-8+6+6-0+8+9-2+8+0-2+7+9+1-7-6+7-5-0+4+3-3-10+10+5-0-0+4-6-2+5-0-0+10+2+6+3-0+4-4-9-3+6+1+7+4+9+5+2-1-3+1+3-10+0-6-4-0+2+6+10+5+5+4-6-5-10+0-5+0+1-4-2-1-0-2-2+3+0+5+6-10-10+2-10-4-8+10-2-1+10+0+4+8+6-8+1+8-5-10-6-6-5-6+3+8+4+8-5+5+1-2+5+1+9+0+6+1+7+3-1+8+4+10+4-3-4-4-10+7+3+6-6-5-4+3+8+3+5+4-1-0-8-3-6-6-5-8-2+3+9-6-5-0+7-6-5-10+5-0+1-5+0+6+3+3-8-3-7+9+2+5-0+10-1+1-5-1+9+1-3+8-6-9-5-2+9-9+7-1+8-8+4-9+2+4-9-10+1+7-7+5+1+10-0+3+8-6-6+1-1-1+10-2+3+2-9+4-2+5+8+8+9+10+7-7-2+1+8+4+4-3-3+0+8+8-7-2+6-0-2+0+7+2+7-4-4-4+7-5+5+8-6+1+0-3+2+4+0-3+10+8-1-0-8+6+5-3+9+2+5-4+5+4+2+7-0-5+9-4+5-4+9-8-4+2+7-5-1-0+4-1-10+5-4-9+9+10+5-0+2+2-1+7-8-3-0+10+5-8+6-0-9-9-5-8+10-5+2-5-4-0+1-4-3-7-0-5+5+5+8-4+10+7+10-8-6-8-9-10+5+6+1+9+3+2+5-7-2+3-1+2+10-10-5-0-7+9+5-9-5+1+3-9-8-10-7+10-2-5-7+0+10-8-2-0+5+2-1+5-0+0+4-0+0-7-5+4+5-1-7+6-9+0-8-4+9+0-8+4+3+10-8+9-4+9+4-10-7+1-6+9-3+7+5+6+7+0-0-3+4-5+5+9-0-1-9-1-2+7-6-4+3+6-9+10-7-9+10+2+6+4+1-9+9-10-4+8+3+8+2-2+1+10+7+4-4-10-1+9-2-4+7+8-6+7+8-10+8+10-8-9-10-4-3+0-10-4+1+3+1+6+8-2+6-8+3+10+10+8-1-10+7+5-10+3+1-9+0-0-4-9-9-2+4+6-6+8-5-6-2+9-7+5+0+3+5-5+0+8-6-2-8-7-1-8-4+2-4+9-10-1+0+7+10-6+4+8+7-10-5-10-3+4+1+4+10+4-5+8-10-2-6+5-5+0+4+5+6-6+8+0+10+10-0-2-9-10+8-10-8-10-6-5-6-6+0+10+5-0+1+6-5+10+4+2+8+10-8+3-0-5-0-3+10+10-8-5-2+2-9-4-2+6+9-4+0+5+3-0-1-6-0+9+5+10+1-3-5+2-6-2-7+4-1-10+3-9+0+1-8+7-0-4+1+2-2+0+2-4+10+6+0-0-8+8+5-5+10+9-2+1-1+6-1-1-6+1+6+0+1+10-10-0-7-8-2-8+6+6-1+10-2+10+8+7+10-10-6+9-3+7-8-3-5+4-6-3+10+0-6+6-8+3-4-10+2+6+0+9-5-5+10-2+3-5+9-2-4-2+10-6-8+6-1-0-9+10-3-7-5-5-5-0-0-4-4-2-10-3+6+1+0+0-7+8-2+3-7+8+0-0-6+0+8-3-4+1+6+4-6-8-7-6-9-1+0-9+5+0-7+1+4-4+6+2+7-5+9+8-10-8+4-7-3-0-6+2-6+0-5-7+1+4+5+1-9+0-3+10-4+7+10-8+0+2-9+10+10+0-4-5+2+10-5-7+1+1+4+7+1-8+5+2-8-6+5-9+7-2-2+2-6+9-3-10-9+8-9+3+10-9-8+9+4-3+4-9+10-2+10-0-5+10+6-10-4-4-10+4-4-3-1+4+2-7-7-8-4+2-10-5-9-3-10-1+2+9+0-2-6-7+6+8-4+3+7-2+8+0-1-5-0-9-5-6+5-1+4+10-5+0+1+9-4-10-0+3+4-2+9+5-5-9+7-9+8-3+5+5+5-8+7-7-4+2+4-7+5-9+9+7+4+1+5-10-10+6+10+5-1+10+7+2+4+2+5-4+6+8+7-2+4-3+7-9-10-10-0-9+5-7+5-1-4+6+9-2+3+6+10+3-2+7+3+2+10+8+10+3+10-1-6-1-6+6-0-5-1-5+0+10+10-1+4-7+6+3-4+8-1+9+5+6-4-1+4+3+6-9+1+4-10+10+4-7+2-5+5+1-10+7-7+10+1+3-0+1+4+5+9-5+10-2-6-10-1+9+1+10+10+1-2-2-8-10+10+10-4+5-9+4-0+3-4-8-6-5-2-10+10-5-4-1-9-10+1+3-9-8+0+6+4-5-10+2-9+2+9+5+6+1-10+1-5-8+6-4+1-10-3+8-3-10-10+8+0-0-5+8+0+0+10-4-3+0+3-8-5-5+3-6-10+9-8-8+5-7-6+1-8+1-1+9-6-10-7-1+9-5-3-7+7+1-6+0-8-5-8+10-7-10+7+6+1+2+7-8+1-8-4+8-1-2+7-3+5+4-6-10-0-2+8-2-8-4-1+7+5+9+9-5-1-1-2-4+5-8-9-7-10-4+6+6+0-1-2-1-3+2-5-1-3-7-5-2-7-0+0+2-9-10+10-8+5-6-1-7+2+7-10+8+1-4-6+4-10+5+4+8+10-1-9-8-4-4+0-3+8+9-1+9+0-7-0-4-6-5-8+5-3-3-0-10-10-9-0-7-8+4+5+6+8-1+8-5-3-1-10-7+3-6-8+3+3-7-5+3+9-2-2-6+10-7+3+6+4-5+2+9+7-8+4-2+4-6-5-3+7+3+2-2+5+5-0-10+4-7-1+8-1-2+4-8+10+1+8-10-5+4-2+2-3-7-8-4+0+3-6+0-8-9+2+8+2-5+0-1-9+10+1+2+10-3+4-0-3-6-10-2-2+9-1+4-5-1-6+3+3-1-2-6-4-4-0-10-7-0+3-0+9-0-2+10+0+3+6-4-2+0-10+3+1-7+4-8+1+0+5+6-6-5+9+3+6+8-6+9-6-5+6+1+10+7-2+7-1+6-0-8+7-8-2-3+4-0-7+8+1+9+0+2-0+3+3-7+5+3+3-6+6-7+2-4-0-5-1+8-0-7+8-7+7-7-10-2+4-5-1-1+10+2-9+0-0-9+1+6-6-8-4-7-0+5-9+8+9+0-1+0-2+9+3+0+1-10+4+0+9+8+5-4+6-9-5+6-9-6+2+9+7+0-9-4-3+6+1-6-4-7+1-6-3-1+9-5-6-4+8+5-2+5+9+2-2+2-1-10+5-10+6+3+1-2-0-2-7+6-6-9+8+9+8+4-4-9+7-9+9-8-0+8+9+0-2-2+1+3+3+10+3+9-3+6+0+10+10-1+10+8-9-10+4-9-6+8-2-7+1-6+2-1-2+1-1-6+1+10-2-3-5+2+4-2+1+0+7+9+2-9-3+10-4+5-3+2+10-0-0-5-0+8-7-6-10+3+6-7+2+5+1+1-9+8-1+7-4+0-8+5+9+10-8+3+3+5-10-4-3-6-0-10-5-4+9-9-1+2-8-0+3-8+5+2-0+1-10-5+2-1-3+8+4-10-8-2+2+9+10+1-1+5+3+10-5-0+10-4+10-0-0-9-7-9+4+10-4+9+0+6+4+7+1-5+2-9+0+10+4-8+5+4-3+2+7-7-2+1-4+3+1+10+10+8+2-5+7+2+2-4+1-0+4-9+0+10+5+3+1+8+7+5+9+4-5-9-0+6+2-0-3+0-2-7-10+3-8+1+6-5+10-9-2-9-0-2+7+5-9+2-7-8-4-8+7+3+10+9-5-7+8+0-0+9-6+3+6+7+10-3+8+0+10-3+10+6-0-5+8-4-0-0+2-7+8-7+4-1+8-3-7+7-7-10+8+4-4-3+6-10+6+10-5+0-10-10-8-5-3+9+0-1+10-4+8-4-6+0-2-1-4-1-9-5-2-6-6+10-8+2+0-6-5-7-9-6+0+3+4+3+9-5-1+4-2+1+1-8+3-9+6-9-7-6+10-4-5-10+5-8-8-0+9-4-7-10+5-1+1+0-6+9+4-1+10-7+6-1-10-6-4-2+1+9-0+3+1-3-0-2+8+7+6+2-2+10-10-7+1-8-5+1+10+8+3-5+8-7+0+7+1-2-3+5+6-8+6+1-6-8-1+8-1+4+0+8-3+0+7+8+2-10-7-4+2-5-2+6+8+2+4-10+4-1-6-2+5+5+8+5-3-10+1+6-0-5+2-7+0-3-3-10+0+2+4+3-4+6+5-10-9+9-3+9-6+0+0-8+0+5+10-6+3-0-7+4-1-0+7-5-0+3+1+9+4+7-4-3+3-3+0-7+0+6-8-7-9-10+8-4+7+2+4-2+5+2-3+10+8+10+7-4-7+2-9+5-8+1-6-2-6-1+8-7+10+9+7+5-4-5-9+2+1-4+10-8-7-10+4+1+9-10-4+2-1-6+0+7+4+6-5-3-2-1+2-4-4-4+2-4-0-6+6-6+4-9+10-8-5-5-2+3+5+8-9+5-5+7-2+0+1+6-8-6-0+7+9+6-0+10-9+6+7-1-8+4+1+7+8-0-4-8+8-6-6-4-2-8+1-9+8-2+3-2-6-2+8+8+0-3+4+7+6+4+10+10-4+3+2-6+10-0-4-1+1-1-7-4+5-10+9+5-7-2-0-3-4-6-10+4+8-0+2-6-2+7+8-2+9-5-0+3-1-10-3-5+8+10+7+10-9+3+6+9-5-2+3+1+9-2+4-10-0+5-8-0-1-1+10+3+8+5-7-1-3-9+3+6-0-4+4+2+2-4+6+3+2-6+5-5+7-9-3-4+0+5+10-0-9+1+10+4-4-1-3-6-6+9-7+3-7-1+1+1-6-9-8-6+1+0-1+8+2-6-5-1-0-7-10+5-4+5+3-5-1-8+1-6+4+3+0-1+10+0-3-6-2+1-8+4+1-9-1-0-5-8+9-0+9+6+8-10+10+3-8-7-4-9+3-3-1-6+4-7-4-4+3-2+6+2+8+6+4+7+10-5+10-2+9-9-2+2+5-3-9+10+9-8-6+0-9+6-7+3+3+10-3+1+4+5+4-1+0+9-5-7+9+1-8+9+4-2-7+10-3+6+8-7+0-0+1+3+2-9+10+0+9+7-8-5+8+8-7+4-8-9+4+9-5+0-3+2-6-1-5+10-10+4+8-8-5+4+6-0+5-9+9+9+10-8-3-6-6-10+1+8-1-7+4+3-0-8+5+8+3-1-4-0-8+0+4-0+5-10-9+5-4-1+3-9+1+3-10-0-8-1-0+1+1-9+3-10+8+0-5+1-6+2+3+9+3+9+10-10-8+7-3+8-7+6+7+8-0+6-10+6+6-3+2+7-7+4-3-2+10+9-0-5-1-2+6+9-1+7-9+6-8+7+10-1-3+4-3-4+2+3-10+7+9+2+5+0+0+2+2+4-5+6+0+9-6+0+4+5-4-4-8+6+1+6+1+6-6+5+1+5-9+10+7+9-3+0+6-8-4-6+2-9+1+8+7-2-8-2-4+2+8+1-9+1-2-3-4+8-5-7-4-6-0+8-1-2+8-0-6+1+4-7-7+6-5-10-3-7-10-5+6-6-2+3+8-3-1+7+8+10-5-0+7-4-6-4+1+4+4+4+3+3-2+0+7+5-2-10-7-7-8-4-2-5-3-0-4-1-8-5-6-9+10+8-4-9+4-6-7+6+3+4-0-10-7+6+0+6+9+1+10-4-0-8-1-0+0-10-3-10+2-9-4-3+5+1+4-5+1+8-2-2+4-5+10-7-0+0-6+5+3+1+0-3-9-4-1+10-4-6+6+10-1-4+4+0+0-6-5+10-0+10+3-5-0+9-9+4-2-10-8-1+7+7+8-9-2+8-9+10-8+10+6-9+9-10+8+0+10-4+5+0+5+3+1-1-0-9+6+10-7+0+7+8-2+10-3+8-0-5-8+8+7+6+1-10-5+10-6-4-8+9+4-7+6-10+6-3+7-1+6-1+0-6-1+8-9-2-0-6-0+10-3-8+2+0+2-1-3-5-6-10+5-10-3-7+0+5-10+8-0-5+10+0-5+10+9+7-5-3-1-1+5+7+6-6+9+3-8+3+9-9-0-5+2+9+2+2+9+1+1+6-8+8+0-4-5+7-2-9+2+9-6+8+1-3+1+7+3+2-7+10+0+4-3-6+9-0+5-5-3-4+6-6-1+10-5-5+4+1+3-3-2+0-3+7-3-1+2+10-7+8+5-10+10+3-1+10+5-9-3+10-10+5+3-1+3-4-1-10+0+9-9+4+0+0+7-9+6+5-4+1+8+2+10-7-1+6-6+1-9-3-0+9+2+5-1-7+8+3+7-2+4+10-2-8-2-7-0-9+7-8+7+7+10-5+0-1+0+6+7-10-2-5-6+2+0-5+4-8-9+6+3+7+0-6+5+7-0+8-8+10-4+1-5-7+3+0-2-1-6+6+2+4+4+3+7+8+1+2-10+6+5-3+2+2-10+3+5+1+10+10-9+6-5+1+6+4-6+3-5-6-0+3-9-8-5+1-10+9-2+4-6+2+4-4+6-4+0+6-8-10+9-10-6+4-1-10+5+5-9+5-6-9-6-10-0-6-1-10+6+4-2-9+6+4+9-6-4+9+8-7+7-0-3-1-8-0+6+3-8+7-10+1-10+9+4-10-3+7-1-3-1+4-9+10-9+10-9-10-4+0-8+10+0+1-3+5+8+4+6+1-5-4+0-9+2-3+9+3+2-6+1+2-10-1+5-1-7+10+9-3-0+4-9+4+6+5-5+10-1-3+1-1-4+8+1-3+4-6+10-10-8+6+10+0-1+5+1+4-10-10+9+8-1-10+9+4+1-7-1+4+7-4+2-8+6+6+4+1-10+8-3-6-1-7-9-6-7-0-4-5-4-4-1+8+6-9+8+5+5+0-0+0+6-9+5-1+6+6+10+0+6+1-2+0-9+1-6+5+3+10+6-5-5+4-9-5-2-1+0+2-10-7+6+7+9+7-3+7+10+10-10+10+8-1+5+2+5-3+9+10-8+0+7-5-5+9+6+5+6+8+0-5+7+3-1-0-10-6+9-9+1-1+9+6+6+7+1-7+4-8+7+0-4-5-10-4+5+1-10-6+4+0+10-5-8-8+1+1-1+8-3+3+7+10+9-7+0+6-2-7-0-10+1-4+2-10-4+5+6-7+2+7+6-5+8-2-4-5+2+8+1+1-8-2+0+1+2-5-0+1-10-0-7+10-10+10-3+7+0+4+2+1+9+4-1-6+0-10-4-6+7+5+2+3+5-0+5-8-3+9+5-5+1-9+3+1+8+2-1-4+8-10+6+7+1+5+4-9-6-2-10-10-3-10-4+8-2-6-9-5+4+2+7+8+0-8-9-9-3-3+6+10-0-3+8+6-6+1+7-1-7+4-3+7+2-6+1-9+2-7+3-10-9+0+4-7+7-3+10-5-1-8-5+1-1-9-9+2+5+2+10+4-9-8-5+6-9+9-5-7+7-9+8-8-1+3+1-5+7+7+4+4-0-1-7+3+7-7-4-4+3+10-3-6+7+5+2-10-7-4-4-10-6-5-6+10-8-1-4-0-10+7-1-8-10+5-8+1-3-9+3-10+6-10+5-10-4+3+9-9+2-0+2+7+0-6-1-6+6+7+7+3-8+10+3-10-4+9+6+7+7+8+3-0+3+4+8-10+4-1+7-1-7+8-10-4-1+8+10-0-6-7-4-1-10-4-0+1-9-10-4+0-10+3+8-4-7+1+3-1+8-6+0-2-0+6-2+1+10-2-3+4-6-5+9-4+6+10+10+0-6-8-3-2+4+2+3-2+4+8+2+2-0+3+5+1-3-9-3+2-3+10-4+6+6+4-5+0-3+3-8-4+6-3+10+1-0+4+9+6-5-1-10-10-6+5+4+4+10-9+7+3+6+2-3-5+7+10-8+1+8-0-6-6+1-9-3+9-8+0-5+10-7-2-6+6-5-10-4-5+3-1-7+2+4+9-0+5-9-0+6-5-3-1-8+6-3+1+8+7-9+8-10+2+0+5+5-2+7-3-1-3+3+7+9+6+8+10+5-9-9-8+10-7+10-2+8-3+9+6-3+3+1+2+9+4+4-7+4+9+2+3-6-4+4+2-8+10+1-1+1+3-8-3+7-7-6+2-0+7+5+10-6+2-2-2-0+10+7-5-9-3+2-8-9+9+0+6+5-10-10+5-5+3+2+8+0+9-2+10-2-10-8-4+4+4+9-6-5-9+7-9-9-8+8-1-0+0+5+0+4-3+7+4+0-0-2+4-5+2+3+10-5-2-5+3-4-9-6-5-3+10+9+4+3-7+3-2-7-10+3+2+1+5+1-10-7+9-3+10-6+6-5-0-8+5-0-7-5-2+7-6+6-5+10-0-9-5+8+9-7+9+10-3+5+9-10-1+2-2-1+0-7+8+4-8+8-4+3+1+6-3-6-9+2-5-7-0+9-2+0+10-0+8+7-10-0+0+0-2+10-6-1+4+0+10-3+1-7-6-6-6-8+5-8+6+1-7-5+10+6+7-5-6+5-6+4-4+1-6-6+1+3+3-2-10+9+5-7+2+10-2-7-3+9-9+9+1-8+5-1-9+8+3-0-0+1+4-5-9-4+7-7-9-10-4-1+10-10-1-8-8+2-10+0-6+1-8-1+4-8+4-2-1-6-8-3-4-9+1-6+1-6+8+10-6+4-2+1-1-4+8+6-2+3+2-10-5-8-8-9+6-4+4-5-6-8+6-6-6+2+2-1-5-0-6-6-8+8-0+2+1+6+0+3+8+4-6+0-1-0-6+4+10-1+3-0-0+6-8-2+10+6-10+3+5+5+2-0-4-6+9+0-3-3-9+0-9+3-4+0-6-9-7-9+10+6-5-5-8+10-1-4+3+0-9+10-4-1+10-1+2-7-8+9+8+0-5+8-6+6-9-10-9+3+5-0-10+4+2-7+1-2-3+1+8-8+7-9-5+7-0-8-6+1-8-3+9+2-8+7+10+7+1-3-1-8-3-7-0+5-6+6+1+5+8-1-0-9-7+4-8-1+0+1-10+2+6+6-9-9-4+3-5-4-1+7+6-4-1-0-6-3+5-8-6-3-9+5+8+10+10+6+5+8+4+1-10+4-6-5+8-4-1-5-6-10-4-1+4+4-2+10+1-9-0+9-7+1-8+6-5+4+2+9+6+4-7-9-6+9-3+3+6-8-2-3+1+3-2+9+5-6-4-8-10+2-4-6-7-6+6-1-9-10+1+10+4-4-0-7+8-0-10-8+1+4-1+1+6+9+2-0-6+10+5-2-3-8-9+1+9+0+2-4+1-1+6+8-7-1+2+9+9+7+4-6-10+9+8+4-8-0-0+2-9-4+3+3-9-9-9-2-6-0+8-7+7-2-1+10-8+7+4+0-4-5-8-6+0+10-7-7-0+1-0-3-2+9-7-4+3-3-7+4+1-7+3-6+3+2-7+5+7+2+7-3-9+0-0-0+9-0-8-3+9-10+10+5+3+1-9-8-2-4-2-9-0-3-4-3+9-4-5+5+5+4+1+3-9-6+7-8+9-2+5+7+6+6+7-6+7+3-0+1+0-1-1+1-5+2-7+6-0-8+0-9-10+6-7+4+3+2+6+6-8-1-2+10+6+0+3-4+10+0-3-9+1+0+2+9-2+7-0+9-7+8-5+6-3-6-9+3+6-4+7+2-8-3-9-5-0+2-7-5+6+4-10-1-6+3-1+0+7-4-0-1-5-2+2+3+10-7+4+6+4+3+5-8+1+7+4-6-2-6-5+2+4+2+10-6-5+1-4+8+5-8-10+9+10-9-6-4+2+6+0+5-8-7-0-10-4-2+10-2+4-6-5+7-4+0+1-10-6-1-5+0-10+5+4-7+3+6+7-5-10-3+9+7-6-8-0-10-5+1-4+2-5+6-3+10-1-8+8-10-0+3+0+2+4+1+2+8-8-5-0-9+9-3-3-1+2-5-4-1-7+6+3-10-3-7+9-9+5-5+2+8-8+8-6+1-8+8-8-0+2+4-2+1-4-10-8-10+7+2-10-2+1+1-9-8-7+7+0+7-7-5+4-3-10-8+3+2-8+10+5-7-6-2+10+9+5+1+3-8+8+9+10-9-9+5+3-10-8+5+8-1-5+5+8+10-2+2-5-10-7+8-3+0+5+5-10-2-10-2-10-6-7+1+3-4-8-1+6-0+9+5+4-5-1-7-1-10-4+7-10-7+2+10+5-10+3+7+7-0+6+3-10+6+0-2-10-4+6-4-3-4+2-9+3-1+2+0-0+2-2+10-6-6+7+8-0-6+6-3-0+1-1-9+5+9+9+7-5-1+6+10-2-1-2-8-7-0-0+3+9-7+1-4+6-6-9-3-10+5-0-6-10-6-5-0-8+2+10+8+3+6-7+5+8-9-3+4-8-1-6-6-7-9+1+7+9+0-7-1-7+4+1-10+4-2-1-6-7-3-4+5+0+0-10-0-8+3-9-5+1-9-10-1-6-8+2-9+4-3+5+4-4+10-2+0+9-0-7-10+3+1+2+4-3+3-1+8-7+8+10+7-2-2-1+1+2-4+9+7-7+7+10+9+10+6-6+0-2-3+7-8+0+7-10-10-2+2+3-9+6+7+6+1-4-2+3-0+8-3-9+5+8+3-1+3+6+2+1+8-6+5+0-4-10+10+10-6+2-0+3+5-5+1-3+2+2+2-7-1-3+10+4-1+3-9-6+0+6-9-5+1-2+7-1+4+1-10+9+7-6+2-3+3+7-1+4+3-2+9-9-9-8+10+6+7+4-7-3-2-4-1-10+7-5+5-4+8-5+4-0-9+9-1+6-7-10-6-2-7-5+1-0+5+8-2+2+4-8+3-7-8+1+5-1-6+10+7+0+4+0+8-8+10-8-3-3-9-1+7+7-6+7+9-2-0+8+1+7-6-4-2-3+2-2+4+9-6-4+8+7+4+6+8-7-0-4-10-6+1-1-4+5-2-9-1+8+10-3-7+5+1-3+0-8-4-10-3+7-2+3-4+9-2+8+8+3+5+1+4-6-2+2+0-0+3+8+1-2+10+1+0-2-7+6-2+6-8-2+1-9-2+1-8-5-8+5+4-8+7+7-0+5+3+5-9+3-6+9-10-8-2-2-6-0-3-2+9+0+2-0-5+3+1+10-9-2-3-10-0+2+4-5-7-4-2-7-8-9-4+1-10+7-1-8+6+2-6-9-2-5-6+6-6-0+0+2-9+10-2-10-0-7-5-9-0+10-9+6+5-4-2-5-0-6+2+5-10-9+8-1-6+10-7+8+3-5-6+3-1-3-3-9+4+8+6+4-8+8+0-8+9+8-0+1-3-4-7-9+0+5+9+8+7-4+1-6-4+8-6-4-3-7+2-9+0-5+10+5+6-4-8-1-8+3+4-0+6-6+0+10-7-4-0-8-2+6+9+10-2+1-9-2-3-9+8+2+1-0-5-3+7+2-6+2-4+6+8-7-7-2+8+2-1+6-8-9+5-0-10-0+5-8-4-7+0+6-2-4-7-1+10+3-7+5-0+6-6+1+9+2+5+7-1-8-10+2-4+2-0-4-0-9+1+0-8-2+5+7+8+9+0-2+4-9+0-9+4+8+10+6-7-4-2+8-8-2+9+2-7-8+6-7+6+4-4-6-0+3-5+3-9+0-4-8+5-6+9+1+5+0-5-9-2+1-2-8-4-2-6+8+8-6-4-5-6-10-4-0-0-1+6+3+3-5-4-2-3+6-4-5+6+3-3-0-1-4+0-8+5+8-1+7-3+5+4+5-0-4-7+4-3-5+8+0-8-5-10+3-0+7+8+3-0-0-10+7-5-6-0-7+9-6+1-4+10+2+1+5-5+8+0-8-3+5-7-10-9-9-2+1-8+7+8+1+2-10+8-3+7+5+10-1+3-6+0+9-0+4+5-9-4-6+10-0-3-5+8-10+1-9-5+10+5+1-4-2-0+9-0-10+9+1-9-1-3+9-1-4+9-7+10-8-1-2+1+2-8-4-6+8-0+10-3-1+6-6-10-6+4-4-5-5+1-9+6+7-2-9+1+9+3-3+2-7-3-3+10+7+7-4+1+6+5+10+10-4-8-0+5-7-5+2+9-5-2-9-8-5+9+2-8+0-2-6+0+10-2+7-0-2-3-3+1+5+9+6+9+3+6-0+5-5-9-7-8-4+9+5+0-3+4+5+2+0-7+8+9+7+9-0+5-4+0+2-4+3+3+1+3+6-6-6+2+10+6-1-7-9+3+3-3-1-6+5-3+1-3+2+10-7-5-7+8-9-8-8+4+0+1-2+9+4+5+0-2+5+7+2+10+9+5-6+7+7+0-8+6+0+4-0-1+1-5+3+2+0-6-10+5+4+2+0-4+1-3-4+1-6+1+1-7+1+9-3-1-4-9-9+1+7-5+4-4-3-9-1-8-2-7+4+10+10-0+1-9+7-4-6+4+8-10+9-3+8+7+10+5+9+4+10-6+9+2-7+10+7-2-10-3-4-7-2+3+8+4+2+8+5-6-9+5-4+9-0-9-0+1-7+6-9-4+1+2-4-0-8-10-0-2+2+1-3+4-10+2+7-1+7+6-8-0-8+4-2-8-4+8-5+3+5+7-5+10-6+10+1+8-10+4-9+5+7-10-7-6-1-4-9+3+0+5-4+10-10-3-4-10-8+9-5-3+7-9+5+0+7-0-10+6-10-10+5+10-3-6-1+10-5+9+8-4-7+7+2+5-7-8-8+4-0-9-9-10+9-10-1-5-6+7-7-9+10-6-3+10-10-6-10+4+7-8-1-10-0+7+10+7+2-1+9-10+4-5-7-10-10+0-1+4-7-2-9+1+8+6+8+9+6-5-1+0+1+5-7+6-0+3+6+10-7-4+1+8+10-8-6-3+9-3-4+7+5-6+0+2+6+2+5-9-1-6-10-4-2+9-6+8-9-0+6+8+5-9+4+1+10-0-0-4-8+5-2-1-1-6+8-9-8-0-0+8-4+9+1-1-3+1-1-7+2-4-1-2-5-1+7-1-3+1-2-9+8+7+1-2-2+3-9-3+10+2-8+2+7-2-4+2-3-3-9+1-1-9+0+10-9+9+2+0-2-8+9-3-2+0-5+1-0+0-5+0+3+5-8-0+10-8+10-9-0-0+7+1+7+9-4+0+7-7-1-5-7-10+1-6-3+0+4-9+10-9+6-9-9+5+1-7+10-1+9+9+1-5-7+5+6+10-5+4-0+3-3+9-7+7-6+10-4-2+8-7-8-1-8-3-8+8+3+5-0+4+7-10+7-5+0-5-10-10-9-4-0-4-10+8-3+10+1-5-10-2-0-4-7-1+9+7-4-5+10-9+3-8+8+8+10-9+7-7+1+6+0+10+8+9-0-6+5+0+0+2-9+9+0-1-0-0-0-4-4+2+10-0-2+3+2+4-2-9-1-4-7+8-8-4-5-9-4+6+10+5+2+7+7-5+7+9-10+3-8+2+9+5-6+2+0+8+6+6+8+3-10-2-6+0-0+5-9+10-8-10+7+10-0+9-5-8-1-5-4+0+7-3-1-8-9+9-4+6+9+7-2+7+9+7-10+8-5+9-3+3+3-10-7+7+4+7-4+7-4+4+0+10-2-0+1+10+9+1+0-0+0-6+5-7+7-8-0-1-9+6-3-1-1+9-10+4-9-10+3+6+7-6+3-2-3-7-4-8-6-5-8-1-4-9-4-4-10-4+2+0+3+3-8-3+1+5+7+7-3-3+3+5-1-5-5+0+7+3+0+2-3+9+8+2-8+3+2-4+1-2-3+7-8+1+4-9+8-8-7-9-1+0-6-2+2+5+6+0+10+1-4-10+9-10+6-6+10+5-0-4-2+4-6-3+1+1-4+1+0-1+2-7+9-10-5+7-1+10-1+2-2+5+4+0+4-6+2+0-4-9-5-6-5+5+4-9-6-9+9-7+8-4+3+1+7-8+8-10-8+10-2+10+10+9+6-1+9-0-2+0+6+1+9+0-0-0-1-0+0+9-5-7-8+8-3-3-9+1-9+9+6+2+2+2+9+6+10+2+10+1+5+0+8-0+4-10+6+1-0+7-9+5-3-3+6+4-1-8-0-3-9+0+3-9-9-6-4+2+8-4+7-0+3+4+3-10+9-4-5-6-10+8-4+3-2-0-0+6-1+3+5-4+9-6-8-10-8-5-10+1-3-8-3-4+2+1+1-0+6+0-2-6-7+7-6+4-3+5-6+9-4-3-3+6-5-8-7-4+2-5+6-4-2+9+10-8-7-4+0+3+9+5-8+8+4-10+9+0-3+5+6+4-1-1+6-2+9-4+6-3-8-8+4-4-7+1+2+1+2+7-8-5-2+0-7+2+0-1-1-0-6-4-2+6-1-6-7+3-6-0-5+9+3-9-5+1+0+9-10+1+2-4+0-3-7-3-4+10-8-2+3-4-10+1-0-9-3+5+9+1+4-2-7-10+7-5-7+8+1-4-3+9+5-7+7+3+6+10-1-8+2+7-10-6+6+7-9-1+10+7+5-7+3+1+8+10+2+10-6+0-1+5+6-10+6+3-2-0-2-4+2-2-6+3+9+4-3-6-8+0-9-2-1+10+3-6+6-0+3-4-4+2+1-7+0+9+9+4-0+8+4+10-6+1-9+3-5+6-4-4+9-1-8+4+4-3+1-10+3-7-6-10-0-6+1-7-2-1+4-5-8-10-10+0-5-8-3+4+10+9-2-5-10+8-0-3+9+10+3-8+0-4+7+10-7-4+1-2-10-5-3+3+1+2-7+9-9+2-7+4-8+8+4-10+2+0+6-8+5+8+10+9-9-4+2+8+5-0+8+1+3-6-1+5-0-6-4-1-7-9-3+6-1+4+1-5+9+8-0+3+10-9+8+10+6+3-9-6-3-9-2-4-3-9+5+2+1-0+8+2+6+9+9+2+5+5-5-2+4+0-5-9+9+6+1-0+3-8-6-4-8+10+0+9-9+10+9-1+9-3-5-3-3-3-7+6-0-6-5+4-7+7+6-10+2-7+3-5+0+1+6-7+0-2+6-3+9+4-7+9+0-6+8-4-1-2+5-5-3-10+9+1+5-8-4+0+10-1+7-9+2+9+8-4+9-9+7+9-8-2+4+4+9-2-5-10+10-9+8-10+10+8-7+8+5+0-4+3-2-9+10-9+9-2+8-6-10+4-5+0-7-4-1+6+5-3+10+7-0-3+9-1+2-8+6+4+10+1-3+2-7-1-10+3-1+3-1-1+2+9-6+3+8+1+7+0+0+10+4+5-6+0+3+6+9-6-1+10+4-0+8+2-9-4-4+0+4+7+7-9+8+5-5-8-7+3+2+6-9+9-7-5+1-1-1-3-0-0+0+2-9+8-0-3+6-2-2+5-6+8-10-6-7+4-0+5+1-1-8+8+8-0-0+9+7-0-7-2-6-5+2-1-9+5-0+8+7-2-7-7+2-1+6+10-1-10-4-9+4-1+0+3+8+9+0+2+10+7-8-5-5+9+3+8+9-7-9-2+2-2-2-1-7-3-10-7+0-6-9+3+10-5+9+7+2-8-10+1+1-10-8-6+8-10-8+6+4+0-4+2+8+10-6-10+9+8-10+9-4+0+7+3+5-9-2+4-4+9+6-3-1+1+3+0+2+10-5-0+10+9-6-10-3+4+4-4+1+5-5-3+4-6-10+8-5-5+7+5+5+3+1+10-8+9-9+4+0-5-2+1+6-9+9+10+2-1+5-4-10-4+3-8-1-1+4+2+3+4-6+4+10-4-5-6+0+10-1+9-8-3+5-8-10+6-0-2-3+2+1+10+7-0-4+0+9-5+6+4+4+0+3+5-8-3+5-3-3-4-5-4+6-0+10+8-2+4+1+9+6+10-9+5-8-9+6-6+4+2-3-5-3+2-8+4+8-0-3+0+8+5-6+7-10-3+5-2+5-8-8+3+9-10+1+2+4+0-4+4+1+9-5-3-3-4+5+10-5-0+8-3-4-10+5+3+10-0+5-5-0-6+4-1+4-10+8-6+7+3+1-0+8-9-7+3-5-9+5+10-3-4-4-7-3+0+10-5+8+6+3+6-6-2-4+10+7-2-8-5-9-9+8-4+0+9+9-9-5+9+3-4-1-1-4-1+1-4-4+1-4-3+9+10+3+7-0+5-9-7+4+2-1-9-3+2+9-2-9+4+3-6+6+10+8-9-9+7+7+2-4-1+1+1-10+7+2+9+6+7+5+1+6-8-8+9-2+4+1-10+9-6-3-7+3+1-10-6+7+9+5-2-8+7+7+4+5-3+10+5-6+8+5+0-7-8+0+5+0-8-2-4-0-9-2-8+10+7+3-1+7+3+8-1-5-4-1-1+9+3+9+0+0+0-5+4+3+8-3-10-1+6-1-0+8+2-0-7-5-8+6+5+5-10-2-8-6-8-3-3-4+9-9+1-6+6+5+6-10+9+8-3+6+2-10-4+2-10-0-4-2+4+10+1-1+0-1-3-2-5-2+1+7+6+0-7+10+6-1+6+2+4-4-10-1-6+2+7+10+4-3+8-5+3+9-1+4-5-7+3+6-4-5+0+10+10-2+6-8+9-0-8+4-0-0-8+9+8+2+3+8+3+2-7-8+7+0+5-3+9-6+7-5-6-6-5+9-0-6+4-2-1+5-3-9-8-1-5-7+6-7-4-6+3-1-0-1+8+0+4+5+3+3+7+0+9+3+8+3-7+4-0+5-2+6-5-6+5+3+5+3-8-6+1-2+6-3-1-3-4-5-10-9+5-2-0+10+9+3-9-3-1+5+2-8+8+3+3-6-2-6-10+7-7-6+0-2-0-9-1+9-2-7-5+0+3+1-3-3-10-4-9-5+2+5+1-8-10+5+3-0+1+1+4+7-6-7+2-3+1+9-7+10-7-8-0+1+0-5-0+10-10-0+10-8-1+3-0-0-5+8+5-8+8-10-4-2+5+1-3-2+8+5+8+0-10-10-6+9-7+0-3+10+3-3-8-10-4+10-4+8+7+1+4-2-10+9+3+2+9+8-10-3+1+4+3+6-0-6-1+1-0+10-2-0+1-9-2-3+2-2-8+0-10+7-6-3+0+0+4+4+9-8-1+0+4+10+5+6-9-1+2+2-1+7+6-3+3+8+1-6+5+3-9+10-0-5-6-10+10+10-7-8-2-9-3-7-9+3-1+9-1+0+10-7-8+4+3-2+10+9+6-6-6+9-7-1+5+6+0+9-10+5+4+5-7-8+5-1-8-0+1-10-3-2+5-0+5-10-0-8+6+10-7-0+7+4-8-0-3+6-4+4-6+3+1+7+8-9+6-6+10+8+5-3+0-10+5+9+7+1+10-8+4-8-9+4+5-9+0-10+5+6-3+2-8+8-0+7-10-6+4-9-10-9-5-7+10+6-8+5-8+2+9+2+9+6-6-8+0+9+6-3-9+2+8+4-1-6-1+5-0+7+10-9+5+8+4-4-7+5-9-8-0-8-10+10+4-0-4+6-0+10+7+8-3+9+0+3+5-5+5-4-3-7-7+10+5-0+3+3-5+1-5+3+10-10+5+9-2-2+6+10-8+4-1+10-7+5-2-8-1-7-5-8+0+2+7-1-0+7+5+1+1+1-6+1-6+7+4+5+1-2-8+9+4-10+0-2+6+0-2-4+7-0+10+7+8+5+7-6+9+7-1+9+7-7-6-2+2-8-9+1-3+7-7-4+1+10+6-6-6-3+0+1-1+0-6-0+4-5+3+4-5+5+8-10+8-9-0-3-3+9-9-10+5+1-10+0+0-8+7-0+10-4+0-10+10-1-4-9-4+9-2-1+7-5-2+9-8+0+6+3-7-5-0+10-8+8+0-2-3+8+7+9+2-8+9-8-9+0-8-9-10-8+7+5-10+10+6-1-6+0+4+10+2-7-10+5+6+2-8-0+7+5-2-2-8-0+4-0+7+9-9+4-6-7-9+4+7+1-8-5-1+3+6-1-0+2+7-7-3-4-6-8-7+4-7+4-0-1+2-4+4+10+1+7+2+4+5+10-6+3-10+0-0+6-7+1+1+4+7-0+7+9+9-6-4+2-7+8-8-8+5-2-8+9-5-9+10-5-6+10-6-4-1-0-6+6-7+10-7+1-0-7-1+1-7+9+2-4-7+3+9-5+6-4+7-0-7+3-7+9-4-0-9+0+7+9+0+4-4-7-10-7+1-0+9-9+1+0-4+4+7+6-9+0-8+10+4+5-4-7+5+0+2-3+9+10+9+3+6+8-10-8+7+2+10+1-8-0+0-9+8+0+8-7+10-2+3-6-0+2-1+5+4+2-6+2-8-6+0-10-2+5-0-0+5-10-3+5-5+8-5-5+3+9+7-9+6-7+4-5+7-1-1+2-9-9+3-6+5+9-10+3-6+8-1+3+10-1+3-0-10+5-2-1-6-1+0-6-7+9-10-7-5+0-9-7-5-3-3-9+10-10+4-0+6-10+3-9+10+2+1+8+2-7+9+5-4+2-3-1-5+10+4+5-5+5+9-2-10-2+6-8-8-8+6+9-5+3+7-3-2-3-4+8-8+5-2+10+4-0+9-3+7+5+10+3+6-0+10-1-0-6+5+9-2+0-5-5+3+8-9-4+2-10+9-4+8+9+4-6-6+4+3+3+3+3+1+0+7-10+8+5-2+4-4+1+3+8+5+8-9+8-10+4+0-8-9-4+3+5+9+2-8-5-2-10+6+8+8+1+9+3+2-1+5-8+3+1-6-7+8-2+5+0-6+0+5-10+7-9-7+6+1+4-9-5+2-5+0+8+8+9-2+10-2+8-4+2+5-1+6-0+4-7-5+2-2-7+9+7+10-8-0-7+5+5+6-5+7+1-0-6-1+7-1+9+5-3-2+1-8-9-0-10+1+3-6-0+5+1+9+1+8-6+0+3-7-1+1+7-10-7-3+3-10+2-7+1+4-8+10+1+5+8-1-1+3+1-3+4+7+0-6-0+1+9+5+9+3-9-4+10+0+7-7-10+8-2-5+10-3-6+8-8-5+10+9-9+3-7-8-7+9-9+1+8+2-2-1+7-1+4+2-8-10-5+0-3+7-3-7-0+4-10+9+9+4+4-5-10+1-0-6+7-10+4+4-3-7-4+2-9+1-3+6-3-6-8-5+9-1+5-7+6+10+3+1+9-5-3-9+3-0-4-2-4-1+7+3-0-3-0-1-4+8+9-8-1+6+4+0+1-6-1+6-9-8-8+4-0-2+2-0-8-4+1+3-7-9-7-5+0-3+1+1-3-4+1+2+7-5-10+1+3+6-6-10-10+9-0-7-3+9+8-3+9+0+2-1-1-4+0+5+8+3+6+3-4+0+3+2-5-0-0+8+4-8+5+10+5-9+7+5+8+1-5-5+7+2+9-9-10+6+10+5-1+6+9-1-5+9+10+10+3+6-1-7+4-10-9+5-1+7+10-1-5-5-4+10-9-8+8+9-5-1+6+6+5+6-4+0+8+1+3-2+8+10+7+7-4-1+3-10-4+1-6-8-6-9+1+6-9+10+2-7+0-10-7-8+9-3+7+10-6-10+1-2-2-1+4+10+8+10-2+2-1+3-1-0-9+2-7+6+4-2+5-3+2-9-7-10-2-7+10+9-3+0-9+10-5-8-7+2-7+10-0+10+6+8+0-0+1+3-1-3+7-7-3+10-4+8-1-5+5-9-10-6-6-8+9+3+2+4-2-8-8+0+3+8+5-7+9-3+2+0+6+4+9+9-9+4+4-5+4-0-6-2+10-4+10+2-3+6-8+3+2-7-3+2+7+0+3-0+10-10+8+3-10+5+10+4-2+0-6-0+3-8+8-3+3+6+1-8-4+7+8+10+6-2+5+3+2+1-6+1+8-8-9+10+5+6+4-9-3+6+0-10-5-5-2+10+8+9+6+0+5+9+1-10+2-0+1+9-7-1-2+0-6+6+1-7-4+8-7-10-4+7-5+2-9-0-0-1-2+0-10-8-2+1-6+6+8-9-6-3-7+4+1+2+8-6-0-2-8-6-10+4+2+10+3-7+1+9+2-10-7-0-3+1-8-5+10+6+0+0-6-3-8-8+2+10+8-6+1-6+3-7-4+2-7+6+2+1+6-7-7-4-9+1+10+9+1+9+2-0-2+4+1+2-4+2+1+6+2+4+8-5-0+8+5-7+3-7+7-0-2-9+4-7+6+2+10-7+9+3+5+7-3-10+2+5-5-10+7-7-6+1+1-7-10+1+10+10-5+4+10-3+4+10+6-9-5-8+2+2-0-2+4+9+1+5-4+1+9+1-9-0+2-7+7+0+7+3-9+4+9+5+8+9-6+0-7-3+3+8+0+6+3-6-6-4+3-10+1+7-6-6+7-7+0+0-3+10-4-8+10-4+7-6-5+0+0-2-9+4-8-7+0-8-2-7+1-5-3+6-6-3-5-10-9+10+1-6-8-6+1+10-6-2+3+8-3-9+6-5-9+1-8+8-7-7-7-5+6-7+1-6-7-1+2+4+1+9-4-5+8-9+3-2+9-1+7-7-9+5+8-9+4+8-9-2+3-4-6-1-8+1-4+0-7-3-5-4-3+5+4+4-2-7-0-5-3+0-5-2+10-7+10+2-4+6-7-7+8+1-7+8-4-0+4-2+0-3+9+0-10+9-6+9+6+1-2-1+6+1-10+6-0-3+3-0+5+3+5-6-4-6+10+4+7-2+10-7-10+10+7-6+1-2-9+7-9-7+3-8-2-2+3-7-3+6-0+4-6-7+7-7-2+6+1-4-5+10+5+10+7-3+5+6+5-8+5+7+10-0-3+10-7+7+8+4+10-8-4+7-8-8+2-10-4-9+1+6+7+4-1+0-1+6+0-2-4-7+2-2+5-3-10-10+10+9+10-8+6+7+1-10+10-8-8+6-4-7+5+10-1+3-10+7-1-3+7+0-3+6-1-8-10-3-2+1+5+9+1-1+0+3+8+7-4-9+1-7+6+3+3-1-10-2+6+6+2+5+1+1-7+6-8-6+7+4-10-3-7-9+5+4+0+10-10+7+7-3+4-2+0-9-0-5+2+4+8+8-7-9-10-1-9-7-0+9-4+3-7+5-2-6+8-3+10+9-1+10+2+7+7-9-2-7+10-5+8+4-3+10-7-7-1-4-7+8-4+4+2-7-3-6+8+6-4+7+8-6-6+1+9-3-10+9+7-7-6+4+9+7+5+2+5-4-8-0+2+2-3-4-9-7+3-10+7-3+1+9-0+6+8-2+7-1+8-0-0-3+0+3-5-8-6+9-7-5-9+1-6+0-3-4+8-0-5+0-8-10+7+6+7-3-4+0-6-6+6-10+10-6-3+5+2+7-6+10+8-5-1-8+9-1+1-5-6-7+3+6+1-6+2+2-9-2-4+9-0-10+5-10-4+7-2+5-4-1-1-2-3-2+9-4-6-1-5-0-4+1-2+7+7+0+1+8-0+1+9-2-8-8-2-7-4-10+4-2-9+8-5-2+7-5-0+9-5+1+4-2+1+4+1+8-10-3+7-4+7+1-7+8-7+2+10+5-3+8+5-9+10-7-6-1+9+10-6-10+5-2+0+6+1-5+1-6+0+6+3+7-7+3-3-7-8-5+5-2-2-8+3-7+2-6-9+10+9+9-7-0-4-7-9-7-3-2-9-4+3+3-9-0+10+4-2-6-8-3-0-2-2+9+4+2-3+2-0+2-6+3+7-10+7+9+6-9+1+7-5+1+8+9-2+7-3+0-8+6+4+7-4+7-1+1+2-5+8-0+0-1-7-10-5-6+9-2+0+8-10-0+8-7-3+6-1-8-9-5+5+8+1+7-10+3+7-9-6-1-10-9-0+8+9-8+2-8-10+5-1-1-8+5+7+8+3+3+4-5+0-9+10-5+5+5+0+8-1+5+8-9+9-10+10+4+0-0+4+1-9+0+10-10+4+1-5-7+5-2-2+0-6+5-7-1+7-2-2-4+3-6-2+3+7-8+1+4-0+1-2-2-5+9+8+3-9+10+10-1-5-5+0+5-0+4-10-9+6+0+5+5-3+9+5-4+8+7-1-4+9+7-5+10-3+0+3-9-8+3+1-6-4-6-8-1-5+10+1-1-8+5+8-6+3+8-3-5-0+4-5-10-5+1+3-3+3+10-2+10+3-1+0+9+3-2+6-3+7-3-2-0+6+7+0+5+8-6-3-1-5+9-8+4-2-1+8-9-5+7+8+3+10+7-10-1-0+9-5+7-9-6-7-10-3+5-1+4-0-0-6+0+2-2-4-2+5+1+3+3+6+5-0-0+9-10+0+5+1-7+5+7-9+0+5-6+9-8+4-2-9-1+0+8+5+9-7-8+0+1-1+4-6-1-5-7-8-9-9+0-6+10-3-6+8-9-10+8+4+1-0-7-6+4-9-6-0-9-2-8+8-8+1+7-6-10-2-6+4-8-1+1-0+0-3-7-9+9+5+9-5+3+9+6-6+6-2+7+1-9-9+5-8+3-1-6+0+7-4+2+7+4-6+3+6+5+6+9-10+9+10-8+6-9+4+0+3+1+3-7-3-1-5-8-5-8+9+8+10-9+0-8-9+8+3+6+6+7+5-3-3+7+6+2+4+9+3+8-5-1+9+0+0-6-10+10-8+2-8-5-9+5+4-4+7-8-8-8+6-0+4+2-8+8-0-6+7+5-3+4-1+7-1-4-9+8+1-4-4+8-0-6+3+3-4-7+3+3+8-3-8-8-7+6+6-3+3-8+0+1-7-0+5-7+6-8-4-10-4+7+2+3+3+6-10+6+2-0-10-7-2+6-1+6-9+8+0-3+9-0-3+1-1+6+6+6-9+5+1+5+7-3+4+1-5-2+8-7+7-8+9+6-4+2+10-0-10-10-2+10+0-8-9-9+10-6+2-0-6+5-7+2+4-5+5-0-7+2-0+5-7-3+8+9+4-3+1+1-2+7-0+4+9-3+0-8+5+10-5+3+0+8-5-9-10+3-0+6+8+0+6-6+1+4-3-7-6-9+9-6+3-0+3-6-5-8-6-0+5-2+8-9-0+5-3-0+3+4+4-2-6-0+0+6+5-2-0+10-10-0+3+3-9+2-7-3-1+10+3+6+5-0-4-10+2+9-5+3+9-8-6-3-2+1-7+5-6-2-8+4+2+7-4-0+9+3-9+7-7+1+5-7+10-1+4+0-10+10-10+6+8+2-0+1+3+6-8-7+5+5-9+0+7-4-5-7+5+0+2-7+0-6-7+8-6-3-7+6-3+6-3-7+6+3+1-5-10-8-4-8+2+6-4+5+5-10+3-7+4+2+4+3-3+0+8-4-5+0+6-0+6-3+1+4+10-3-1+5-8-5-2+6+3-1-3+0-10+0-9-9+4-0+5-7+3+10-9+9+5-3+5-1-2+10-5+5+2-5+3-1-8-2-7-10-8+9-0+1+0-2-7+5-3-0+9-5+3+5+5-4-1+7+2+3+10-5-9-0+9-1+4+2+10+8-0-4+3-5+2+4+0+2+10+5-9+0-8-7+6+8-4-2+2-4-10+5-3+4+9+7-6-1-6-6-10+1+5+6-1-7+10+9+4+10+6-10-7-4-10+5-1-3-1+4-8+3+0+6-1+6+8-8-7-1+7+3-6+0+3-3+5+3+3+4+1-6+6+5+7+8+6-1-0+4-8-10-8-4-3+8+8-7-4-6+1+0-5+5-10-9+3+1+3-7-5+8+9+4-9+4-1-8+3-0+6-0+0+4+3-9+2-1+3+2+2-1+9-8+7-2-0-0-1-6-1-5+6+1-4+1-0-7+2-9+1-5-4-9-4+6+4-8+10+5+6+7-3+10-3+3+8+9+7-3-4+1-6-8+5-1+0+3-7+9+6+7-5-5+6+6-4+4+6+3+7+2+5-9-0+3+0+10+0-3-5+7-1+9-0+7-4-1+8+4-2-4+3-9+1+8+8+6-8+5-6+7-2-5+3+8+2+2-10+2+1-1-5+1-8+5-3-6-8-1+8+4-4+2+10-10+0-1-8-6-10+6+3+3+0+6-4+5+2+0+6-1+9-3+8+5-1-1+5-8+2+10+1-3+6-7-1+7-10-3-3-0+0+7-10-5-3-8-5-1+8+9+4+4+8+7-4+0-6+2+5+0-8+1+6+0+2-7-8+10+0-10+8-2-7+6+3+1+8-9-0+5+0+3+3+9+3-0-7-10-8+9-4+1-3-4-6-4+5-4-4-6-4+2+0+7-1-10-10-10+7+8-9+3-7+0-5-7+9+0-10+8+10-2-3-9+2+2-2+1+10+4+6+7-6-1+9+4+1+7+2+7+0-2+1+6+7+10-2+4+0-1-2-1-9+3+4+2-4-7-1+6-8+7+2+0-3-4-1+2+9+10+3-7-3+3+3-1+4-5+4-10+2-5-0-4-0-6-0-6+8+8+1-9+7-3+8+10-3-4-2+8-0-3-3-2+2+10+4+1-10-9-8+4-8+2+6-5-9+1+6+5+0+0+10-6-10+2-4+0-8+9+8-1+7+5+4-4+10-9-5-2+6+7-1+6+10+7+7+4+7-3+9+0-4-7+3-9+6+8-8-0-4+0+4-1-10+4-5+6-9-0+7+7-8+9-6-7+9-5-2-1-1+4+0-3-0-3-0+7+7-7-7-7+1+5-3+7-9-9+8-5-7-0+8-3-4+7-7+7-6-2+4-4-8-1-2-9-2-10+7-3-4-0+5-3+0+10-5+1+10+0-8-2-0-8-4-4+1+5-6-4-2-5-9-8+2+4-2-5+6+8+6+10-2-3-6+2+0-4+2+7+9+7-3+0+1-7+9-4-2+9+4-6-8-4-4-2+9+2+9-7+2-0-8+4+0+9+5-5+5-7-3+4+6-3+9-0+8+5+9+2-8-6+10-7-4-6+2-5-10-0+0+5+6+6-4-2+5-0+10-4-5-8-4+1-10-6+2+10+7-4-4+10-2-8-1-6-2+3-0+5+2-7+0+4-0-9+9-8+1+10+4-8-2-7-2-1+4+3+9+7-0+10+0+2+9+0+1+4+2-5+4-0-2+1-6-9+8+5+3+5-1+8-1+1-1-0+10+8-3-4-7-2+5-9-2+6+0+10-9+1-4-2-10+8+0-6-3-6-2+0-1-1+6-9-9+5+0-0+10-3+8+4-8+0+10+6+9+10-2+6+6-7-1+3-4-6-3-3+8+7-5-6+4-9-8-8+5+2+4-4+10-2+4-7+0+3-7+0-3-3-7+10+7+4+2+4+4-5-6+4+9+9+6+10+10-5-9+10-9+7-0+0+6+5+5+0+6+7-9-9+7+6+6+4-9+3+4+7+1-2+9+9-2-3-3+4-1-9-5-5-8-1+10+0-7+0+8-4+4-9+6+6-2+0-5-4-9+6-1+9+6+0-1-4+8-5-3+0-1-5+3+2-10-0+5-8+0-10+7+4+1-6+9-3+1-0+4+6-1-0-5-6-3+2-0+9-3-8+3+3+5-2+6-2+8+8-5+4+0-2+10+9-2-3+9+1+3-2+6+7-2-1-0+0+3+7+10-3+8-0+10-5-6+4-0+1+10+1-3+2-7-10-7-6-10-0-8+2+2-5+3+9+0-1+10+8+5-8-3-10+3-3+5+4+6-9-2+3-1-5-0-8+8+9-3-6-0-10+3+5-0-9+6-3-1+5-7-8+6-1+2-8-6+5+7-1-1-9+4-8-2+5-6-10-9-2+7+10+4-4+5+4+6+0-0-3-1+1+7-1-4-1+0-5-8-5-4+6+7+8-3-4-0+9-7+2-1+7+1+2-2-7+7+8+7-1+8+5-9-7-6+0+5+5-1-2+4+3-1-5-0+8+5+7-7+5-0+8+3-2+6-7-7-9+1+10+1+0-3+6+7+6+1+7-7+8-9-7+7+5-2+10+0+10-3-5-2+9+10-8-3+4-0-6-3-1-8-4+5-6-2-0-1+1+3-2+7-7+1+1-8+1-3+5-6-7-9-3+0-8-7+9+0+8+1-7-9-4+1+4+7+4-10+4-0-5-2+3-4+10-4-1+4+8+9+8+0-6-1+0+7-10+9-7-0-4+6-7+5-10-4-6-8-5-3-5+7+0-8+6-0+5+5+8+10+4-4+6-5-9-1+7-4-6+2-1+9-2+10-3-1+9-5+0-6-8+7+3-3+3-6+9-1-3-7-7-9-1-2+0+4+9+1-4-1+2-9+3+5+7-6-8+2+0-10+3+7-7-4-8-4+8+2+2+5-7+6-6+0+6-7+9-9+7+0-9+0-10-8+3-8+8+8-10+9-8-10+3-10-0-7-0-6+3-3+4-10+2+6+2+7+5-4-4+6+4-8+1-4-5+0-4-6-6-3-1-1+8+2-7+10-3-3-9-10-3-4+8+6-9-9+10-0+7-4-3+6+0+6+6-0-2+10-3+1+7+3+8-10-0+6+10-0-3+6+6-1-8-5+1+9-4-9+7+1-7-8-7-6-4-3+6-9-10+10+10-5-10-10+6-4+8-6+5-3+0-5-1-5+8-4+4+4+10-8-0-3+10-1-1-0-0-9+9-10-0-3-5+9-10-4-7-7-9+3-1-9-6-9+5-7+9-7-6-1-2+8-2-7-6+5-2-1+9-2-8+4-3-0-1-6+8+10-7-0+0+4-1-6-7-1+0-1+8+10+10-2+3+2+9-1+2+9+9-9+7+5-9-3+7+3+1+10-2-10-7-7+3-9-7-3+2+8+7+8+8+8+5+0-1+4-8-0+5-2+2+2-9-7-8+9+6+4+3+4+2+7-0+4-7+0+9-5+4+7-4-10+8-5-10+4-10-2+6+0-3+5+4+8+5+3-3-5-4+4-3-8-7+4-2-2-1-3-9+3-7-7-4-2+9+0+4-1+0-8+6-5+4+7-6+9+10-8+7-0-3+4+7+8+2+6-8-0-4-6-0+0-6-5+0-8-6+0+7+3-0-0-8+0+8-5-2+9-6-3+9+1+7+1+10+5-9+3+9-10-10+2+10+0-0+1+7-5-6+3-10+7+7-7+1-3-5-10+2-0-1-0+6-4+1-3-10+7+10+0-2+6+8+6-1+2-2-3+3+0+5-9-6-4-6-7+9-4+7-9-2+0-5-1+8+2-9-8+10+9+1+5-6+4+5+7-2-2+4-2-5+8+6+3+9-0+5+10+6+4-7+5-5-6+3-7-6-0+9-4-0+7+2-3-2-8+4+2+4-3+6+10-2-5-1+5-0+6-4+0-10+2-0-9+2+5-1+9+8+4+5-10-9-2+8-7-2-3+9-1+5-4-5+4-6-2+10+5-6+6-4-2-6-10-0+2-8-7-3-3-0+6+6-2-9+5+2-5+10-5-5+10+0+6+1-4-9+8+3+2+4-2-3+10-5+9-7+7-2+1-7-10+2-5-5+8+9+5+1-5+5+4-7+3-5+8-10+3-7-9+0-3+8-9-4-1+7-3+10+4+9+4-6+8+9-4+3-8+9+2+2+3-10+1+3+7+4-7+0-10-6-6-2-8+4+6-5+0-0-6-8+7-9-8-0-10-2+5-2-3-1-6+10+5-0-4+3+5-8-2-1-0+1+2-5+0-3+10-9+8-6-9-10+5-2+1+5-4-9-6+6+7-10-7-0+10-2+8+2-1+1+6-3+0-3+2-7+10+0-6+10+2+6-1+10-4-0+7-10-9+3-1+3+5+7-5+0+10+6-3+10+5-5-6-4-9+6+7-0-5+2+5+9+7-6+0-8-3+10+0+9-5-6+10+5+6-6-3+6+10-3+8-8+9-6-1+0+3-2+9+5-5+4+6+6-4-0+10+2-5-3+1-9+2+6+10+3-5-8-9+8-9+3+3+10+8-9-2+9-2+2+3-0+1+9-9+8-7-9+10+1+6-5-2-8+6-5-10-2+0-9-0+6-10+8-5-0+9-10-4+2+1+6+3+9-1-4-0+1-7-8-9-6-1-6+7-5-4+5+0-7+2-0+10-6+8+10-8+4+2+5-0-0+6+8-2+4-5+1-3-5-7+9+4+5-3+0-7+2+6-1+10-7-9-8+6+9-7+2-8-8+0-1+2+10+7+10-3-3+7+10+2+7-4+2-10-0-3+7+2-8-1-1-5+1-1+1-8+0+6+0-4-3+9-5+1+7+9+4-7-6+4-8-7-8+4+10-5+8-5-3+3-10-8+10+5+2+10-2+0+3+10-6-4-2+0-0-2-2+0+7-0+5-1-8-3-2+0+6+9-5-6+9+6-8+3-1+4+0-5-2+6-6-0-0+5+3+3-7-9-0+5+4-10+2+3+3+5-8+3-9+9-9+2+4-1+6+5+9+10+7-10-5-10-2+9+7-5+2-3+2+5-0+7-10-9+1-2-7+3-6+3-10-10+6-1+0-0+5+2-4-3+4-8+4-2-3-6+3+9+5+3+3-6+9+9-1+4-2-2-2-5-3+0+9+2+4-1-4+2+0+7-6-0+9-6+7-0-3+4+7+7+4-8+8+7-3-2+0-7-6+8+7+6+5-8-1-6-9+6-5+9+5-1-10-7+6-4-4-10-5-5+3+0+7-5-7-6-9-3-10-4+2+10+1-4-0+1+2-7+2+5-4+3+6-0+5+6-8-10+4-8+9+4+4+9+7+4-6+8-5+0-4-0+6+8+3-7+4+6-0-6-3+8+4+9-2+5+5+10+4-3-2-0-9+7-9+3-5+0+7-0-2+1-9+9+0+9-8+1-2+7-9+3+7-5-10+8+1-3+9+2+2+4-4-5+5-1-2+5+6+0+9+0+1+9-9-3+0+3+10-10-10-9+3+3+9-4+1+4+8+1+7-5-9-7-0-6-1-8+2-5-0-6-3-6-3-0+1-0-6-5+7+10-3+1+5-8-5-10+0+0+10+10-8-5-4+5-5-5+10+7-10-3+4+2-1+6-4-8+1+8+1-3+0+4+1+6+7-5+6-0-0-1+7+0+6+8+10+2-8+9+2-5-3-1+3+1-4+2+2+5+2-8+1-9-7+0+2-10+9-4-4-3+5+2+6+7+5+6+9-6-7-7-4+2-10-5+9-7+1+9-5+3-6-10-10+2-4-2+10-10+8+1-10-4-1-9-5-0-8-1-10+4+8-1+10-5-7-7+5-3-1+10-10+5-4+9+3+4-8-4-6-1+7+8+0+1-2-9-0+10+3+7+7+0+1+8+7+6+0-5-2-3+8-8+2-9-1-7+5+8+7-7+9+2+7-1-8-7-1-10+1+9+9+9-8+9-0+3+5-10-2+7-2+5-7-2-6-7-5+1+6+6-9-9-4-2+4-7-8+2-2+8+2-0-10+4+4-1-0+7+9-1+6-6-0+7+2+10-1-3-4+0-1+5+4+1+6-3-4+10+7+1+3-1+1+7-0+1-10-1+4-8+1+2+7+9-3-1+0-0+3+9-1-9+8+8-6-1+10+1-5-3+0+4-10+5+2-5+9-6-10-1+0-1+0-7-3+4-8-7+2-4-7+0+1-6+2+1-5+6+2+0+5-0-9+5+9+6+4+9+1-0+10+1-2+2-5-4+6+7+5-8-10-0-2+0-5+10+3-0-6-8+7-10+0+4-4+10+5-7-6+2-10-3-2+4-2-8+9+6-3-4+0-5-6+8-5+9-7+4-6-0+10+5-9-2-5+2+1-10-7-4+3+7-6-2+10-4+5-3+1-0+10-0-4+4-5+7-6-7-5-7-1+7-5-7-10-3-1-6-4-10+4-9-4+10+2+10+10-8+3-7-5-8-9+5+5+0+6+5+6-10+10+10+6+10+1+9+4-1-2-9-5-9-8+5+5-9-6-3-5-5+10-10+10-10-0+6+0-3+9+6-9-8+3+9+1+1-2-9+7+3-10-1+4-5-6+5+1+5-5-3-1-6-2+2+1-4-6+0-0+0+5+0+4+4-1+1-8-5+3+8-8+0+3-5+2-10-2-10-4+6-9+2+10-9+3-4+8+10-4-7+6-4-10+3+9+5+3-6-0-7-2+8-0-9+1+7+7-4-1+6-4+6-6+5-4-10+1-3-0-3+2-1+7-4-9+5+10+6+10+9-3+4-0-7-5+3+3+0-4+10+8-6+7+6-9+7+6+1+5-1-8-4+9+7-4+9+6-4+10+6-2-9+4-3-1+0-6+6+3+7+7+1-3-8+7+9+2-9+6-5+8+2+5-1+7-0+5+10-7-8-2+6-6+8-3+1+8-0-5-2+5+8-2-0-5-9+9+1+5-8-8-5-1-3+10-4-4+7-9+8+7-5+4+2-3+0-5+3+10+0-9+1+2+10+7+9+7+6-9-10-0+6-2+4+7-4+8+3-3+0+8+0+8-3+3+5-0-9-10+6+7-4+5+8+7+10+5-2-4-0-8-8-9-1+9+0+6-10-8+2-2+5+9+7+8-0+7+4+0+3+9-9-2-1+9-8-4-7-10-7-0+5-5+2+8+3-0-7-7+7+2+6-4+8-0+2-8-4-6-2+2+6-5+8+3-7-8+0-10-2+4+7-1-2-2-10-9+10-10+0-9+6-2+1-8+2-7-5+7+8-2+5+0-1-4+4+8-4-3-1-10+9+2+9+7-2-7-8+9-10-4+0-9-7-6+2+6-0+7-8+3-3-4-7-8+3-9+5+3+10-4+6+2-2-0-7+1-1+6+4+6+2-0+2+1-10-10+1+1+5+2+10+9-6+8-5+2-3+0-3-9-10+7-10+2+5-6+5+7-8+4+10-3-10+3-0+6-2-9+0-9-1+9+2-10-7-4-2+7-9-1-8+0-0+2-4+10+10-9+9-8+7-3+9+9+8-3-9-6+1-6+6-2-8-5+6-2+9+1+9+0+8-3-5-9+7+9-0+10+1+2-10-6-9-10-4+3+10+6-3+4-3+5+6+9+7+6-7+5+9-4-6+10-8-9+1-0+6+2-3-6+3+3+4-4-9+3+6-0+6+0-10+8-7+8+6-0+2+10+8-3+0+3+1+8-0-2+0-10+8-2+1-1+0-6+10+7+2-6-9+8-5-9-4-6-7-8+10+0-4+7+10+4+0+10+4+7-3+3-6-5-6-1-6-7-4-5-3+4+3-6-8+7-6+4-3-6-7-2+0-0-7+2-9+7-5+8+3-8-5-4+8-3+3-4-10+10-4-0-4-4-1-6-2+2+2-3+2-8-6+9-6+1+1+3-5-1-2+3+3-5+4+3+7-9-8-9+5-3+1+7-0-6+9-1-10+0-1+8-10+9+0+6-1-8+6+0-5+3+10+1-4-4+10+7-3-9+4-0-3-3-7+3+1-7-8-2-4-8+4-3+1+8-0+6-10+0+10+2-2+8+4+7-1-8+3-6-5-8-3-9-4-3-7+0+9+0-1+9-3-2-1-5+0+10+1-0+8+3-4+5+8+1+9-3-0-7-5+10-4+6-5-3+8+7+7-1+0-6+6+5+10+1-2+8+4-7+6-3+9-1-9-0-4+9-10-9+6+2-7+0-4-8-1-8+3-6-10-0-2-7+1-10-8-2-8+2+10-8-10+8-1-1-5+7-10+6+5+4-10+10+8-9+0-8-6+8+6+5+9+3-6-2-7+2-5+5+9+4-8-6-0+10-3+7+5+6-5-10-7+3-3-9-9-1+8-6+6-8-4-1-10+2-0+4-8+3+1-10+7-1+7-7-4+1-0-3+1+5-7-3+5+6-8+8-10+3-5-4-5+5-1-0-0-4+1+0+8-6-9-8+9-1+8+6+3-6+7+3+5+0-6+6+9-7-8-8+4-9-1-9-4+6+9+8+9+9+1+1+8-5+6+1-8-0+5-3+3+10+8+9-7-5-6+6+4+2-9-3+8+0-1-5-10-2+6+9+5-5+2+9+6-3-10+7+7-9-2+9+9+6+5+8+9+7-2-4+10-10+2-4-8-1-2-3+9+5+0+7-5+0+1+10-1+4+8+10-7-1-5-5-0+7+2-1-9+1+1-6+0+2-5+0+7+4+8-1-2+8+2+2+3-6-9-3-2+3+10-0-7-7+0-3-9+7+10+0+2-3+0+0-3+10+1-6+9-5+6+3+4-1+8+8-9-0+5-9+4-6-2+9+2+2+1+6+3+2+6-2-4-9-0-8-10+9+2+7+6+6+10-1+8+3-3-10-10+10-10-4-7+2+1+3+5-7+6+6+7+6-1+8+5-10+0-2-7+7+9+3-9-2-2-1-10-3-1-10+1-7-3-6+7-0-1+7-9-0+1-3-7-3-3+7+3+4-2-5+5+4+4+4-6-2+1-4-3-7-3+5+1+5+10+0+2+9+0-5+6-4+6-9-5+2-4-9-4+4+6+4+2-0-4+8-5-7-8+0+8-8+4-0-2-9+9+2-7+0+1+9-6-4+5-5-9-1+10+10+9-8-0-1-5+8+0-7+3-1-10-6+9-4+8-4-7+3-5+8-10+6+5+2+10-5-0+9+0+5+9-5-6+8-8-7-6-6-10+6-9-2+9-1+1+5-2-2+4+5-6+8+3+6-5-3-5+9+7+8-5+10+10-6-6-6-10-9+3-10-0-6-4-0+8-3-2+3-9+7-2-10-8-7+10+8-6-3+7+6-5-7+2+6+0-10+7-10-4+10-9-9-9+2-0+6-2-2-4+3+3-6+7+10+4+6-7-9-9+1-0+1+4-10-8+4+10-1+3-1+6-2-9+9+7-0-0+6-8-5+7+2+8-7-10+4+4-0+9+9-5+9+0-8+4-3+3-3+5+3-2+0-8+8+5-5-4+8-6-6+2+6+10-6+2+2-2+0+3-9-3-8-5-7+6-4-8+6+9-7-10+8-3+8+2+4-3+8+3-1+6+4+0+7-10+6+8-9+4+5+10+4+2+7-9+4-10-6-7+4+9+0+10-5-1+9-8+10-1+5-8-8-0+9+4-1-0-4-7+2-9-6+6-10-3-7+4-10-0-9-5-9+0-0+4-7+8-10-9-3-2+2-7+6-5-5+5+6+4+8-7+9-3-8+2+10+3-0+1+3+10+1+5-4+6+1-0+5+10+2-7-6-1-6-0+0-3+2-2-8+10+8-1+2-3+4-4-6-6-1+10-7+8-7-8-4-10+9+4+10-3-0-4+7+1+4-4+5+2+3-1-2-9+5-5+7+8-3-6-7+2-6-7-1+10-3-10-7-2+2+3+0-8-1+7+4+8+8+7+8+1-4+6-4-8-8+0-1+9+3-10+10+9-9-5-2+9+4+0-1-1+7+6+8+9+0+6-9+9+1-2+2-6+3-0+0-1+5+8-4-5-4-10+3-8+9+9+7-7+10+2-4-2+9-8-1+7-9+3-10+6+10+4-7+10+0-2-1-9+0-8-8-7+3+8+7-7-5-9+10-6-5+8+10-8+1+1+8+9-10-2+9+3-4-9+4-8-8-6+2+1-9+5-3-2+4+5+8+0-5-3-6-4+4-3+1+3+4-1-4-9-4-7-6+9+2-10-3+9+10+1+6-10-8+2+0+1+2+9-1+7-9+9+0+7+9-1+1-8+3+0-8+0+5+8+7+9+9-6-8+4-7-4+8-3-10+2+3+3+6+5+4+8+7-5+9-3-8-7-0-3+9+5+7-1-2+8-1-2+10-5+2-6-5+3-10+0+8+9-9+1-2+1+2+7-3+2+2-7-3+2+10+8+8+8+3-3-3+1-5-0-2-9+1+10+1+1-3+5-9-4+7-0-4+6-7-2-9+6-0+8+9+5+8-8-1+8-5-7+6-2-10+5-7+4-10-1+1-5+7+3-8+4-8-10-6+7+0-8-7+9+9-10+2+8-9+6-6+9+2+1-8+4-9+4+10+6+4+2+7-2-9-3-5-6-6-1+5+5+5+2+8-0+8-7+0-4+5+5+8-3+1+0+9-6+3+9+2+0+1-10+7-10+3+5+10-2-4+9-8+1-5+2-9+2+3+10+9-10+6+0+7-1+4-4-3-8+8-9-7+3+9-1+4+7+9-6+9-2-6+3+8-5-7-5-8+7+10+10+7-9+1-1+2-3-5+8+1-7-1-4+0-6-1+2+9-2+4-7+6-9-4+0-2-8+9-5+6-5+9-4+6+9-7+6+3+5+0+8+6-1+3+5-2-6-1-8-3+7+2-8+6+1+0-1+10+4-1+7+4-4-6+0-1+4-7-0-6+1+7+9+6-2-10-4+3-2-1+9+9+6+9+4-5-5+7-7-5-4-7+0-10-0+6-4-0-1-6-6-0-3+1-9-5+2+0+9+7+3+3+7+1+1+9-1-5+7+3+0+7-9+4+0-8+4-3-1+3-10-6-4+0+1-6-10+10+6+2+6-2+5+3+1+6-3+5-10-10-7+10-10-0+4+9+0+9-8+4-5+9-4+5-0-2+3-2-1-3+3+7+4-9-3-7-10-10+2-10-10-4-2+7+3-0+2-1+9+4+7-3-1-8-2+5-8+10+2-10+1-7-2+6-1-8+4+4+7+10+5+5-8-7+7+1+4-0+1-3-3-5+4+3-1+5-2+4-9-3-4-10-2-10+6-0-4+9-1+4-0+1+7-6+8-9-1-0+1+9+9+3-0-0+0-1-7-6+7-9-2+7-4-1-2-9+4-8-5+4+6-4+1-7-7+3-3-4+10-5-3-10-6+7+1+3+2+10-2-7-6-6+2+4-0-5+3+2-4+3-2-6-0+1-8-7-5+1+5-4-4+8-2-4+7-1+1-0+9-5+1-9-4-1-6-3+2-7-0+0+4+1+3+5-6-5-3-7-7-8+6+6-8-3-9-5-6-4-7-9-9+5+2-1-9+2-8+6-4-5+6-9+1+3+2+2+8-2-10+5-3-3+3-9-9+3-5-10-2+4-10+3+7+2-9+1+5-8+1-7-9+10+5-1+6+3-9-1-7+4-6-3+10+8-2-7+7-0-10+2+8+10-1-7+8-6+0-0-1+3+4+2+8+10-10-4+6+10+8+2+4+6-1+2-8+9-8-0+9-9+7+7-1-5+5-8+2-8+2+10-5+5-2-4-0-3+5-9+6+8+5+9+4-3+10-10+2+1+6-9-2+9+1+0+2-6+8+1+4+0-10+8-0+4-6+9-2-6+10+7-9-3-0+8+0-2+1+2+3+3-3+1-10+7+4+7+2+10+10+7-1+0-8+7-7+5+2+5+3+3+3+9+9-8-2+10+7+5+9+8+10+10-10-2+9-7-8-4+4-3+2-0-0+2-9-0-2-4+2+8-6+3-10+4-4+6+4-2-10-3+4+4+1+10-3+5+2-5+2+0+4-9-5+2-7+7+0-6+3+1-3+7+7-4-8-0+0+5-7+0+2+10+3-2+4-2+9+9-9-6-4+2+2-5+4+7-7-2-10+8+8-0-5-2+9-9-2-4+2-10+2-9+5-0-4+5+10-7-5-8-7+7+6+8-0+0+4+8+1+6+2+0-4-2-7-6+2-10-5+10+6+10+10-2+9+0-5+6-10+2-7+8-4+0+7+3-2+8+0+0-9+2-7-1+4-1-8-8+2+7-8-2+7+2-5+3-5+8-1+10+2+10-5-5-1+1+6+8+8-2-9+0-7+5+0+4-3+10+9+4+0+6+3+3-1+2-7-8-9+8-5-7+4+9+1+4+9+10-2+5-4+2-4-1+2-5+6-7+5-4+9+9-1+5+9+2-5+5+3-1-10-3-7-8+5+8+2+6-1-9+1+1+3-0+7-9+2+1+10-0+0+9-5-1-2+2-5-0+9-0+9+3+2+4-10+3-1-1-10+6+9-4+3-9+10-4-0+7-6+2-8+3-0-9-9-8+0+3-8-10-7-2-3-1+4-8-3-0+0+3-8+1-5+2+2-4+0-0-7+9-8-3+4-4-3+3+5-7-8+7+7+5-3+7-4+4+8+4+10-6-0-5+9+7+8-5+5-3-3-0+8+3-10-2-6+6-7+2-1+4+8-9-2-4+9-7-9-3-6+1-10+9+2-9-0-4-3-6-4+7+8+0-3-6-1+3+8-5+4+7-5-2-6-9+9-1+9-7+1+4+6+7-4+7+9-4+5-5-5+9+2-1+9-6+8-2-8-10+6+1-6-5+0+3+2+7+6-1-3-9+9+4+6+10-4-4+3+1-0+3-6-0+1-9-1-0-7+2-7+0+6+10-9+9+3-7-3-4+7-9-4+8-5-0+6+9+3+4-6-9+9-1+5+9-5+7+0-6-4-0+5-10+6-7+8-7+8-3-8-9-9+2+10+8+7+4+8-2+3+10-0-5-7+6+1-8+10+6+8-0-8+10+3+4+1+2-10-6+6-3-0-3+7-7-10+6-10-9-8-1+3-2+3-0+5+0+1+7+3+3+1+2-10-10-2+8+3+2+5-6-1+3-1+4+2-0+3+7+9+9-1+10-6-9+0-5+4-0-3-8-6-3+7+2+4-5+4+3-7+2+9+1+4+10+7-1+8-10-6-9-0+8-9+7+4-6+0-9+10+8-10+3+4-1+8+10+0-8-3+0+1-9+6+4+9-4+2+4+7+9+8+3-6+0+6+4+10-5+3+4+4-9-6-4-9-6-10-3+3-6-9+2-4+2-10-5-6+1-2-5+0-2+8-4-1+10-4+8+9-2+5-0-6-7-8-9-9-10-10-1+4-5+6-0-0-9-4+10+3-1-6+2-3+5+5+0+9+10-5-0-0-7+9-1+0-0-10-8+7+9-5-1+5-3-7+3+9-3-0-1-0-3+6-2+10+4-9-3+2-1+10-5-9-3-6+8-7+3-4-10-10-8+0+3+5-1+6+4+5+4-6-3+5-8-10-5+3+8-0+0-7+2-0+0+8+0+3+5-6-4+6+8+8+9-0-7-10+10-9-2+9-7+1-0-4+8+7+5+4+9-6+4+10-3-2+1+0+6+7-4+3-1-6-1-10+0-7-3-8-5+0+8+10+1-0-10-10+0-2-3-9+5+10+0-9+1+9-3-4+7-6+3-5+4-8+3+5-1+5+7+6+5+1-8-3+6-8-7-9-5+3+1+7+1+1-1+2-9+7+9+8+0+8+0-10+5-0+5-3+0-8-0-9+10+0-2+1+10+2+4+7+0-6+4+4+1-8-1+5-6+6-6-9-4+10-2-1-0+3+9+0+0+8-1+8+7-7-5+5+2+6+6-4+2+1-3+2-9-2+8+8-6-8-10+3+2-4-10-7-8-10-4-8+7-10+1-0-8+3-7+3-1+4+2-6+6+10-4+6+3-10-3+1-4-2-10-1-3-4-5-1-1-0-1+9+10+8+1-7+5+3-3+2-9-0-2+6-8-3-6+7-1-2+10-1+2-7+6+1+1-4-5-0-10+8+6-9+0-5-7+8+1+9+3-8-8+6+1-4+6-4-7+1-0+3-2+6+7+5-0+1+8-4-9-4-9-8-3+2+5+8+10-3-1-3+10+4+0-3+2+2-4-7-1-3+2+6+10-4-9+6-0-10+7+5+8+8+10+9-0-2+10+10+1+0-7-10+3-1-6-1+3-4+1+10+3+6+4+6-6-0-0+7-0-8+6-9-1+5-1+5-5+5-3-0-8+0+4-5-4+6-4-7+7+9+0+8-1-5-7+6-10-3+9+7-1-3-3-2-2-7-9-4-6-7+3-1-7-9+9+5-10+1+0+3+0-2-10+8+10-8-9+4+2+5+0+5-1-8+6+0-10-3-2+8+5+4-5+8-3+7+9-3-3+3-5+1+2-5+0-4-2+10-7-6+5+6-9-8+9+9-5+8+7-7-8-10-8+2-7+2+2+5-6+6-5+6-0+7+10-0-7-4-0-3-8+10-1+10-5-10+6+4-8-0-6-1+2-4-10-6-0-6+6-3-0+5-8-7-0+10+1+1-2-8-5+9+1+2-1+7-10+5+9-2-2-2-6-4-2+10+3+0+6-7+6+10-8+1+0-7+4+9+4-9-9-0+5+10+5-8+2-8+4-7+3+3-8-1+9+1+7-0-9-2+1+3-8-4-8-10+0-3+0+1-10+1+1-6-10-3+3-2+5-10+3-6+9+6+6+2+0-7+7-1+0+8-10-3-10+0+8-1-4+4-10-2-10-8+0-0-3-1+4-9-9-2+9-0-7-5+10+3+3+3+1+2-5+3+7+4+10+1+4+0+10+6+2+7+7+9-4+6-4+5-4+4+0-0+6-1+3-9-3-9+10-8-9-2+4+5+1-10-3+1+2-5+4+8+5+2+10-2+9+4-6-6+2+6+9+0-0-5+7-4-3+0-2-9+10+7+8+0-1-8+3-9+8-1-10+4+3-1-2+9+3-1-6+3-7+1+2+4+9-5+9+9+0+2-0-0-9+2-7-1+9+6-8+4+8+2-3+2-10+1+5-2-1+5-8-5-0-6+5-0+9-8-2+7+7-9+8-10+6-8+8-1+4+5+7+8+4+0-3+10-6+4-4+8-4-1-8-2-0+1+7-2+7-8+7+0-5+1-7-7+3+0-1+9-6-10+9+10-4-6-3+2-4+1-5-6+7+7-7-5-10+0-0+7-4-8+7+6-1+9-2-3-0-10-2+2-5-9-9+2-0-4-6+8+10-1-1-0-9+9-1-9+4+8+3+2-5+7+2+1-4+1+6-6+3-1+7-3+9+4-7+0-9-0+9+5-7+8-2+1-8+2+7-6+6-7+4+0+6-8-8-8-2+2+4-2+5-2+10+5+4-6-4-1+10+0-8+1-2-4+4+9+1+1-8-4+7-7-4+5+3-4+9-2+0-9-5+9-0+0+7-4-2-2-5+8-2+9+10-9-7-3+9+6+10-9+0+0+3+2-8+3+10-4-5+6+8-2+8+10-1+9-4+8+1-10+5-3-2+0+1-9+3+6-7+0-6-6-4-9-1+8+0-1-9-7+7-5-0+3+2-6-8-5-0-8-6-8+3+6+2-7+0+2-4+3+0+10+9+1+4+6+7-5-1+7-1-4-0-7+0-5+3-10+3+6+0-7-10-7+6-8+7+9-10-9-4-7-0+7+4-1-6+6+7+8-0+5-3-0-7+9+3+5-4-5+0+4+7-10-0+9+2-4+9+9+1-8+2-7-2+7-0-9+2-3-2-8-2-5+8+6+8-1+0-9-1+3+9+4+0+2-2+8+6-7+0-10+1+1+2+7+7-6-3-10-0+4-0+8+1-10+0-0-4-8-9+6-3+3+4+9-6+7+5-7+8-1+0+1+5-9-1-8+5-8-1-4+2+10-4+6-7-8-0+6+8-3+0+4-3+9+7-8+7-6+5-8-9-7+9+7-0+2+0+9-7-7+9-9-3+1+2+7+2+8-1-0-10+3+7-3+3+7+7+8-10+3+10-8+2-4+6-10+10+4+3-8+5+8-0+3+5-10+3+0+2-7+4+7+7-8+2+1+3+7+9+0+4+10+8+9-10-7-2-0-0+8-9-6-10-8+9-4+2+10+7-8-9+8-3-0-1-7+0+10+4+0+10-1-9+7+5+1+8+9-7+2-6+5+4+8+2+5+3-7+1+8+0-0+9-1+0+7-8-4+4-1+2+4+10-9-2-5-9+4+1-7-0+4-8+10-1-10-9-1+3-4-2-3-0-3+1+0+3+4+1-8+8+4-10+6+10-4-9-4-1+8+1+4+9-2-7-8-2-6+4-7-7+5+1-1+6+8+8-5-8+1+2-4-8+6-10-6+0-3-9-4+0+3+6+10+10-6-5+4-4-10+4-6+1+10+1+7-1+10+3+2+0+3-10-9-9+3-3-8-1+10+10-4-8+2+1+4+2+2-7-2-7-1+9-5-0+8+6+7-5-7-1-4-3-0+6+8-8+3-2+3-3-7+3+7+0-6-6-0-2+3+4-6+7-6-8-9+10+6-0+4-9+7-1+6+7-3-0+4+5+3+6+5-0-10-9+0+3-6+2-1-3+5+5-2-2+10-10-1+6+7-7+5+7-4-5+9+1-0-4+9+6-0+7-7+4+5+6-2+4+10+8+8+6+0-3-5+4-6-6-5-1+9+6-2+3-8+10+5+7-6+8+9+8+4-9+0-3+4-10-5+1+9+2-4-6+9-6-7+8+6-6+4-6+10-2-5-6+8+9+0+4-9-6-4-9+10+0+3+5-0-5+6+10+3+6-9+0-5-0+9-4-4-0-6+6+6+2-0+9+9-5-9-2+10-5-0+5+7-10-7+0+5+5+2-3-5-7+10-3+10+1-10-10+1+0+3-6-4+10-9+3-1+4+4+1+10-4+8-3+2+9+5+5-8+1-7+8+1+8+7-5+8-4-2+10+3-1+8-6+2-1-4+0+7-2-1+1-7-5-7-0+5-2-0-0+2+3+5-7-2+2+0+2-3+10+6+1+5-7-9-9+2-0+8-0+5-7+6+10+5-10+7-2+7-10-5-10-7-7-0+5+7-8+2-4-6-0-1-3-1+9+2+0-4-1+9+10-6+0+5+4-1+5+3+10-9-5-10-7-2+1-6-6+5-5+9+10+2+4-5-4+3+6+5-0-2-4+6+7-3-9+8-2+1-7+10-7+9-6+9+4-7+2+0+6+1+1-3+9-1-8-4+1+3+3+7+0-6+6-10+9-1+5-10-1-10+7+0-5-3-10-6+9-8+3+8+2+1-1+3+3+10+8-6-2+7+1-2+0-4+10-0-1+5+10-0+7-5-4+8+1+10-5+6+1+7-0+6+10-6-4-4-7+2+1-0+1+10+6-2-10+1-10-0+8-1+3-2+10+6+7-5+9+2-3-2+6+6+0+2-4+7+0+0-6-2+10+8-10-0+7-1-8-2-7-2-8+10-5+0-5+0-0+0-9+3+2-6-3+10+7-0-3-3-2+2+7+6+0-10+5-7-5+7-9+10-8+6+10-4+0-8-7+9-7-3-9-8-10-8-4-10+9+6+2+10-0+3+1-6-6+2-6+6+6-3+8+4-2+7+10-0+1-3-1-6-5-5+8-9-0-9-0-4-9-1+5+3-8+0-3-2-8+0-8-10+0+0-9+3-1+3-10+8-1-4+9-4+1+7+10-6+9-1+5+7+5+5+10-1+6+4+6-10+8-0-3-10-1-1+8-6-7-6-0+2+3-0+8+2-7+1-7-1+10+7+8+5+0-1+10-7+0+2+10-6+8-0+3+9-10+0+8-3-3+10+9-3-8+6+5-8+4-1+6+2-1+1-7-2-4-7+0-9-5+1+5+10-2-5-4+1+0-9+9-3-8-9+4-7+6+1+1+7-6-0+9+5+5-4-10-4-6+10-7+3-7-10-3+5+4+2-0+10-5+5-2+2+2+1-7+4-0+1+0+0+6+10-2-4+4+4-9-1+7-8+5+5+3-0+9-3-4-1-1+5-5+5-2-10-6-2+3-1+10+3-10+5+1-9-4+8-7+9-7+9+0+2+4-4-10-9+7-9-4+9-9+8-2-2+0+5+1+3-7-4+3+3-2+4-1-8+7+3+8+3-0-3+9-3-5+4-4-5+3-1-10+5-8-10-1-3-2+4-10+9+1-6-10-10+4+6+5+6-10-5-2+0-9+9+6+7+8+6+3-3-10+3-9+7+1+1+4+3+6+9+8+2-10+0+4+1-1+3-0-8-4-10+2-5+2-8+8+7-0+9-8+9-0-3-6+1-9+5-0+0-9+7-9+5-2-8+9-8+5-7+9-10+7-3-1-7+7-7+6-7+8-1+5-7-2+10-6-2-5-5-5-1+8+2-9+6+8-4+10+7+9-3-1-4-3+6+3-6+9+0-8-2-10-0+10+1+0+3-1-0-0-6-2-9-9-0+8-8+5-9+4-6-4+8-8+7-8-1-9+8-0+3-10-10-2+0+3+5-7-8+4+4-8-8-2+0-0+0-4-2+3-4-1-6+0+4+7+1-6+8+10+8+10-4-4+6-5-5+9+10+8-2+4+1-3+10+9+4-9-1-1+2+5+6+4-6+10-10-6+6-9-4+8+7+2-2+1+6+4-8+9-10+3+10-0-1+1+10-7+9-5-7-10+8+9+6-10+0+9+0-1-8-7+3-4+7+0-1-2-6+4+10+3-0+3+6+0-6-7+7-1-9+3-4+3+7-7-5+3+0+6-3-2+3+0-10+0-8-2-0-1-5-10-0-8-1-5-3+9-7+5+4+3-0+9-6-0-1-9+6-10-7+9-0+8-6+5+2+10+1+10-2+3-6+2+4-2+0+7-4-10-6-9-2-8+5-1+1-0-8-9+1-9+0+7+7+9-1-0-3-5+7+0-2-4-9+3+1+1+8-10+6-7-3-1-10-6+4-6-5+10-10-9-6-0+5-9+0-2-0+4-0-3-2-10+7-7-5-5+7-0+8+0+8+5+8+7+3-1-0+10+4+4+9+5-9-7-5-3+1+1-0+7+7+2+10+7-0+8+8-5+8+8-1+3+6+10+4-8-8+3+0-10-4-6+4-0-8+1+6+6+0-1+0+3-9+10-2-2-2+6+4+0+0+9-9+4+7+9-3+7+1+7-1+8+6-10-5-1+5+8+6+1-10-3-3+1+2-6-6-7+6+4-9+9+3+7-6+9+0+1-10-0-3-6+6-6+2-5-2-10-2-8+10+8+0-2+9+9-5-9+1-1-3+7+0+9+8-10+5-3+10+8+6-2+2+8+3-9-2-0-4-4+2-6+10+5-0-4+4-10+6+0+2-8-7+9+6+5+2+3-7-3-4+1+0-0-4+8-2-10+7+8+6+8+6-3+5-1+4+8+0+10-10-3-1-2+9+9+0-5-1+6+9+2+7+6+8-8-8+10+9+9-6+2+0+5+9+1+0-10-6+10-10-0-3-1-3-7-4-7-9+9+6-8+0-8-5+2-8-9-4+3-0+5+4+9-4+6-3-5-4+3-5-2+1+6+5+4-3-10+2-0+7+2-6-7+2-8-2+6-8+3+0-7+1+4+0-0-3-2+5+6+1+0+9-5+7-2-1+3-9-6-5+7+4-5-7-8-9-4-2+4+1-3-2+3+9+2+7-8-1-3+10+10+8-10-7-8-2-0-1+3+1+6-0-7+2-4-6-5-7-6-5+9+6+3-10-1-2+10+0-7-3+9-1-6+3+3+8+2-0+8+0-2+0-3+1+7-9-2+4-9+9-0-4+6-9-0-7+8-9+8-0-6-0-4+7-7-8+3-3+10+4+4-5-4-8+1+10-6-4+2+0+4-6+5-7-3+1-1+0-9+10-6+10+8-5-7+1+5+8-10+1+7-5+2+8+3+3+9+2-4-2-4-5-5-5-3+8+3-7+6+8+9+4+0+9-8-5+1+1+5-1-7-10+8-6-10+7-6+1-8-8+2-2-9-1-7+10+10+1+1+5+8-1-3-1+10+3-10+3-6-5-7-8+5-4+4-5+8+9-1-6+1+7-2+1-10-9-8-1-1+0-1+5-1-5-10+1-5-5+9+6-3+10-6+3+6-1-8-10-6+7+4-9-2+4-5+6-3+3+1+6+0-9-1-9+10+0-3+4+5+7+4-2+0-0-4-2-7-7+0-7+7-5-1+7-2+1+9+9+0-3-3+5+7-7+3-5-3-0-3+4+8+2+8-10+6-4+8-6-0-8-2+2-9+6+0+8-8+3-1-7+10+5+9-8-5-9-6+3+6+10-0-9+3+6-2+7-6+4+8+0-8+7-0+2-2+2+5+10-5+0+9+10-4+5+10-8-10+6-0-7+6+3+3-6+3-2+6-2-3-0-3-9+3-8+4+0+10+7-8-5-8+8-0+9-6+10-0+5+9-10-2+2+3+9+1+3+2+7-2-2-3+0+10-5+5+7+10+8-3+5+0-1+2-5+7-7+10+4+7+7-8-6-1-7-6+8+3+10+10-10+0-8+10-1-6-4-0-2+8+5-8+8-7+9+2+3-3-9+7-10-9+6+6+3-4+7-2+2-10+3+3-9+9+3-1+3+0-5-4-7+4+10+9-9-6-4+8-0+7-2+8-8-9+7-2+1+4-8-2+3+7+8-4-5-7-6+10+4+1+2-9+9+1+4+10-10-8-2+2-3-10+2-4-2-9+9+1+6-2+10+7+3-10-9+5+0+1+10-0-2+1-3+9-4-5-10-2+2+2+6+7+1+7+3-10-1+7-10-4-5+1-9+3+6+4+9+1+0-5-4+2-5-10-4+4-4-5+6+6-6+2-10+8-10-10-7-9-9+4-5-6-4-2+10-5-1-0+2-4+1-5-8-5+0+9-6+4-10+6+7-3+2-7-5+5+5+2-4+8-1-4+1+9-7-4-10+2+7-9-10-1+4-3-0+1-10-9-4-1-9+6-3-5-6+10-1-2+2-1+9+9-8-8-1-2-7-4+2-2+10+0-8-7+9+6-1-0+0-5+3-8-8+4-9+8+4+4+0+6+10-2+6+7+0+0-3+4+10-0+0+2-3-1+5-1-4+8+9-8+0-8+0-1-0+7+8+6-10-0-3+9-3-10-7-2-4+6+6-2+8+1+0-8+8+0-8-5+8-8-6+2+1+2+3+2+7-0-10-7-10+9+6+6-8+7+7-9+1+10+6-8+10-9-8-5+9+0-9-10-7-6+5-1-7-2-4-3+1+3+5+3+4+8+6-7+7-6+10-6+6-5+10+1+8-8-9-8-9+7-5+7-8-7+3-1-10+7-3+5-5-1+7+8+3+5+9+8-2+2-7+2+1+7+3+7-3+4-7+9-0-5-10+0-3+5-9-5+10+5+3-5-8-0-5+5+5-2-3+2+4+4-7-9+6+10+10-4-8+8+10-4-5-3+9+10+5-0-6+5-5-9-0+1-8+3+1-0+6-2-2+7+0+2+3-5-6-2-0-2-7-10-2-7+4+5-9-8-2+5-10+1+1-0-4-0-1+1+6-10+6-3-6-5-3-10-2+7-10+9-8-10+8+6-8+1-0+8+1+10+1+9+3-6+9+1-8+10-0-5+0+6-4-1-5+3+5-10-4-10+7+10+4+3-7+7+4-4+0+10-2+5-8-1-1+1-1-1-5+9+2+3+3+5-2+5+9-3+4+9-8-2+3+6+5+0+3-1-10-8-1+5-10+0-7-7-5+0-9-3+4-9+7-9+7+0-10+10-10+2-2-2-6+6-4-1+1+0-4+5-1+5-1-6-1+8+8+1-8-0-9-3-5+0+10-7-8-8-5+2+10+9-5+6+10+5+3-0-7+1+8+0-6+1-6+0-7+5-7-2-8-9+1+0+4+8+9-9-8-1-7-3+5+0-8+4+1+4+6+10+9-6-6+2+9-5+0+1+1+6-8+2-3-6-3-4-6-9+1+9+5-8+3-4+6+5+7-3+0-0-7-3-8-6+1+6-7+1-1+7-7+5+0+1+4-9-0+1+3-9-0+2+1-3+8+1+7+8+0-3+9-4-3+6+0+2-2+9+0-8-8+7-8+1-7-3-7+0+8-1-1+2+2+10-1+3+8+9-8+7+6-9-6+2-2+3-6-1+4+0+5+1-7-9-10-4+0+7+8-4-5-5-4+7-7+0+7+5-3+7-4+5-2+5-7-9+1-9+9+10-2+3+5+9-3+10+2+6+0-7-6+6-0-10-3+7-0+0-3-0+4+9+4+7-4-6-2+8-4-6+3-9-3-7+4-3+3+5+4-3-6+10-2-5+0-5-2+8+10-7+5-4+4-2+8+5-4-0+7+7+8+1+7-9-10+5-8+9-0+3-0+2+10+5+8-4-2-3-4-8-2+4+6+4-7-4+8+7-10+1+2-6-10-9-2-5+8-2-5-0+2+1+3-8+4+6-9+7+8+8+0-8-7-10-4-3-6+10+6-4+0-9+8-1-5+0+7-0+0+5+6-5+10-0+9+6-5-6+1+8-10+2-3+5-7+10+10-5+9+5+8+1+3+9-0-2-3-0-7-0-2+4-10-5-9-6+5+2-5-1+0+9+8+9-0-1+7+9+4+1-10-7-5-4-5-8-10-10+8+0+5+6+7+3-10-6-8-6+6+3-9-8+0+3+2+5-7+4-6-2+2-8+3-4-2+3-9+2+9-5-6-1-4+4-9+7+10+8-10+5+3+5+2-6-6-4-5+5-0+1+0+4-1-7-0-1+4+7+1+6-10+5+1+8+10-1-8+9+5+10+4-5+0-1-5-5-9+3+10-6-0-7-4+2+9+8-3-5+8+10-7-8+2+10+0+7+3-5+6+2+10-10-3+0-5+6+5+8-1-10+3-1+8-1-2-0+8+4+3+8-3-7+9-2-2-9-8+7+2+8-9-7-10+10+9-3+7-2-9-0+1-4+0+7-2+8+6-7+0-2+9+1-9+3-7+2-2-1+7+4+5-0-0-0+3+7-8-0+9-6+2+0-4-1+7-9+9-7+7-0+2-3+10-2-6-5-2-6-6-2+4+6-5-8-2+7+8-7+6-1+8-2-4-5+9-3+9+3-7-8+6+8+7+7-1+4-0-0+8+9-1+9+1-4-9-0+10+3+3-1+6-1-5-7-6-4-3+4+0+1+1+8-7+5-3-2+8+1+0-8+9-5+4+8+1+3+8+1-2-8+10+8-10-0-10+7-5-3+8-7-6+5-8-7+3-8-10-10+3+9+8+5+1-3+4-2-10+6+10+2-4-0-8+8-0+7+10+7-1+3-1+7-10+7+1+7-4+6+7-6+8+7+9+3+8+0-4-2-4+6-10+5+1-2+9+7-5-1-8-9+10-1-2-2-7-3+2-4-3-8+6-3+1+10+9+7-0-7-4-6-1-6-9+7+8-8-5+9+6+5-5+3+5+9+5-5-8+8+1-6-2-0+7+4-8-7-10-10-10+0+10+3+7+9+0+8+0+2-0-4-0-0-2-5+3-0-8-4+0-9-3-0+1+10-0+4-5+3+2-4+8+3+9+10+4-9+7-10+8-10-2+0-1-6+5-7+8-1+8+2+5+3+7-6-1+10+9+10-0+8+7-9-3-4-7+7+3-1+0-3+7-10-5-5-9-3-4+5-1-3-5+8-6+2+10-7+0-7-6-3-4-10+3+10-9+4+4+0+6+8-1-1-9+2+1-5-8-7-10-6-4-2-0+9+2+5-6+0-1-8-9-5+10-4-8+3-1-3-8+5-0+2+0+2-9+2-8+1+4+9-5+1-5-1+9+1-1-4+6+5-5-0+1+10+6-0-8+4-7-2+1+10+0-0-4+2-1+2-7+1-3+2-10+4-9+2-6+9+7+3+4-10+5+0-2-2-8+9-8+0+9-8-4-6+7-2-1+2-9+7+4-5-1-1-1-0-10-5+8+9+0-0+5+3+5-4-3-4-9-9+8+10+0+7+8+7-10+2+1+6-1-4-9-0-1-6-9+0+10+1-2+9+1+6-8+9+8+5+8+2+6+10+2-8+7+1+1+6-3+8+1+6-5+1+4-6+9+10+10+4+5-7+4-9+6+8-9-5+9-2-6+5+10+0-2-8+7-1-9+1-6-4-7+6-1+4+1-1+10-1-7+1-4-1-1-2-7+2+1+2+8-3-10-7-1-4-8+4+9+8-1-1+6+6+3+8+9+9+7-10+2+1-5-1+7-10-7+2+5+1-7-8+10-1+6-0+5+3+6-8-0-8+0-5+5-6+6-9-3+9-4+10+10-1+6+5-2+8-9-2-7+2-8+8+9-4+3-10-4-3+8+1+9-8+3-3+6-0-5+7-10-8-3-3+4-9-3-3-0-5-3-2+10-2-5-5-8-4+10-9-7-8-3-1-10+6+4-1-4+8+7-6+5-10+5-10-7-3-1-3-9-2+3-0-7+2-2-7-2-10+8+0+7+1-5-0-0+4-1-1+8-5-1-8-7+9-0-8-0-2+9+7+9+0-8-7-3-8+0+10-10+6-5+5+9-8+5+6-5-4+5+9+8+5+0-7+8-7+6+9+1+0+3+10-9-1+10+7+8+6-2-9-1-8-6+10-0-2-4-2+2+8+3-6-3-3-1-10-1+10+6-7+5-3-9-10-2+9+0-7+5+8+6+1+8-3-3-10+9+1+0+3-9+7+6-10+3+1-1-1+2-5-4-8+2+5-6+2+7+1+3-4-6+4-5-3+4-2+7+8-9-8+2-9-0+4-2+1+5-6+3+8-2+9-4+3+9-7-8+7-4-6+6+8-5-3-8+4-2-10-9+8-10-8+1+7+3+5+10-5+4-6+0-3+1+4-6+8+7+3+8+6+9+3+4-10+3+1+10-10+6-1-10-5-0-6+1+0+6+8+4+4-9-1+9-4-2+0-8-6-1+9-4+6+1-2-8-10+5+6+3+9-8-4-10+1-6-9-10+7+6-3-3-4-9-9+10+10+8-7-3-7-10-1+7-1-7+0+8+9+9+6-2+2-4-2+2-4+3-5+2-6-4-5+1-0-4-9-5+8-4-3+4+2+4-9-4+2+4-6-6+4-10-2-5-5-6-10+9-10+8-4-2+2+3-1-1+8-3-10+4-9+2-6-2-0+2-7+9-7-10+0+2-0-4+9+3+7-3-3+6+3+0+10+0+5+3+0+10+5+5-3+0-7-6-4-5+10-10+6+6+10-3+9+5+5+4+7+10-3+0-2-8+8-2+2+3-8-6-5-0-6-5-5-0-9+3+7+9+1+0-2+2-0+5-5+6-8+3-6-10-7-6-5-7-8+7+4-5+8+6+7-6-3+1+5-1+10+5+1+9+10-1+2-3-2+3+0-5+3-3+3-5+1-5-1-3-9-9+0-10-5-5-9+7+6+9-9-7-0-7-5+2-10+6-8+4+10+0-7-2+4-7-6-5-7+1-7-5+0+1+5-8+7+8-2+1-8+10-4+2-10-0-3+9+4+3+6-10-8+1-9-9+8+2-6-1+3+4+6-3+6+10+9+3+6-6-2+2+10-8+2-6+9+0-5-10-1-9-3+8+9+0+9+7-8+4-2+2-0+10+2-8-5-3-5-8+7+2-0-6+6+2-4+2+7+8+10+1+9+0+9-0+3+5+5+2-6+9+8-7-10+4-10-6+7+8-9-4+2+3+4-7-6-7-3-9+3-6+6-1-7-7-0-3-4+10-0+1-8+8-0+4-9+2+1-7-9-4+9+9-1-1-1+2+0-9-3+3-7-4-10+8-2-1+0-10+0+2+10+2-9+6+4+1+10+5+8+4-10+6-9+0+7+4+2+0+1+5+3-6+3+1-5+8-5-1+1-2-8-3+2-9-2+1+9+6-10+7-7-0-2-1+6-8+9-5-5-10+6+4+2+3-2+10-7+7-3-3+5-1-2+0-6-4+5-10+10-6+6-1-9-10+10-5+1-10+4+7-5+6+4-5+8+5+4+3+3-6-1+5-8+10+0-0-9-3+3+5-7+7+6+8+9-1+1+0+6-5-4+6+3+6-4+10+7+8-2-10-1-3+3+0+10-7+10-10+4-10+4+4-9+5+1+5+3-5-4+4+8+2+9+4-0+10+10-7-0-9-9-10+3+1-3-6-9+7+2+1+5-8-4+6-3+10+0-5+6+1-8+4-1+10+5-4-3+5+10-8+0-9-8-1+10+1-5+8-3+2+6-5-1-1-7-2-3+6-6-3+0+6-2+6+6+9+10-2-6-10-9-5-3-4-10-3+5+3-9+7-7+4+5+0-10+2-0+0-1+3-2-5-6+5-8+10+6-3+7+3+10-8+1-7+3+9+2-7+7+1-6-6-2-1-2+7-1+9+2-8-2+6-4+5+3+10+2-5-8-7+4+6+9+6+10+0-8+0-5-4+2-8+3+5+9+9-0+6+3-8-9+4+2+7-8+0-5+7+3+5+0+10-4+1+2+7+4+1+4-4+8-2-4+2-9+6+0-7-3+5-1-4+6+8+5-3+6-8-7+0-2+6+9-9+8+5-4+10+6-5+10+2+9+8+3-7+3-3+4-7-7+4+0-5-1+1-10+6-3+0-0+8+7+9-10+2+1+10+7-5+4-8+8+10-9-5+6+0-7+2-5-4+1+4-1+5-7-3-0+7+9-5-10+1-1+9+3+2+8-1+1+1+1-5+7-5+2+1-6+2+7-6-10+6-6-6-5-3+9-6+6-0+9-4+3-3+6-4-0-10+5+6+4+2+9+9-1-9+10-8-7+8+3+0-3+4+5-0+9-3-9-2+2-10-10-8-0+5-1+9+1+7+1+1+4-9-1+3+10-1+0-1+4+0+2-9-10-2+1-4-10+3+8+4-3-4-0-1+9-9+0-0-5-10+5+10+1-10-4-1+2+5-3+5+6+7-4+4+0+0+8+8+2-9-2-8-9+6+9+5+1-4-9+2+9+3-3+6+5-10+5-8-3+4-5-7-6+4+6+7-0-3+6-2-7-1+2+8+2-9-2-10+8-6-9-4-6+8-9-1+2-5+0-0+8-6-10+4-9+8-1+2-7-4-0+1-9+7-8+9-8-1+4-2+5+6+9-7+3-2+10+3+6-4+10-3-1-8-5-4+9+0-2+0-0+10-10-5+7+10+5-6+9+7-8+0+6+3-4-7+8-4-4-4+8+9+0+8-1+4-2+3+4+7-10+6+1+1+5+3+6+6+0+1+1-8-10-4+6-9+5-4-5+3-9+3-3+2+7+2+7-7+9+6+3+3-1+6+2-6-5-10+7-2+8-0+4+2+1+2+1+10+0+7+2-4-8+5+5-7+4+8-3-10-6+0+1-7-4+9+7-9+2-9-8+0-1+10+10+5-7-6+6+4+8+10-5-10-3+10-7-0-6-7+2+5-4-4+2-3-3+5-4-3+0-6-2+7+7+2+10-10+2-6-8+6-7-10+6-2+3+1+1+1+6-6-10-6+4+10+9-8+5-10+6+6-10+3-2+4-1+4-6+4+7-3+9+8-4-7-5+4-4-8-4+0-10-0-1-5-0-8-9-6-7+10+4+4+6+9-10+1-0+1-6-4+10-1+3+9-4+9+9-1-4-5-0+2+4+9+1-4+0-6-5-8-5+8+4-5-3-4-2-0-9-6-3-10+0-8-7-9+6-1-7-1+10+0+6-2-6-4-3+0-1-5+7-3-9-8+8+1-5-10+3+1+7+1+0+1-1+10-4+0-4+1+3+3+4-8+9+2+1+5-8-4+3-2-10+1-1+10-8-10-4-6+8-0+2-1-2-2+7-6+0-2-10+0-2+4-5+6+5+10-6+1-6+8+6+6-1+6-4-6-9+6-2-9-7+8-6+6+3+8-10+3-5-5+1+0-0-6+0+10-5+0+5+6-8+5-3-8+4+7+5+2+6+1-3+8-7-1+1-1+2-9+1+1+5-8-1-5+0-10+8+10-2-3+3+7-10-10+7-7+5-1+8+0-10+10-2+5-8-10-5-9+3-4-8-8-9+8+1-7+9+7-7-9-8+6+8+6-7-4+3+6+0+4-2+4-8+3-3+5+5-8+6-6+10+5+5-5-9+4+7+1-9+9-6+8-0+1+4+1-1-4+7-8-5-8+7-0+3-6-2+5+3-3+6-0-1-8-10-2-4+2-5+6-5-7+0+1-9-8-10-7+8+7-10-4-3+2-7+3+6-7-9-6+10+10+1-9-9-1-4+9-0-9-5-9-9+5-1-6-5+4+2-3+6+0+1+4+4+0-2-6+8+7+4+7+7-6-0+10-9-5+9+6-3+1+3+8+4+9-8-2-8+2+5-9+1+10-2-5+6-10-3+0+6+1+1+4-1-7+7-9-8+0-4+10+10+5-9-8-8-1+0+3+8+8+9+6-1-6-10-3+0-9-1-3+1+8+8-1+1+1-10-10+5+0-5-6-10-4-5-8+3-1-8-10-8+4+4+0+4+5-10+7+5+9+0+2-2-10+7+6+5-9-2-9+5-0+6-2+2-8+5-10+7-7+8+5-8+2+9+6-5-8-4+1+8+7+5+2-0+0+6+1+0+8+5+2-9+6-4+10+2+8-7+6+3-8+7-2+4-2+1-9-3+10+3+6+9-4+6-0-3-7+1-3-10+5+7+8-10-4+1+5-5-10-3-1-2-0+4+4+10-3+8+3-10+2+1+7-10+9-0+1-10-6-6+2+7-8-9-4-2+10-5-9+7-4-2+10+5-7-3-9-1+9+6-8+3-0+10+8+6-8+1+10-0+5+7+10-3-6-10-6+5-10+3-4-8+9+2-1+6-0+10+6+0+3+6-2-9-8+8-8-3+2-3-0-3-4+10-3+9-5-1-4+10-0+0+0-9+4-5+3-1+8+2-10+9-0-6-9+6+4-9+6-7-2-8-10-10+7-0-6+6-8+8+9-1-7+3-2+0+2-10+2+10-1+7+9+8+3-8-6-2+5-7-9-7-8+2+1+4-8-1-1-10+4+3+8+7-7+5+8+5-7-4+5-9-0-2-3+3-1+1-1+9-5-9-7-5-4+4-9+7-8-3-5+10+10-0+7-2+3-5+9+2-0+9+8-5-10+3-2+4+6-9-3+10+4+7-2+10+7-7-7-0+10-6-1+10+7-4+3+4-10-1+2-1+6+5+6+1+8-2+1-9+3-5-2-7-0-3+6-6+10+7+4-10-9-2+0+8+8-1-6-7-9-9-0+2-6+5-2-9-4-2+4-4+8-8-0+2+6-5-3-1-1+9-5-7+1-2+3-9-0-3+1-1-2+1-3-8+6+5-5+1-0+7+6+7-7+10-4+8+0+1+4-1-2-10-9-4+8+8+0+4+0-6+3+4+2+10+8+1-1+3-0-4+1-7+8-5-1-0+10-9-10-2-3-0-9-2+1-7+9-7+6-5-7-0-6+6-9+6-4+1-6+9+0-3-9+2-1-8-5-3+2-9+7-3+6-1-0+2-5-8+3+5-8-8-4-7+6+1-5-9-8+10-8-8+4+6+1-2-5+10-8+7-2+6+1-2-10-5-10-5-3+7+7+9+3-10-4-0-7+3+4-9-10+9-2-0-0+3+7+4-9-9+4-10+9-3+6+3-10-1+7-3-7-7-0+9-8+0-7+2+5+7+2-7-4+1-7+10-2-3+4+0+1+6-3+9-8-2+1+8-0-5-4-7+9-0-2+4+10+3-5-8-9-0-1+2-3-7-9-5-2-10-6-4-9-0+6-6-4+7-5-2-6-2-3+7-5-4-7+10+0-7+2-9+6+0+3-5-7-10+0-2+4-5+7-0-9-10-7+10+0-6-7-10+5-10-1+0-6+8-9-6-0+6+0+9+10+8-0-2+6-2+1-2+6+1+10-2+8-1+0-6-3-8+9-2-0-9+5-3+9-5-0+6-2-10+4+1+10+8-8-0+7-6+5-0+6-10-8+4+9-4-6-3+3-0-0-7-6-10-5-0+6-0-0-5+4+6-10+2+2+3+10-3-1+10+5+3+7+6-2-9-9+4-8+4+8+9-7-0+9-0-0+10-4-6-5-8+8+2+0-9+5-1+7-6+10-0-7-2+1-10+4-7-3-4+8+10+2-3-10+0+6-0-0-3+5-1-1-6-8+4-10+1+0-2+9+9-1-5+4+9+6+6-3/7-9+6-7-1-7-7-10-6+6-0-9-7-3-9-6+4-3+4+0-6-5-3-4+2+0+9-3+1-3+6-7+3+7-0+0+7+2-7+5+5+5+10+1-9+8+7-6+0+7+9-7-6+7+4-5-5+6-0-3-0+0+4-4-0+4-4+2+4-7-2+3+10-1-9+10-10+6-2+2+3+3-1-10+1-5+3-2-2-9-2-0-6-8-8+0-10+5-9-1+9-6+6-8+5+1+10-5+6-10-1+7+4+1-1-1+8+2+9-5-7-3+8-10+7+7-5-2+6-2-8+3+7+6-7+1+5+7-5-9-4-1+0-4-10+5+5-5-3-3-6+9-0+3+2-0-0+9+6+10-7+1-0+5-1-6+9+1-0-7+3+0+1-6+7-1-10-4-8+1-2+5+5+0+0+0+2+0+8+2+4+1-6-3-9-5-6-10-9-7-10+0-6+4-10-7+6+8-3-2-9-2+0-10+9-2+4+8+10+0+5-3+6+10+0+8-4+5+5+0+4-9+1-1-0+10-4+0-4+2+9-0+2-9-8-0+5-6+0-0-1-1+8+3+6-4+9-4-2+9-2+1+9-1+3-10-7-5-4+8-1+4-1-6-8+8+4+8+0+5+2+0+9-1-10+10+10+1+3-7-5-9-8+2-10-1-4+8+1+10-9-1-8+8+4+6-1-8+5-5+5+7-9+0-2-6-9-9-10+8-4-7-8+0+4+2-3-9+1+6+8-6-2+0+3-1+10+6-10-6+1-3-7+8-9+0+8+10-0-9-1+6+10+7-5-7+8-9+1-0+10+7-2+1+3+3+10-8-5+9-6+5+6-3+10+8-8-5-8+2+2+4+2-6+7+4+2+2+5+4+8-8+0-0+1+0+3-0-2-1-3-5-4+9+1-7-8+10-5+3-6-6+4+6-8-7+9+5-6-0-6-6+8-4-1+4-4-4+0-9-4-0-0-3+10+2-4-5+6-8-9+8+1+4+9+1+0+10+2-2+3-7+9-6+8+6+4-3+5+7+4+2-3-10+2+9-2+10-3-8+10+2+3+10+5+3+4+8+8-1+6+0+0-9-8-4+8-0-5+5-2-8-2+3-5-0+1+7+9+8+5-6-7-10+10-6-9+9-3+9-7-4-1-0-9+7-6+5+1+3+3+1-8+5-2-2-7-0+7-2+9-7-0+2+2-10+1-0-9-9+4-1+3-2-4+8-0+8-7+1-9+4-6-0+9-10-7-6-1-10-10+5+0+8+1-6+7+8-1-0-2-6+6-10+0+1+5+7+9-8-5-2-5+10+8-4+3-9-0+9+9-5-8+5+7+9-10+1+7-7-6+1-3+8-10-7-4+3-10+1+10+0-3-9+8-9+5+6+7-4+10+7-10+5-0+10-3+3-10-10-6-4+6-7-4-7-1-4+3+5-0+8+3-7+10+10-5-5-8+7-3+1-0+4+10-0+5+8+0+6-3-9+2+7-8+2+4+7+3-1-8+4-8+3+2+9+4-3+5-3-2-9-10+2+8+6-9-4-0+9-6-0-9-4+10-1+8-1+6+7+3-9+9+7+6-6-3-2+0+0+6-2-5-8-4-7+4+0-4-10-1+7-3-2+5+4+10+3-6-6-6-8-3+7-5-10+1+1-7+0+2-0-1+5+2+8+1+1-0+1+1+0+1+0+0-8-1-2+1+7+5-2-5+5-1-4-10-10-4+9+2+8-6+0-4-1+8-0-8+6-10+9-4-2-3-8+0-0-7+3+3+10+5+6-10+7-2+1-5-4+2+3+8+1+4+3+6+0+4-9-5+2-1-0+2-7+4-1+7-10-3-10-7-0+1-0+7+5-1-10+8-1+10-1+3+0+2+10-5+8+6-2-1-8+0+10-3-8-5+1+0-6-8+7-6+7-0-3-1-1-5-9-8+7+5+8-1+9+1+7-7-3+6+10+4+1-10+1-0+1+1+2-1+5+3-5-8+4-3+5+5+5+4+5+2+7+1-5-7-8+0-4+6+0-5-1+6-8-3-6+8-7+4-10+10+1-3+7-9+7+3-6+10+1-10-3-8+5+6+0+9+7-7+2-5-4-4+6+1-5-0+5-5-10+4+3+6+5+3+4-5-9-7-1+10+4-0+2+7-7+7-9-3+4+6+8-7+4+3-10+0+3-10+3+3-1+7+7+1-8+8-3-8-8-5-1+3+10+9-1+3+6+1-10+3-1+5-6-5+5-4-3-3-5+6-3+7+7-9+9+4+7+1+8-10-2-1+1-4+5-4-7+3-4+1+6+5-0-6+2-0-1-2+7-5-9+1-1+2+1-3-0-3+0+7-5-6-3-10+5-0-1-0-6+7+4+7+3+5+7+4+4-6-4-8+5+9+8-7-2+4-9-10-5+10-2-1-9-0-4+0+4-8-2+7-3-3-4-6+8-10+6-0+5-5-6+3-8-9+2-3-4-5-10+10+10+1-8-6-3-3-2+7-4-1-10+2-1-1+10-9+6-7+4-4+1-1-7+3-1+2+4-0+9-7-10-1+5-6+5+6-8-3+7+3+2-6-3-10+7+4-3+3+9+10+8+0+0+8-0-8-9+10+8-6+5+3-2+10+6-0-7+7+5+5-8-4-2-2+10-7-10+1-7+5-10+2-10+5-4+4-6+5-1+8+0-1+0-6+8+0+5-5+1+9+7-4+3+10-2+0-9-5+7+9+7+0+10-4+10+4+8-8-5-6-8+8+1-9-5-1+8+6+4-2+1-4+4-8-3+0+2-5+8+1-9-9-10+7+10+3-10-0-5-6+3-10-3-10-1+10+4+2-9-6+7+5+1-7+3+4+3-4-8+6+0-9+10+2-2+1+9+9+10-5-6-9-3-0+1-3+9+7-10-6-8+9-7+0-10+0-8+1+4+6-0-8+0+4+2+9+9-7+10+2+2+5-0-5+9+1+0-9-4+9+10+8+10-6-5-1-0-0+9-10-9-7+5+10+3+6+8-1-1+0-5+2+2+2+9-9+6+10-2+5+6+10-1+6+0-1-2+10-2-7+1+4-5+7+3+2-4+10-0-10-0-6-9+4-4-9+3-4-10+8+3-5-9+3+10+2+3+9+2-9+4+7-10-8+3+6-9+10+4+1+10+2+6+9+10-1+9-3-5+1+9-4-7-9-2-5-6-5+0+6+1+4-4+7+2+5-7+3+9-10+10+10-1-1+5-7+9+9-1+9-4-6-6-7-9-1-6-10-4-5-10-8-6+1+6-5-0-2+10+9-1-10+6+5+2+4+2+1-9-7-5+8-2-6+5-6+2-10-1+4-6+7+9-10+4+4-2-1+9-0+1-2+3+0+6+4+7+4+5+2-6-9-3+3-6-9-10+3+6-7-9+1+3-2-0-2+4+6+5-3-4+1-4-5+8+1+3-5-4+8-9-1-0+0+0+1-3+7+3-5-9-0-9-4-1+0-0+5-2+1-1+5+10+5+1+10+7-3+7-5-8+10+7-2-5+1+8+1+5+0-8+4-10-10-10-0+0+7+5+3+4+0+6+6-8+7+1-7-1+9+10+0-5-5-6-10+7+7+1-4-4-6-7-7+1+5+0-7+3-10-9-10+1+10-9+8+9-2+10-9-2-9+8-5-5-0+3-9+10+1-5-0+5+3-9+4-2-0-5+3+10-7-5-6-0+7-7-9-0+10+8-4-5+3-0+3-1-9+9-4-3+8+8+10+7+5-6-4+9+8+2+5-5+6+3+7+10+3-9+7-2-9+1-4-6+8-0+9-2+4+6+7+8+5+8-2-1-4+5+1+0-2-9+5-3+9+3-0+10-5+8+9+7+2+0+0-8+3+2+5+4+2+7+6-3+8-6-8+0-5-9+9+5+1-0+5-9-9+10+7-9-9+10-6-3-2-9-0-9+3-8-9+3-3+2-9+10-10+0+0+7+0-0+10+3+10-4+9+4-6-9+9+8+8+0+2+10+2-4-0-7-3+5+1-8+0-4-9-9-3+7-8-2-0-0-0-2-7-7-4+5+3-10-4+10-10-10-5-2-9-0-3+0-5-7+7-6+10+3-9-7-8-1+7+2+2+5+9+8-0-7-6-8-5+1-5+8+10-7+5-0-2+3+10-10-1+5+9+4-5+2-0-10-3+5-9-0-3-7-6+9-8+10-6-7+6+8+0-6+10+1+4-9-2-3+9+7+7-8-10+8+10+9-0+4+0-4-7+7+9-3+7-9+1+3+10-1-2+3+5+6-7+0+0+6+5-4-0+7+1-3-2-1+4-3-3+0-6-10-4-1+7+10+10+4+0-0-5+5-1-5-7-2-2+10-3-4-9+0-9-5-8-6-10+5+8+10-2-4-2+2-2-6+10+8-1+9-9-10+8-9-10-9-10+3+9-7-1+8-5-1+5+6-4+0-8-3-1-6+0+10+4-5+4-4+3+6-7-3-8-0-10+10+7+10-9-4-5+2+0+8+6+0-0-8-5-10+7+7+6-1-6-1-4+0+3-5+8+7-5+2-10+8+6+10-2-7+2-4-8-0-1-8+0-0-7-0+5-9+2-1+3+4+0-3-8-10+10+3-0-3+5-8-6-7+10-1-2+9-10-6+7+3+8-0-3-5+5-6-10+4-2+1+5+1-7+7+4-5+7+9-1-3+1+6+7+6+9-3+1-2-10+8+2+3+3-0+10-4+1-5-7-10+3+6-7+5-8-0-5-4-3-7-10+5+4+9+7+8+5-2-6+10-9-9+6-9-6-1-5-10-2-5-10+9+3-6-4+8+0+5-6-4-4-10-0+6+2+4+1+10+5-6-6-6+3+1-1+1-6+3+4-4-7+9+1+9-3+6-6+0+6+5-5+8+9+1+0+1-10-10+6-10+5+2+2-0+0+6+2-5-8-9+6+9+0+2+9-10-5-8-1-10-5-10+0+3-2+0-0-2-5+9-2+7-4+2-8-1+7-6-6+7-0-5-3+10+1+7+5+7+10-7-3+10+4+9-6+10+0-8-8-10-5+6+0+0-3+4-6-5+9-3-7+9-3-8+1-3+4+5-2-3+0+6+5-6-7-10+4+3+8+5-6+10-0-2+6+9-6+6+5-2-10+6+2-5-0+6-9+0+1-9-9-8+2+9-3-7+0-4-10-10+4+5-7+9+5-0-1-1+0+7-7-4-3+9+0+4-4+10-3-0+4+7-1-3+6+8-4+2+2+1+1+3+4+9-0-3-3+5-3+5+7+3+8+8+9-5-4+1-9-7+2+2-7+2-9-5+3+4-3-6-9+6+4-1+6+5-2-2+2-4+7-10+2+9+5+9+1+8-9-7+8-4-8+2+10+8+10+1+6-4-5+5+7+8+8+6+9+3+9+9+5+9+10-9-2+5+4-5+10+10-5-8+8-7+7+3-9+5+8+10-3-9-9+2-8+1+6-7-4+1+8+8-2+1-4-4-10-9+1-1-1+8-3-2-2+5+4+10+0-5+2+5-9+6-3+2+9+4+0+2+8-4+8-9+5-8-3+4+5+10-9-6+3+8+1+10+4+6-2-9+1+10-9-6-3+5+2+6-3-10-6-5+5-3-6+5-2+2+8-9-6-9+1-4+5+10-1+4-9+4+2+4-4+5-7+6-9+4+2+1+0-9-9+9-6+2-2-6+2+8+6-5-6-8+0+7+2-10+8-1+6-2+3+9+4+9-4+10+10-8+9+6+4-1+1-0+3-9+0-5+6-6-10-6+6+3+9-7+6-5-5+5+7-9+4-9+9+4-8-5-9-1+5+9+1+9+3-6-0-10-2-5+9-4+10-9-8+0-4+8-5+4+6-4-8+9+0-1-5+2-3+5+2+0-3+1-3+5+0+7-6-6-0-3+1+1-6-9-4-10+0-8+3-3+9-8-6+3+5-0-4+0-3+6+4+9-6-1-3+6-2+5+0+7-3-8-4+7-5+7-0+9-10-4+5+8-6+5+6-4+4-0-3+5-7+5+3-2-1-8-4+9+0+6+0-2-8+0+0+3+3+10+5-10+8+8+10+3+7+6-1-1-7+10+9+7+9+2+3+5+8+6+2+1-6-7-9-6-9+7+8+10+9+4+10+9-10+7+5+8+2-6+0+9-3-2+8-7+6-6-0+9-2-4+3+6+10-1+1+7-8-5-6-7+6-3+9-1-4-5-7+3+4+4+2-9+1-3-8+7-5-1+10+8-8-7+4+2+10+10+0+2+0-10+6-2-7-8-5+7-5-5+2-8-8+0-0+5+1+3+5+6-5-4-0-0+4-5+5+2+0+3-0-6-10+0-1+2+10-8+7-6+1-3-0+4-1-9-2-10+10-2-2+5-2-10-2-3+0+8-7+3+1-5-5+10-10+8-10-0+8-1+8-1+2+8-9-6-6+10-9+8-7-5+0-4+4-0+9+1+9-1+8+3+8-9+6+4+2+2-8-7-0-1-2-9+10+2-9-2+1+1-5+10+3-0-3+7+1+0-10+1-2-1+2+0+4-0+6-1-3+5-0+10-6+0-4-4-3+6-10+8-9-9+6+4-8+8+1+4-9-6-7-8-3+7-7-1+9-8-4-0+3-3+8-0-0-7-3-0+6+10+9-5+1+4+10-5+7-0-3-4-1-5+0-2-7-6-5+4+9+4+1-0+5-0-7+8+9+1-1-9+9-9+9-0+9+8-8-9-7-4+5-7+10+7-7+3-3+4-10-6-4+4+9-7+1-3+10+2-0+4-6-8-1+10-6-7-1-7+5-10+6-4+0+4-2-6+0-5-5+3+7+5+1-0+8+3-9+5+9+1-2-9+10+10+10+1+7-8-0-4-9-2-1-6-2-6+10-7-3+10-7+2+1-4-7+7-2-0+6+9+5-4-8+8-0-5-0-10-7+10-1+8+6+2-3-7-10+9+7+5-4-3+4+10+10-3+7-1+3+4-10+1+8+3+7+8+2+9+4-3-6-9+4+2-7+5+5+8+0-3+10-0+1-0-1-7-4-9+7+3+5-3-4+9-2+8-7+0-5+1+7-2+4+2-6+7+9+5+8-4-3+5-9-9-10+5+2-0-0+9-9-1-9-2+6+0+5+6-4+2-6+8-9-3-3-3-8+3+8-5+5+4-4+5-1-5+9+8-9+7+4+10+9+5+3-3+4+6-4+5-4-6+4-7-8+8-9+5+1-6-3+6-2-10+1+6-5-5+2-7-10+1-7-5-9+2-7-5+6+8-8+0+1-7-1-10-3+5+3+2-4+1+3-4+5+1+7+7+6-1-6-1+9+7+3-7-2-10+5+4+7-7+9-9+1+0+6+1-4-3-3-6+7+8-3-6-4+0+5+7-0-2+5+0-4-3-3+2-7-4+8+5-6+8-6-5+7-10-4-3+7-5+9-7-5-2+3-6-2-9+1-1+5+10+2+4-1+4-2-5-2+4-0+7-7-2-9-1+8+3+4+1+4+2+0-6+1+0-6-10+6-4-10-10+3-7-0+6+4+1-7-10-9-8+2+4+8-8-6-2+7+7-1-7+0-7+4+4+4-5+1-6+6+6+4+1-10-7+10+7-8-9-1+0+10+7-1+7+3+8+2-3-3+5-0+1-4-8+5+10-10-3+8-5-9+6-5+5-3-9-2+7-8+9-6+2+5-2-1+4+4-3+3-1+4+6-5-6-9-5+9+7-7-10-6-6-1-4-10+9+3+3-5+1+3-6-5-1-8+1+2+3+1+8+10+4+2-3-7-7+0+7-2+5-6+6-6+4-1-0-6+3+4+2+5+10+3+9-5+6+10+10-4-8+5+8+9+2+0-9+3-5+6-5+1-9+10-7-0+3-7-1-9+0+8-3-3+2+1-6+4+9-10-8+3+3+6-10+5+7-1+10-4-7-7-4+3-8-8-3-8+0+5+1-3+6+7+1-8-8-4+8-9-2-8+1+9-8+1-4-5+1-2-6-1-4-4+5-2-1-9+7-2+3+9+8-5+8+1+8-5+7+4+1+10-7+4+1-2-4+6+5+5+0+4-9-7+7+2+1+7-10+1+6+3+9+1+7-3+4+0-9-8+7-5+3+4-10+4+0-5-0+3-0+5+6-6+0-1-1+9-6+4-5-2+8-8-5+1-9-6-8-1+4+5+10+0+4-10-1-5-6-8+8-10+1-1-1+6-2-4-6+5+5-4+0-9-2+10-0-5-5+0+0-4+5-6+1+5-8-3-3+10+0+2-5+2-1-3+9+8+2-9-0-1+9+0+3-2+2+3+7+8+0-9-9+2+0+6-10-9+7-6-4+3+4-5+6-3-5+3+9-5-10-7+9+8+3-7+0+8+10-4+10-6+6-7+0+4+8+4-3+5+10-10-10-3-10+10-1-7-3+7+4+10+10-10+7+2-9+9+4+9-3+2+9+4+7+4+6-8+1+8-7+1+8+10+3-6+6-3+6-6+9-8-0-5-9-1-6-4-3-9-5-3+4+3-9+5+2+6+6+4+1-1-9-3+1-2+2+4+9-3-3+1-2-1+4+5+1+7-1-8+8+5-4+7+4+0-5+4+9-5-5-4-4-9-3+10-7+10+9-1-3-1-3-10-3+2+6+6+7+1+7+9-6+8+4+5+7-0-6+1+3-8+6-7-7+1-5-5-7-4+4+10+6+2+4-3+5+9+5-10-9+7+10+10-8-0+6+1+5+8-2+4-10+4+3-5-9+1+8+0-5-7+4-2+10+6-1+1-5+10-10+0-7+7-4+1+4+0+6+8+5-6-7-8-8-8-8+3+5-4-3+1+2+6+4-6+1+4-9-9+3+8-10-1-10-8+8+9+6-8-3-0-5+9+0+1-2-2-1-0+10-5-3-6+4-10-9+1+3-3-7+0-9-7-9-3-5+1+10+8+0+8+2+0+6-0+6+8+1-1-10+3+6-8-6+4-0-4-5-5-1-5+4+0-5-0-5-3+2-1+9+4-1+10-7+5+9+3-5+5-10+3+10+9-2-10+8+4-0+10-4-0-8+5+5+6+10+2-1+5+2+0-0-8-1+10-1-5-10+5-9+5-2+10+3+2-1-3+8+6-7+8+7-9-8-2+0-10+6-3+3+0+0+10+5+1+10+1+8-5+9-6-0+5+1-5-4-2-1-0-9-10+7+2+10-4-7+0+1+1+2+4-4+0-0-6-2-9-0+9-0+4-8+5-7-4+4+6-6+0+10-10+2+2-3-1-8-3-1+7-5-8+9-3+4-5+10+1-6+7-1+2-8+4+10+3+6-4-3+8+7+7+10+7+2+2-9-10-3-6+9+4-7-1-5-2-7+7-4-10+2-2-7+2+0+5-4-3+5+9+6-9+2-8+7+9+3-0+5+2-2+7+5+5+4-0-5+3-0-2-2-1-3+7+1-7-7+0-5+2+4-9-8-2-10-7-5-7+3-10-6-1+1-1+0-6+6-8-10-10+9+0-2+8-9-0+3+0+3+2-1-3-6-9+10-1+8-1+2+3-2-4-1+0+2-0-6+10-0+4+2-9-10+3+5-5-6-2-7-2+8-10-6-10-4+8-9+0-0-5-9-5+9-7+7-4-1-5+8+2-1+4-5-2+1-2+10-7-2+3+4-5-0+1+4+1-3+9-5-7+4-2+9+5+3+10-8+10+1+4+10+7+6+0+3-3+9+5+3-5+3-9-9+5+6-4+5-10-1+8+3-7+2-4-3-0-4-8-5+0+5+3+0+4+3+9+1+1+9-9+8-1+1+7+4+6+2-8-10+2-10-8+2+0-4-10+5+4+7+0+2+0+8-5-7+6-0-0+10-4-2+9+5+5+3+9-1+6+3+9+8+9+6+2+8+6+7+4+2+3-3-6-7-0-10+4+9+7-3+9-0-4-7-0-2+1-1-4+6-5-7+5-10+9-10+0+0-8+10-0+6-0+0-6-8-10-7+3+3-7+4-0+4-4+3+2+2+1-9-9-10+0-3-1-5+2-8+2-0-10+5+0+5-10-8+7+8-6+2-3-10-0+2-4-6-6+3+7-4-6-8-3-3-3+0-6+2-1-4+10+8-9-8+4+6+2+3+5-10+9+2-1+1-2-6+6-2-4-2-4-6-7-0+5+0-0+4-8+0+7-1+2+1+5+1-2-10-6+4-9+1+5+4-2+5+8-9+5-2+8-3-1-8+1-1+0+6-7+1+1+4+5-4+7-2+4+6-1-2-9-0+2-3+7-7+4-2+0+10+1+7+9+10+10-8+5+4+0-10+3-1-3+2+8+1+10-7-8-1-4-10+4-8+5-9-8-7-10+2-2-6+2-0-8+7+5+6+3-1+2-4-0-7-1-0-2+7-9-1+10+5-8-1+7-6-4+1-0+10-5+1-9-0+9-2+7-1+9+1+10-7-5-4+10+6+10+9+9-4-3+9-7+1+3+1-7+9+10+4+10+7+10+8-7-2+2+8-9+4-9-6+8-4+9-8-8-0-5-3+2+6+3+2+5+0-8-8+5-9-7-2+6+6+10-5+0+3-10-9+2-2-5+8-3-2+7+6+3-8+5-7-9+8-3+10-6+4+5+1+2-1+5+6-0-8-5-0+6-0+4-5-3+0+3+8+0+6-2+10-6-9-7-6+8-9+5+6-2+0+3-10+3-7-1-8+8+7-1+0-0-4+3+3+2+10+6-5+7+5+0+6-8+8-7+3-7+5+7-0+1+9-3+4-1+2-6-3-6-1+10+8+10+8+2+8+2-10+5+2+1-0+7-3-9-5-9-4+1-4+0+6-2+10-6-1+0-7-9+5-2-6+1+9+5-10+2-2-4+5-2+1+8+10-3+5+5-7+10-7-4-8-2-1-4+4+1-4+7-7-7-10-5+2-9+5-6+2+4+8-4-1+5-4+5+1+9+7+10-10+8-0+1-1+9+4-1+4+5+3-4+7+9-2-7+5+4-3-5+4+8-9+10+3-2-5-3-2+7-8-5-5-1+7+1-0-6-2+6+0+3-6+9+3+3-8+1+5+2-7+10-1+3-8-1+4+6-3-5+9-4+6+1-2-10-1-7-0+2-3+2+0+0+3+4+1+10+4-9-8+9-5+4+4+3+7+0+7-1-9+8-9+6+3-3-6-3+3+8+2-9-0-6-6-3+2-3-6-1-1-5+0+8-7+3+5-1+7+10-4+3+6-1-6-9+2-3+2-10+6-10-0+5+6-4+7-4-4+2+1-3-6-5-8+4-0-1-9-9+2+6-10+9-8+2+9+7-6-3+0-7+7+10+0-8-1-1-4+0-8+4+8+2-7-5-8+7+7-3+6-7-2-7-4-3-9-10+2-10+6+2+5-2+9-7+5-1+3+7+2-6+5-5-5+3-4-1-8-3-1-4+5-6+3-6-7+7-5+6-10-3-2-8+10+7+10+1+0+8+0+3+3+10-3+5+10-1+3+5-0+4+7+5+2-4-7-3+1-6-8+3-6+4-2+1-10-4-2-10-6+6-1-3+5+9-1-1-8-9+2-3+3-6+9+8+8-6-10+0+3+7+3-8+5-7-6-2-3+6-7-4+9-10+4-10-1-5-3-0+4-5+9+4+7+0+9+6+0+5-5-3+4-8-2-7+4+1+10-8+9-4-9-9+10+0-2-3-10+0+1+8+4+9-10+8+5-4+10+2+1+1+1-0+5-3+8+10-2-10+5+4+1-6-2+7-5-3+7-10+2-0+8-9+0-2+2-10+8+5-4-9-2+7-4+0-10+0+5+2-3+2+10-1+6-0-2+8+5-9-5-9-4+10+9-3-3-5-0+6-2-3-6-7+3-7+7+10-3+2+2-10+6-1-10+7+3-2-0+5+6+0+10+4-9-9-5-2-8-7-7-6+3+5-1-0-3-2+7-6+1-5+6-6+8-8-4+8+0-10+5-3-3+6-9-7+3+3-1+3+5-6+7+5+1-10+1-10+0-8+8-10-6+8+3-5+8+8-0-10-9-9+2+10-6-7+4-5+6+2+5-9+9+7-4-4+6-9-3-3+6-2-8+4-6-9-1+4-5+8+7-1+2-9+4+8+4-9-4+8+6+7-1-4-10+8+7-9-0+9-10-8+4+0+2+7+2-2-6+4-0+1+2+1+3+0+1-4+7+0+7+3-2-6+5-7-6+10+9-8+2-0+9+1-7+5-6+6-2-10+4+9+7+8-6+9-0-0-2+3-10+4-9+2+3-2+3-2+8-2-1+5+0+9+4-4-3+4+9+3-9+5-2+9+4+1-5-1+7-4-2-5+7-4-5-4-0+2+4-2+6+1+1+2+3-7+3+8-7+5-6+1-1-10-5-2+3+8+0-8+7+3+1-4+4-10-6-3+6-2-5+9-2+3+10+9-8+0+6-6+7+8-6+5-7+8+8-6+0-8+5+4-0+5-4-10+9+5+1+9+5+4+2+9+3+3+4+4-0+5+9-2-9+7+2+6-9+9+5-7-1+3+9+2+0-0+10+7-4-4+0+3+10-10+7+9-2-3-3-1+8+2+2+7+8-7-2+9-0-6-2-4+0-5-6-0+6+8-8+3+10+10-4-8+8-3-1-8+2-0+6+6+1-4-10-4-8+9-2+8-0-1-5-4-0+2+9+5+5+7+3-5-10+6-9+5-1+1-9-9+4+4-10-5+10+3-3+3+0-7+4-3-10-2-6-9+9-0-3-5-0+0-8+8-1+0+1+4-6-1+9-8+9-1-10-8-2-7-2+8+3-1-10+2+9+7+4+2+4-9+10+10+5-1-0+7-9-1+7-7-6-0+7-3+8-0-2+9-1+4+8-7-4-8-7+0-2-10+0-5+5+6+3-7+3-2+8+1+7+8+4-5-6-8+7-6-9+7+2+9+3-6-0+10+0-2+7-2+0-10+1-10+10+4-7-4-9+10+8-3-8+0+8+10-10+6-4-8+10+4-2-8-9-9+5-5+5+6-2-0-7-3-4-7+4-7-9-0-5-1-2+1-10+1+10+8-1+4-9+4+10+8-5-2-10-0+1+2-2-5+1+4-0+4-4+10-9+7+1-8-2+7-9-4+7-1+0+6+8-10-9+2+1+2-9+8-2+9+2+2-0-4+1-7-10-3+6-1-1-0+7-1+10+4+7+8-10-1+8-2-0+2-4+2-0+2+9+3-4-8+4+0+6+7+9+3-4+10+10-4-0-0+7-5-6+0-2-7-2-6+8-6-3+0-10-9+8-4-3*8+5-6-5+4-8-8+6-0-3+1-1-3-6-8+3+4+2+7-3+5-5+10-6+0-10-10-6-1+1-4+7+2-9-5-0-4+4+9+8-9+10-8+3-10+10+7+1-1+0+8-7-6+5+6-4+3+4+3-1+0+0-9-8+4+2+10+2-1-2-9-4-8+7-1-4-1+7-5+10+6-5+0-10-2-9+6+2+5+7-0-9-3+1+9+9+0+5-0-4-1-10-7-6+7-10-0-0+3+5-9-9-10+1-0-2+4-7+0+4+7+3-3-4+1+4+10-5-10+0+1+4+7-9+3+4+7+3-3+6-0+0+6+8+7+7-8-5+8+9-8+9-5+9+7-1-5+7+5+0+1-1-5-1+10+6-7-9-2-5-7-3-7+9-4+3-4-8-6+5-10+4+8+4-1-4+0+7-0+4+6+5-10+0-8-2-2+5-0+7+2+5-8-5+9-7-6-9+4+4+7+8+7-1-7+9-9+6-10-3-10+4-4-1-5-2+6-9-2-0+7-9+0-5-8+3+2+2-4-5-0-9-2+8-4-7-10+1-6-4-9-1+5+4-4+8-4+8-7+1+4+3+0-1-2+1+8-7-2+3-8-4+8-1+10-9-0+0+2-3-2+5-10+4+3+4-9-1-3+3-7+6-2+9-4+9+5-1-7+7-8-5+8-7-0-6+5+7-1+5+8-4+6+2-0-0+9+1+3+3-7-8-8+4+1+2-8+2+9-2-9-8-4+4+7-6-8+5-6-3-3-7+10+4+3-7+5-8-6+6+2-10-10-0-8-2+3+1+7-5+6-2+9-4-5-7-9-1+8-10-6+9-0+7-0-1-0+1+5-9-4-9-4+3+7-2+10-5-1+4+4-0+1-3-10+10-0+6+6+5+4+6-8-5+3+4-10+9-10+6-5+9-1+7-5-6-9-8+1-6-9-5+0+4-7+1+7+0-10-1-7-6-2+8+4-5-1+5-5-1-6+5-5+10-4-4-4-3+1+7+10-0+0+9-10-8-3+8+7-6+10+1+4+3-2-5+1+5+4-9+6-10+9+6+7-0-3-3-9-0-8+3-6-10-6+5+2+10+4-2-2+3+8-3+4+3+5-3-1-0+3+7-1-9-0+7-7+7-3-5-7+0+10+1+4-9+7-7+9+6+5-5-9-7+4-1+10+1-6+4-6-2+6+3+5+0-3+3+1-3+5+6-5-4-0-10-10-0+9+10+4+5+10+0+5-4-2-0-0+10-2+9-9+4+5-7-9+0+2+0-3+9-1-7-7+5-0+3-3+9-0-1-1-9+7-5+3+2-0+8-4+1+5-2-5-2-9-0+4+1+3-6-6+9+10-9+8-0-7+0+6+10-4-4-7+0-1+3+0-7+3-6-4-4-10+3-9-9+2+8+9+6-7-5+0+9+5-1-3-3-8+8+9-3-8+9-5+1+4-7+10+8-9-4+2-4-2-2-7-9+9-5+6+0+3+4+3+4+4+1+4+0-8+10-0+8-2-6+2-7+3-7-0-2-0+5+9-0-7+3+4+2-7-10+4+4-7+0+6+9+10+10+1+8-7+2-4-9-7-7+4-4+2-4-9+10-7-8+0-10-5+7+9-3+3-0-3+6+3-3+2+2+3-6-5+10-3+5-5-3+2+7-4+7+7-1-8+4+5+0+7+1+1-7-9-8-9-10-5-6-8-7-9+1+9+3-1+7+1+0-5+4+2-4-5+5+4+1-8-2-6+7+5-3-4+6-9+3+6-4-4-0+9+3-5+1+7-10+0-7-3-0+4+10-5-10+5+4-4-5+9+4+10+5+7+2-5+1+7-1-9+0+6+7-1-1-6+8+2-1-6-1+5+9-4+6+2+4+1+2+3+9-3+2-5-7+4+4-5-10-0-3+4+5+0-6+8+8+2-8+1-3+7-5+3+9+8+4-4+10+3+7+5-9+4+9+0-2+4-7-4+8+0+2+7-9-7+1-9+10+2-9-4+8-7+1+7+5+7-9-10-4-9+10-2+2-2+10-6-10+6+6-0+1-6-10-1+4-1-9+6-8-4-0-6+7-6-4+5+4-10-7-1+5+10-2-9+10+6-7+2+10-9+6-2+6+3+0+10-3+2+9+9+2+1+3-8-4-3+5-2-4-4-6-7+1+9+7-6-3+8+0-6+8+2+7+10-5+10-10+10-2+10-5+8+0+4+9+9-9-8+9-2+10+10+3-1-1-7+2+5+7+9-1-8-7+8+5-5+4+6-6+10+10-10-7+4+4+2-6-9+5-1+9-4+9+5+2+2-8+8+4-10+7+1-5+0-3-7+4-0-3-6+0-8+0+4-1+7+7-2-4+8-6+6+5+5-7-3+9-6+3-5-4-6+9+2-0-3+8-5+2+6+0+8-6-3-10+5-2-4+8+5-7+2-3+3-10+5-3+3+4-1-1-5+9-1+0+0+0-1-10+6-3+2-4+0+0+7+8-6-9+8+0-7-3+0+6+9-7+6+9+1+4+8+2-8-10+3-6+9-1+4-4-10+0+8-0-7+3+9-10-8+7-6-1-0-1+9+5-0+5-4+4+4-7-4+4-3+4+7+5-2-8+3-6+0+6+10-7+7+10-7-4+8-5+7-4-1-5+1+10+10-5+7-5-3+4+10-1-7+10+4+2+9+3-3-3-9-10+3+4+5+7+4-6+3+0+9-2-9+6+5+2-5+8+2+9+7+10-6-1-2-8-9+8-6+7-4-4-2-2+7-7-4-4-8-3-4+1-0-0-6-2-2-9+4+5-3+8+6-1+8+10-9+2+9+9-2-0-10+1-8-9+0+1-6-0-4-10+3-1+8+4-10+3+9+4+6+3+6+9-10+3-3-1-2+4+6+2-0-3+5+0-2+9+0-4-0-4-5-3-2+2-7-9-10+0+0-9-7+8-10+9-5-0-2-2+7-10+2+2+4+4+9-9+9+1-7-2+2+6+3-4+0+8-1+8+1+5+0-8-3+5-6+6+0+2-2+10-5-10-1-6-9-5-5+0+2+7+2+5+0-10-5+8-9+8+1+8+0-0-1+10+5-3-0-8+10+2+2-4+4-10+8+3-9-8+7-5+1+9-7+2+2+7+5-1-6-10+10-10+7-3+0+6-9+0-7-2-8+3-8+5+0+2-9+8+7+4-10-4-0+8+7-2+7-10+6-2-3+5+2-2+9-0+6+7-9-4+1+9-9-6+3+3+7-6+5+8-6-9+0-10-5+6+0+9+1-10+3+5+9-8-1+5+3+0+10+7+8+3-10-3+2-10+1+8-8-1-2+6+7-2-3+2-3-10-0-2+5+6+5-9-7+9+9-2-1+7-0-3+3+10-10+5+1+1+6-5-0+4+8-4+2-5-7+1+10+3-5-1-2-9-4-0+10+2+6-8+7-5+2-0-0-6+2+7+4+8-0+5+6+5+4+0+1+8-8+2-7-8-8+1-6+4+9-4+8+0+10+4-0-5+2+4+8-4-10-7+10+6-9+5+9+3+1-0-6+8-5+1-3-6-6-7+4+8+7-6+7-3+4-7-9+6+7+10+7+6+3+3+7+7-0+6+8+4+10+2-4-5+5+7+2+10+5-4+8-9+10-7+7-10-7-1-7+9+2+10+2+8+8-5+3+10-1-0-0-9-1+7-10+1+5-8+6-1+2-1-6+0+7-8+4+2-6-6+1+7-3-5-2+5+10-6-6+6+9+10+2+1+3+10-3+8-10-6+5+0-0+8+10+2-4+8-10-1+9+0-9+7+3+0+6+6-3+3-8-8-2+9+10-6+6-8+7-3-5-1-8-9+3-2-4+9+5+9-2-5+2+6-8-10+5-3+3+1+6+0+8+5-3-4+10+10-6+1-7+1-6+0+8-9-2-2+0-8+5-8-1-6+9+1-1+0-1+3-3-6-2-8+2+7-0+9+0+8-4-6-0-6+1+10+2-6-9+7+4+8-3-2-10+10+7-0+2-8-5+4-4+10+10+3+7-7-3-10-6+3-5+8+4-4+4+7+0-1-1-3+1+2-8-8+3-5+4-0-6-2+1+3+1-6+4-6+8+8+9+10-8-8-4+8+1+6-5-4+5+0-6+0+3+6+6-2-4-6-3-6-6+2+5-1-2+7-4+10-4-0-7-9-7+8-2-9+9-5-7+9-0+9+5+3+3+2-6+7-6+9+0-5+2-1+9+3+10-6-0-8+2+8+8-8-0+5-0+0+0+7-2+3+8+4+5-1-7-2+3-8+8-0+6-8+8-8+3-8-6+9+7+1-1-8+2-3-2+2-10+8+4-10+9-10-6-10-3-5+5+2+10-6-6-6+8+10-3+1+10+5-0-7+0-4-9-4+4-7-7+5+8-3+10+7-1+2-10+6+8+6+5-0-8+4+10-0-3-4-5-4-7+9-1-10+1+10-10+9+8+9+3-3+2-5+10+8+0+4-1+3+9-6+0+9-8+1+6-10-7+8-4-9-1-8+9+9-4-7+1-8-0-3-0-0-4+0+9+7-6-10+10-9-3+2+6-9+5+6+10-8-4-3-4+4-9-9+2-3+8+0+5-10-6-10+3+10-1+8+6+1+5+10-8-8+5+7+9+10+7+10-10+8-10-1+4+1-9+10-2-6-3-5-0-0+5-5-3+10-6+6-8-4+1-7+4+9+1-10+1+4+3+9-6-7+8+4-2-6+0+1+6-1-3+2-8-0+2-6+0-1+4+4+6-6-9-10+5-10-1+6-6-2-4+0+7-3+6+2+0-7+0-2-3-9+4+1-1-4-8+7-5+7+6-7-9-5-2+6-4-5-1-6-5-8+8-10-4-9-7-4+0-7+0-0-2-2+7-3+5+8-6-4-10+4+4-8+9-1+3-0+1-6-6-2+7+0+0-7-8+4+8-8+3+3+9+5+2+6-4+0+3+4+5+0+10+10-7-0-4+8-2+0+4-2+6-1+3-2-8+0-7-9-6+10-2+1+4-2-5-10+9+7+6+0+0+6+1+2+0+8+3+7+2+9-0+2+1-2+1+2+0+3-10-6-2+10+9+7-3-4+1-7-5+1-4-9-4+2+4+6-2+9-1-1+0-7-3-7-1+3-9-2+0-6+9-4-4-8+7-10-9+3-10-0+8+3-2-3+1+0-2-7+9+4+1-3+2+3+6-4-6-7+3-0+7-6+7-4+5+7-9-1+0+7+10-4+3+8-2+3-2-1-2-10+6+1+10+9-10-10-8-3-8-4-8+3+9-0+1-7-2+2+2+6-2+7-2-2+3-7+6-9+7+10-5-9-0+9+3+10+9+5+10+4+9+8-8-6+7-10-6-8+8+0-3-9-0+4+2-0-4-2+1-5-4-2+5+4-8-3-3-6+8-4-10-3-2-0+4-4+4+8+1-0+3-3+1+6+7-10+10+7-8-3-4-2-5+1-3-2+9+2+2+3-3+0-6+8+1+1+8-10-8-6+7-3+2+2-1-2-4+7-5-9+4-6-3-9+8+7-9-4+3+6-6-8+5+8+8-0-9-9-3+1+10-6-10-5-5-9+6-9+4-5+7+6+8-2+10+2+4-3+4-3+8+10-9-6+5-4+5+1-8+8-6+5+3-0-1+4+2-4+6-4-4-4-0+9+3-8-7-5+7-9+9-9-7+5-6-7-0-5+6-2-2-3+7-5+5+8+1+2+7-0+8-4+2+1-1-10-5+7+0+2-5-6+4+7-5+4+5+6+1+5+1+10+9+1-4-5-4-6-4+4+5-8+7+7+0+2+8+8-7-1+4-9-6+7-3-2-1+1-1-6+7-6-3+1+6+1-1+0-1-2-10-4-6+2-0-1+1+10+3-7+10-10-10-9-2-6+1-3-0+9-2+4+5+4+10-6+8-1+6+10-0-9-6-10-2+4-8+9+8+8-8+5-5+1-8-5+1-6+3+8-3+8+9+0+4+7+3-1-3+0+5-4-5+7+9-0+0-4-7-3-2+10-2-10+6-6+10+5-8+9+3-4-10+4+6+5+4-10+0-7-8-10+6-10-0+9-9+9+9-10-3+1+5+10+0-4-8-2+5-1-0+8+3-1-8-6-3-1+9-8-10-8-7+0+5+9-0-4+7-0-3-0-9-5-6-2+10-2-0-1+0+9+8+0+3+4+10+2-3-6+9+9-5+5+0+10+4+0+5+5-0+8+2+6+6-5+5+7-2+5+1+2+10+2+10+0+10+2+5+10+2+9+4-2-1+1-3+5-1+8-6+3+3+1-8+2+10+4-10-3+1+8-8+2-3-7+8-0-6+8+7-3+9-5+3+8+1-4-6-7-6+3+9+3+3+6+1+3-3+6+6-7-5-2+6-4-7-9+10-4+9+10+8+10+8-4-8-4+9-2-8+8+6-2-0+9-10+1+1+10+7+1-9-7+2-2+6+7+1-2+0+7-10+4+3+5+1-6-6+1+7-4+8-5+7-9+4+9+3+10+1-7+4-9+8-2+6-1+0+8+2+2-5-8-0+0+2+6+9-1+8+10+9+8+7-9-8+4+4+1-8+9+5+9-2+4+4-5+4-2-9+4+3-0-10-2+7-2+7-9+6+4+0-6+9+8-8+4-3+8-3-5+10-1-3+9-5-1+2+0+3+7-1-3+10+3-0-6-4-0+3-10-1-10-0-10+1-1+5+3-6-9+7+2+6+1-9+5-5+9-2+8+4-6+2+1-0-7+8-8-10-8-6+9+9-0-4+4-7+6+6+6+5-2-6+9+8+3-8-4-7-0-3+6+0-7+9-7+0-8+10+7-4+7-6+6+6+9+6+6-1+8-1-5-6+3+1+7-7+1+6+3+2+2+7-6-1-6-4-10+0-8+0-1-1-4+4-7+8-6+9+1+9-0-6-9-9+4+7+7-3+6+5+1+2-3-10-4-6-6+2+3+10-3-6-10+2+9-3+7-10+6-9+7+0+0-9-6-0-3+3-3+4-5-1+1+7+10-5-3-10+9+4+4-9+1-5+7-6-10-3+1-0+8+4+5-7-4+1-2+6+1+4-5-7+7+6+2+2-7+4+0-5-4-5+9-2+0-9-2-3-2+6+9-10+0-3-9+7-7+7+9-8+8+6+1-8-6-3-2+0-1-10-5+2+8-5+5-8-9+8+3-10+2-7+2+1+7+3-3+6+5-5+10+3-3+4+8+5+10-9+3+6-1+8+0+4-3-7-8+1+6+2+0+3-5+9-9-5-5-2-9-2-5+4-8-5-9+4+6-3-8+4-8-3-2+8+1+10-7+9+5+1-6+0+2+3-0-5+2-4-7+7-8-4-10+10-7-9+6-4+6-2-6+0-8+9-3-6+5-6+2+0-3+3+2+7+0+10+3+6+6+8+2-6+8+8-3-10+5-7+10+2+0+2+3-9+5-10+7+7+10+7-0+1-7-1-10+4-7+1+9-8+8-0+4-1-0+8-2+8-10+3-0+0+10-8-3-6-7-4+9+6+8+9-1-2-4-3-1+4-7+7+0+5-2+5+6+10+7-9-2-2-7-7+9-9-6+4+7+8-6+7+3-7-3+6-5+0-0+6-2+6-0+10+5+10+2+9-7-4-9-5+4+5+2-4-8+1-0+2-1-1-10-6-1-7-8+5+4-3+7+4+7-6-4+0-5+3-1+3-0-3+4+0+10-1+2+3-0+2+3-10-4+8-3-1+8+9-4-8-10+4+0+5+1+0+4-1-9-9-4+2-7+0+2-3-4+1-5+10+9+8+1+2-7+3-6+9+8-1+8+8-6-7-8+4+6-1+3+6+7+10-9-8+6-4+10-3-10+6-10-10-5-4-2-3+4-4-5+10+0-6-3+9-2+9-5-0-4-0+3-0+7+5+3+3-8+8-1+8-10-6+10-10-1+10+3-3-8-8-6-5+4+6+3-6-8+1-0+5+6-1+8+7-10+9-9-5+4+2+10+6+10-7+10+2-1+1-2-1+10-2+5+6+7+3-0-4-2+0-6-4+1+10+2+7-7-3-2-3-4+0-8+8+10-0-8-8-7+7+9-1-10-0+10+1-2-7-5+3-8+4+10-0-0-8-6+7+10-2+2+5+5+5-3+4+10+6+6+9+2+9+7-4+8-7+9+1-9-9-3-10+5-0+9+9+10+7+10+0+3-1-8+9-10-9-3+2+6-8+7-3-3+6+10+8-2+8-0-7-8+9+7-3-1+5+5+2-10+3+9-2+6+4+0+10+10-9-7+7-8+4+5-9-9-10-2-1-6+0-8-2+0+9+0-0-0+2-7-9-2+8+6+5-10+6+9-10+0+7-10-8+0-4+3+2-8-10-9-6-0-9+5+2+7+4-8-0-3+5+9-8-2-3+3+1+10-2-7+6+8-8+5-7-7+1+3+9+3-1-3-5-1-8+3-1-10+4+7+10+4-9+6-4+3-1+7+3-5+0+10+9+6+10-2-8-2+6+9+5-6+2-2-5-0+4-5+6+5-4+2+3+4+5+9-7-2+5-6-10-0+6-9+8-10+2-8-7+4-10+4+6+7+7+8+8-8+8+10+5-9-9+3+7+3+6+9-5+1-7-4+8+6-7-3+6-8+10-5-9-1+6-10+8-0+10+4+2-2+9+0-1-5+10-4-5-4+8+10+4-9-1-10+8+2-9-6-7-3+10+2-9+4-7+10-8-10+9+10+0+4-4-1-5+1-0+2-1-6+8-2-10+10-2-5-6+9+5+4-3-3+1-10-3+0+9+4+3+8+5-9+10+6-3+8-5-10+9+6+1+1+8+4-5+5+5-8-2+1-9-3-8-7+3+0-7-1-10-10-7-3+6-5+6-8+0-7+1+0+7-3+6-2-5-1+1-8+5+7+3+3-4-6-5+3-7-10-4-7-8-9+6+6-7-3-1+5+9-7-9-5+10+6-5-7-2-1-1+9-4+7+10+4-6-10-9-2-10-9+3+4+10+10+0-2-8-2+5-3+6-7+0+0-5+7-1+3+8+9+4-2+5+0+0+3-1-1-1-4-9-3+6+7+6+5-7+0-10-8-2-5+5-9-10+4+10+10-2-2+2+10-0+8+0-0+3-4-1+9-10+10-10-5+0-1-1-4+2+9+3-0-4+7-9-7-8+8+7+1-5-2-7-1-9+7+5+6-5-7-0+5+9+0+6-7-9+10+2+3+6-0+0-7-9+10+0-7+5+5+8-8-4+1-8+6-3+2-7-0+10-7+10+4+8-2+4-2-9+8+2-9-2+9-0+4-10-10+2-5-9-2-8+9-2-9-7-4+1+8-4-5+3-7+2+8+2-8-1+9-2-10-8-8+2+9-5+8-10-8+6-3+7+3-1-6+5-7-8-0+1-8-3-3+2+10-6-5+1-8+6-0+5+2-10-3-2+2+9+10+0+6+5-6+7-0-0+3+1+7-1-6+3+9-5-4-5-10+7-1-4-4-4+0-4+7+9+10-4+2-4+8-3-1-0-3-8+10-3-2-1+3+5-0+8-3-8+10+3+6+7-10+6+9+8+9+0+1-7+8-8-6-1-0-2-6-7-0-10-3+5+8-4+4+1-9+5-5+2+5+4-4-8+6+1-7-2-1+1-1-0-1+7-5+3+3-3+4-4-7-7-10+4-7+2-3+4-7-10-9-0+10+3+1+6-2-7+4-6-8-0-0-3-4+1+7-4+9+5+2+5-5+3-2+2+3-1-4-10+3-3+10-2-2-10+9+6-9+5-7-7-7-10-7-7-10+7+8-4+2-3-5+6+10-1+9+9+2-10-1+2-2+6-4+5+6-3+6-8+0-2-4-5-6+8+4-6-9+9-9+0-8+8-6+10+1-4+0-4+4-1-6+0+0-5-8+6+8-10-3+3+4-6+1-0-3-5+9+2-6+3+8-4-10-1+4-3+6-0-10-9+0+1+0-8-4-5-8-8+0-8-2-6-3+0+8-1-8-1+2-1-3+4-2-6+5+7+5+6-2+1-5-3+5-5-6-6-2-5-1-0+2-1+2-4-7-6+6+6+0+0+1-4-9-8-4+4+4+2+6+10-3+9-2+1-0+0+0-0-1+4+9+7-2+0-1-0-5-3-4+3+9-1-0-7-0+0-3-6-8+2-10+3-1+2+10-0+3+7-4-4+6+8-4+8+4+9+1+1-3-7+7+9-1+6-1-9+9+7-9-5+6-5+2-10-5+3+9-3-2+0-0+1-9-2+9+0-5-5-2-1+6-0-1-0+2-3+6-5+1+10+5-0+1-9+1-1-8-3-8+5-9-5+1+8-6+9+8+7+0-10-3+5-6+7-3+9+6-1-3-1-8-1-6+4+10-10+0-10+0+1-6-2-7+5+0+4+7+0+3+7+1-3+6-10+2+1+0+1+1-3+5-10+3-4-8-4-9-7+0+2+2-6-6+1-7-8-5-1+10-9+3+10-6-3-2-0+7+7+1+3-0+10-7-8-2-7+10-1-7-7-7-2-3+5-0-3+7+7-9-5+5-4+8-3-7-1-9+8-1+9+5+6-9+0+6-0-5-4+0+8-3-4+3-5-0+4-1-1+8-3+5-10+5+2+0+7+5-5-0+10-5-7-0-8-8-1+6-2-4+1-6-8-5+6-5+1+8+7+7-0+6-5+4+4+8+4-2-4-7+2-10-6-6+7-5-8+3+7-10-2-8-7+1-0-10-9+4+2+3-6+6+9+1-7-5+9+0-5-6+3+1+10+8-7+10-8+9+9-2-6-2+4-0-7-0-1+0+9-6+3+8+7+3-9+0+3+2+6-6-9+1+7+0-4+10-2+8+6+5+6-10+2+8+6+0-7+3-1+2+2+6-1-8+1+5+5+5+7+7+8-4+0+7+5+10+10+3+2-5+7+8+7+4-10+0+3+10-8+5-6-9-6+8+10-0-5-6+5+8-4+9-0+2+9-8-0-2+6-5-4-1+5-10+0+5+9+8-0-4-6+10-6+7-6-0-10+2+8-6-10+2-3-9+6+2-3+4-10-8-6+10-1-6+5-1-8+4+7-3+5-10-9+8-5+5-8-7-4+9-10+8-9+2-3+10+8-9+7+2+6+3+1-5-3+0-3+3-5+0-3+8+6-5+4-5-10-8-8-7+4+4-4+5-7+3-1-8-4+5-3-5+1+6-4+10+8-7-9+7+0-0+10+1+2-3-5+10+7+9-4-2-0+8+2+4-5-9+0-3-0-2-9+9-4-4+5-4-5-8+9+6+8+6-4-4+6+1+5-5+10+1-5+1-1+7+5-0-8-7-4-10-0-9-1-9+10-9-1-10-7+6+6+4+5-1-1-4-3-4-0-6+3-7-3-7+10-5+8-10+9+1+6-6-9-8+5+7-2-8-10-3-2-1-6-2-9+4+10-10-3+4+3+1+6-0-0-2+1-10-8-9+4-2-1-10-5-4-3-0-10-6-6-8-0-6-8-4-10-4+1+9+0-4+2-9-3+0-1-2+9-0-8+2+8+4-9+2+7+6+1+1+2+0-10-5+3-8+9-4-9+4-6+10+10+5-10+3-3-7+2+5-1-6-10-10-9-6+7-4+2-8-10+7-0+7+9-7-1+10-9+4-0-5+6-0+1-5-4+6+7+10+6-7-9-1-10-5+3-7+0+9-5+6-9+4-7+10+5+9-10+3-1-8-3-9-8+4+7-2+1-0+10+1+0+8-5+8-0+2-0-1+0-0+9-2+9-10-1+3+4-0+5+1-0-3-10-8+5+4-0+7+6-8+1-3-2-1-4-3-1+9+8-4+3+7-8-4+5+3-2+4+10+3-2+1-3-4-1-2+9-0-5-2-9+9-5+6+5+3+2-7+2+2-3+5-7-4-9+5+10+6-0+8-8+2-4+8+9+3+3+0-7+2+1+4+4+2+1+6+2+1+9+1+4+3-5+10+3-2-9+1+8-10+5+5+4+4+1-3-5-1+3+4-2+7+5-0+6-3+6-2-5+7+0-0-1+0-10-8-9-1+4+10-10-2+9-7-0+2-2-6+0+1+8+4+10-1-5+1+3+1+9-3+2+1+6-3-1+1-1-8+9-1+7+0+2-4+6-2+5+0+6+8+2-1+3+2-3+9/6+2+0+2-0-3+4-4-10+3+5-2+1-3-0-0+0-1+9-6+9-6-8+6+8-4-0-7-10-3+8-0-4-8+1-10-9+1+6+2+8+7-5-10+2-10-6+8-7-3-2+6+6-6+10+7-7+2+9-8+0-2+9+10-0+5-10+5+2+9+9-8+5-0-9-10+3-3-8+2-5-5+0-5+0-5-7-6+0+4+10+8+6-10+10-10-3-8-6-7+10-5+1-0-2-6+1-9+1-6-8-5-4+6+0+4+0-2+8+10-3-1-7-4-7+3+7-4+10-6-2+2-8+0+8+8+7+10+0-9+1+9-5+10+8-2+10+6-10+9-0-1+6-10+5-3-0-7+2+9+3-4+1+1-7+6-2+4+3-6+5+6-8-8+9-0+1+7-7-5-6+8+10-3+2-10+5+2-9-10-6+6+4+8+9+1+9+0-0+4-8+6+3+1-1+8-6+2+0-8-7+10-4-4-0-6+10-5-1-9-0-7+10+2-2+0-10+0+0-4+3+8+10-1-5-1+6+5+0-3-8-7-9+1-7-5-5-8+1+0-6-10+8-2-1+4-9+2+7+8-0-7-8-2+1-1+10-9+9-10-5+1+10+8+0-0+8+7-2+10-3+7+7-0-3-3+0+4-4-6+8-7-10+1-4-8+10+2+5-6+1-6-0-4+3+10+3-8+5+6-2+9+3+0-4-6+6+2-1-1+1+3-6-4+5-9-3+8+3+7+4+2+0-5-2+4+0-0-3-5-1+4+7-0+3-10+7+8-5+8-1+2-9+0-4-8+8-9+8+5-10+7+7-4+1+0-4-8-1+6-3-1+3+8-1-8+1-3-9+3+8-2+0-5-0-8-4+6-8-8-7+8-8+4+1-10+5-8-10-0+4+3-2-7-8-0+3-7-3+10+1+0+1-3-7+9+1-10-4-6-0+10-2+10-7-5+5-10+0-3-1+4-7-1+5-6+10+10+6+10-8-1-6-4-8-1-9-1-0-6-3+7-7-3-5+6+1-8-4+7+7+9-8-8-10+7+7+2+8-5-0+5+10-6+5-0+6+7-3-7+10+6+5-1-10+4+10+1-9+4-6+8-6-0-3-5+8-6+8-1-4-3-9-4+1-4-4-10+2-5-1-8+9+10-3+9-9-4+6+8-9+10+0-4+2-10-3+3-10-3-2+6-3-1+4-6+9-10+3+10+7-0+0-8-9+4+2+0-4-2+3+2+6-1+0+6+2-8+9-3+3+0+1+3-8+2+6-4+2-7-0-8-5+9+0-9+2+7+4-8-6-4-3+0+0+9-5-3+9-8-6-5+6-5+4-4-4-7-6-5-8+1+2-0-1+2-7+5-4+5-2+10-7-3-0-6-0+6+10-3-0-0-3+0+3+10-4+7+5-7+4-8+6-7-7-2+4+8+8-7-3+0-7+5+4+9+8-8-3-3-0-4-9+0-1+7+6+1-2-6-6+2+9-3+4+4-5-5-2+7+9-6-2+10-7-8-4+6+9-5+3+9+10-9-4-3+4+3+6-10-9+9-6-0+8+9+8-7-4-6+0-0-1-1-7+5-8+0+9-7-8+3-7+2+6+4+6+6-2-10-4-10-5-1-4-0+10+8+8-2-1+0-8+7+6-10+6-5-3-2+9+0+6+8-7+6+9+5-9+7-3-10-10-3+6-4-10-0-9-1+1-9-2-10-7-5-9+3-5+6+4+1+8+2-2-6+4+4-0-9+9-10-8+9+9-1-9-9+2-6+2-0+6-5+9-3+8-4-6+10-8-6-2+8-9+6-0+6+6+0+0-6+7+6-0+0+8-6+2+4-4+1-9-1+5-6+9+2-7+7+1+1-1+5-8-8-10+7-3-4-7-3+8-10+2-6-10-9-6+5+6+1+8-5+3-10-3-9+3+8+8+3-10-3-6-7+0-7+1-10+6+0+7+2+2-4-10-0+3-7-2+4+2+1-7-9-4+5+4+5+7+2-2+5+6-6-5+6-2+10+3+1+7-1-6+9-3+2-4+8-3+0+10-1+8-7+8-1+5-7-5+9+0-8-5-9+4-6-6-7+7-9-7+5-8-1+4-1+5+0-7+4-7+7+8-9-1+6+0-8-2-9+4+10-10+7+7+4+4-0-0-5+8+7+3-6+6+10-1-3+9+0-2-8+2+2+7+5-0+9+9-1-10+9+0-0-6+2+8-4-1+8-6-6-3-7-3-9-6+4-9-7-4-2-3-0+1+3+5-4+6-5+10-2+1+7-7+7+7+5+3+2-5+9+1-9+5+5+6+10-10-5-8+2-0+9+8-2-3-7-9+5-2-9+4-6+8-0-8+9+4-4-6-7-0+9-0-0+1-0-8-5-9-4+4-3+4+7+10-0-9-1+6-1-6-4-7+8-8+3+6+9-9-2-0-2+10-1-2+2+3-8-4-6-5-2+6-2*4+2+10+6+7+3+9-7-2+1+9-10+0-9+10-8+0+3+0+10-1+4+5+2-9-8-8-1-8-8+6+2+9+10-9-10-7-3-10-0-6+5-2-6-10+5-10-4+3-1-1-8-4-10-3-1+8+7-1-5+0-0+9+10+7-2+5+1+0+6-7+4-2-0+3+0+9-7+4+10+2+7+3-6-10+5+4-7+7+9+6+2-0+0-3+7-1-10-5+7-9+5-7-7-4+7+4-9-7+0-6-6+6+0+8+2-0-9-0-10+5+1+1+8-8+10-0+9-3-3+10+1+6-4+9+1-0-2+4-3-9-4-2+7+7-4-8-9+6-10+9-5-4+6+0-4+7+5+6-5-6+10+4-8+4-0-2-2+3+9+8+2-9-1-5-0+5+10+8+5+3+6-6+3+5+3-8+0+3-6-10+6-9-8+2+3-4+2-4-1-8+3-10+2-1-7+3-8+9-0+7+4-1-0-3-7+10+3-10-9+2+8+9-3-6-9+5-7-4+9+4-5-10+0-3-5-4+2+5-5+2+3+1-4+2+5-8-7+8-1-4-5-7+6+9-0+7-0-9+6+6-7-8-0+9-5-9+3+6-1-8+1+9+8+7-9+5+10-10-2-1+1+8-4+1+3+10-5+6+6+3+0+8-5-10+5-5-4-6+6-2-4+10-10-5+3+4+7+9+1-4+1-5-5-8-6+2-6+0-10-0+3+3+0+1+6+9-1+6+0-7-1-7-10-9-0-8-10+8+6-1-3-9+2+5-0-5+9+9+5-8-9-0+7+4+3+8-4+8-2+1-6+2-10+9-5-7+6-4+7+1-2-8+6-8+1-7-7-10+0-10+1+4+10-10-3-5-10-6-9-8-5-9-0+3+9-5-9-8-3+5-2-5-8-10+8-7-9-10+4+4-6+9-9+6+0-7-9+9+6+1-8-0-6+2-0+2-5+7-0-7+9+6+6-7+9+3-2-3+4-6+6+8-1+3-8-1+6+4-0+6-4-7+4+9+3-4+9-1-8+10-5+2+0+7-9-8+2+2+2+1+9+6+2+0+3+6+3-1-5+5-1+6+1-1-7+9-8-6+6-1-3+9+9+3+1+3+6-0+2+3-9-5+2-1+3-4+2+8-3+2-7+2-2+9-10-10+5-0+10-8-6-3-5+5+0-1+0-4-6+7+4-6-7+4-10-9-2+2-2-0-4+4+6-0-4+2+8+6+7+5+1-1+1+1-10-4-4+2+5+9+9-5-0-6-3+5+2-9+4-1+4-10+10-6+9+7+4+8+5-6+4-1+4-5-3+3-7+2-3+4-2+6+7+10+9-9-9-7-0-4+6-5-6+7-0-6+1-7+3+0+5+1-5-7-4+4-7+1-1-6-6-9+0-5-8+7+5-10+10+1-5-1-7+7-6-9+1-8+1-9-3-0-5+2+2+0-3+3+1+4-2+5-6+6-7+3-0-10+5-3-5-5-8-7-10+10-4+2+8+2-5+0-0+1-6+4-4+4+0-6-0-3-8+10-0-4-5+10-4+0+9+10-10-5-6+8-9+6+10-3+3-7+3-8-6-0-4-0-6+7-6-9-8-1+4+5+10-1+6+4+4-10+2-0-6+4+9+7+8-6-3+2-3+0+1-8+7-7+6+0+10+2+1+4-3-0+1+0+2-6+1+3+3-4+5-5-10-10-9+6+4+6+0-3+1-8+4-5+2+0-1-2+4+3-0+8+2-1+1+10+10+2-4-8+5-4-2+6+6+8-6-8-10-7+4-8-0+10+10-3-4-8-5+6+7-7-2+7+10+6+0-5-5-7+3+5+0-2+9-2+2-4+6+7-7-1+2+10+2+9+4+0-6-5+8-5-5+5+4+6+9+5+10-4+3+4-4+10+3-9+9-4-9-7+9+0+10+1-0+2-2-0+6-1+8-10-9-3+7-6-3+0+3-3+0-7-7-7-9-10-4-8-3-10+9+6+10-1+9+10-4+5+3-3-9-1+10-8-2-4-9+2-6-1-9+4+2+7+3+10-5-9-3-7-0-6+3+10+2+8-3-10+2-9+9+4+4+3+9+2-7-8-8+2+4+10-0-3-7+5+1-6-4-6+7-8-2+8+8+1+4+10-9-9-8+2-3-10-9+3-3+3+10+9-9+2+8-7-1-1-1+8-0/6+9-2-8+4+4+8+0+9+2-4-4-10+6+8+8+6-7-6-0-10-7+1-6-2-3+7+8-3-6+10-7+3-10+3+6-3+0-6+2+2-10+4+3+3-8+2+2-6-5+2-0+8-7+3+9-2-2-2+1+2-10-7-3+1-8+1+10-1-9+9+4-3+9+10-9+5+10+3+6-10-0+7+10-10+0+5+6+4-6+8-9-6+6-10+0+5-3-0+0+5-2+2+10-6-4+6-3-4-6-7+0-8-0-9-3+5+10+6-2-6+7-9-10-6+3+6-7+9+8+0-6+10-5+3-0+9-10-5+5-1-6-8-3-5+10+1+10+6+1+2-7-3+1+9-3+10-0+0+7+9-3-9-10-2-1+3-7+6+9+9-7+1+7-6+9+2-0+4+0-0+4+1+1+4-7-7+0-0-0+7-3+4-1+10+2-3-2-1-1+3-8-6+0-10+3-4-6-0+3+1-2+3+7-2-5+5-1-2-3+1+8+2-5-2+3-4+1-2+6-8+0+1+5-1+10-1+9+8-4-4+1-5+0+0-9+7-7+2-4-6-2-1+8-1+6-5+2-5+6+6+0-6+10-0+1-8+0-7-7+8+2-1-2-4+4-3+9+1+1+3-9-7+3-9-9+7-4-9+4+10+3+7+0+0+10+2+9+9-10+9-0+0+7+1-3-9-8+3+1+4-5-4+2-4-6-1-8+8-2-10+3-7-6+5+5+3-9+0+7-9-5-10+2-4-1+0-9-9-8+8-2-8-9-3+3-6+5-2+4+1+6+2+5-3+10-9-1-8-0+0+1+0-2+10-10+4-1+4-8-4-9-0-9-7+10-3-9+1+3+3+4+6+0+4+0-5-4+0+2-1+9-5-4+9+9+0+6-2-6-4+5+6+9-3+2-3-8+1-6-3+8+4+2+5+5-2+2-0-6-5-6+7+4+2+7+2+2-7+4+6-6-10+8+4+1-0+10+5+2-6+6+0-4+0+8+0-10+3+6+2+1+3+3+9+5-0-10+7-4-2-7+1+9-6+6+6-10+4-0-0+9+9-1-3-0+7-3-3-8+6-10+1-9+1-6+3+1+9-0+3-6+6-3-10+3-6-4-7+2-10+1-7+0-9-4-4+10-10+9+3-7+4+9-2-6-3+4+10-9-3+6-1+2+2-9+6-6-3+8-8-10+9+2+2+8+7+7+0-1-8+0+4-3+5+6-9-0+1+3+3+6+9-4-0+2-3-6+10-8-7+8-5+3-7+0-7-8-2+9+3+8-7+3+8-3-5+0-1+10-1-2+3+9+4-10+8-7-7+2-5+10+3+3-8+5-7-8-1+3+10-5+9+3-1-3-5-4+0+0-9-9-0-4+9-2+2-10+4+6+0-2+2+5+3+2-7-8+2+9+10-7-6-8-3-9-9+5+10+0+4+6+4+9+0+9+5-2+6-10+7-6+9-2-5+1-4+2-4-7-1-7-10+3+8-8-6+7+2+9-6-0+4-6+2-9-0+4-0+5+0-4+4+8+0+10-2-7+3-4-2-5+0+0+1-7+4-0-1-1-8-4-7+0+4+7-1+7-4-5+1-6-5+1+5+1-1-6+2+8+5+0-10+7-10+6+5+4+4-6+6-1-7+1-10+9-1-5+8-9-0-7+6-9-4+8-8-2+8-8-10-6+8-10-1-9+8+2-2+8-0+6+3+4-4+2+8-1+9-5+8-4+8+2+5-7+1+6-3+0-1+8-8+3+4+10+0+3+4+9+1+10-6+7+8+5-0-10-6+8-5+0+1-10-7+5-8-6-5-6-8+10-4+8+7+4-0+10+4-1-10+10-3+4-3+8-2-5-2+3-7-7+9-10+4+0+6+8-9+7-3+6+0+2-1-9-5+3+0+1-3-8-6-7-0+4-4+8-1-9+8-0+6+9-5+7+9-5+4+3-1+10+0-8+7-8+1-6+1+3-1-7+7-5+8+8+5-4-7-7-5+3-3-7-2+2-0-9+0+8-7+4-4-9-8+1+4+9-10+9-7-9-4-4-8-1+5+9-0+9+7+9-6-8-7+2-1-6+3+9+10-8+4-8-9+1-6+0+8+7+7-4+3-5+10-8+6+3+8-7+8+8+0-1-1-2-8+8-8-1-5-4+10-1-3-10-5+1+1+4+8-5-8-3-1-3-4+5-9-4+10-1-7+0+4-2-7-4-3-6+9-2+9-5-5+5+4-10-1*3+9+3+3+4-1+5+1+3+10-1-3-10+9-7+2+8+4+4-2+10+0+6-7-8+8+8-8-0+0-10+5+6+8-1-3+3+10-4+9+6-3+2-4-1-3-4+3-7-1-4+2+6+4-9+8+2-7-4+6-10+2-2+10+1-10+6+6-10+0+3+7-5-4+8+6+6-9-6-5+5-2+5-9-7-1-8+2-0+2-8+4+8+8-10-7-0+1+0+1-4+6-9+4-3+3+1+1+6-3+9+0-1-5-4-1+5-2-9-4+4-7-0-3+6+5-10-8-7+0+2+1+9/5+10+1-8-10-5+9-3-5-5+8+8-8-3+0-5-2-7-1-6-4-5-8+3-8-5+7+6+4+4+4-4+10-9+2-1+4+9-3-4+5+3-8+0+10+1+5-7-8+3+3-9-9+9-3-1+10+6-5-5+9-1-6-4+0+8+10-9-6-3-9+0+5-0-0-3+0-6+2+6+4-2+3+3+2+8-6+6-9-4-2-10+0+9+10-8+10+9+7-0+3-0+1+7+10+8-5-10-1+0-2-9-2+8-0-5-7-3-10+0-9-8-7+8-9+2+1+10+1+8-10-7-0+3-6-7+2+1-8-8-2-4+1+3+1+3+4-5+8+10+7+2+1-3+3+6+8+7+4-3-9+1-7+8+3-3-8+2-8-9+3-7+6+7+2+6-8-2-4+5-9+7+4-1+5-8+0-10+5-2-4-9-3+3+3+1+10+9-6-9-3+7-8-4-5+6+6-1-1-9+4+8-1-4+0+8-6-7-4+3-1-8+2+6-6-10+1-2+1-8-10-6+1+4-3+10+9-7-7+9-2+2+1-4+7+0+10-8-4+7-8-7+7-3+8+4+7+9+2-8-10+9+6-0-1-1-1+8+10+8+9+10-4+3+2-6-10+8-3-8-9-0+9+8-10-2-9-4-10+8-4+3-4+0-10+3+2+1-2-6-8-4-8-2+5-4-6-2+5-7-2-9+7-8+2+7-9-5+8-0+2+5+9+10+8-8+7+5+0+2-9-1+1-5+6+0-5-8-1-3-10+1-2+7-8+2+8+4+9-0-7+4+9-10+7+7-8+3+4-8-1+5-10-7+4+4-6+7+8+1-2-5-2+2+1-2+6-1+5-7-7+10+9-2-1-6+1-2-8+10+7-6-8+9-1+9-6+8-1-8+2-7+7-0+1-6-2-4+6+7-7-1+5-7+5+9+8+7+2-2+8-1+2-2-0+2-5-6-1+2+0-10-2-8-6+10-2-9+2-4+10-0-4+6-2-0-8+9+7-10-2+5-0-4+0+1+7-3+4-0-8+7-3-10+8-6+4-6+3+8+5-6+9-8+6-2+10+4+8-2+8+0-7+3-9-7-2-10-7-1-6-3-0+0+0-9+5-1-7+2+3+8-10-10+3+0-8-2+8+9+9-0-1+5-1+9+3+3+2+8+6-1-1-10-7+4-0-6+3-8-1-5+9-1-10+0-2-0-4-9+7+4-5-10-3+2+7+4-6-1-4+4-4-8+8-4-7+6-6+9-2-1+3-2-1-4-9+1-3+3+0+0-6-10+4-10+9-7-4-4-1+7+3-8-6-5-3+10+7+2-5+5-3+10-2+3-8-6+2-8+5-1+9/3+5*6/3")); \ No newline at end of file diff --git a/258-Add-Digits.js b/258-Add-Digits.js new file mode 100644 index 0000000..328420b --- /dev/null +++ b/258-Add-Digits.js @@ -0,0 +1,26 @@ +/** + * https://leetcode.com/problems/add-digits/description/ + * Difficulty:Easy + * + * Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. + * For example: + * Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it. + * Follow up: + * Could you do it without any loop/recursion in O(1) runtime? + * + */ + +/** + * @param {number} num + * @return {number} + */ +var addDigits = function (num) { + if (num < 10) return num; + return addDigits(sum(num)); +}; + +function sum(num) { + return ('' + num).split('').reduce((a, b) => a + parseInt(b), 0); +} + +console.log(addDigits(38)); \ No newline at end of file diff --git a/Easy_263_Ugly_Number.js b/263-Ugly-Number.js similarity index 97% rename from Easy_263_Ugly_Number.js rename to 263-Ugly-Number.js index 23d3507..b577f9b 100644 --- a/Easy_263_Ugly_Number.js +++ b/263-Ugly-Number.js @@ -1,6 +1,7 @@ /** * * https://leetcode.com/problems/ugly-number/#/description + * Difficulty:Easy * * Write a program to check whether a given number is an ugly number. * diff --git a/Easy_268_Missing_Number.js b/268-Missing-Number.js similarity index 89% rename from Easy_268_Missing_Number.js rename to 268-Missing-Number.js index 27e102e..d19216e 100644 --- a/Easy_268_Missing_Number.js +++ b/268-Missing-Number.js @@ -1,4 +1,6 @@ /** + * https://leetcode.com/problems/missing-number/description/ + * Difficulty:Easy * * Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, * find the one that is missing from the array. diff --git a/283-Move-Zeroes.js b/283-Move-Zeroes.js new file mode 100644 index 0000000..d182a1c --- /dev/null +++ b/283-Move-Zeroes.js @@ -0,0 +1,46 @@ +/** + * https://leetcode.com/problems/move-zeroes/description/ + * Difficulty:Easy + * + * Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements. + * For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0]. + * Note: + * You must do this in-place without making a copy of the array. + * Minimize the total number of operations. + * + */ + +/** + * @param {number[]} nums + * @return {void} Do not return anything, modify nums in-place instead. + */ +var moveZeroes = function (nums) { + // console.log(nums); + var i = 0; + var j = 1; + var n = nums.length; + while (i < n && j < n) { + if (nums[i] !== 0) { + i++; + if (i >= j) { + j = i + 1; + } + } + else if (nums[j] === 0) { + j++ + } else { + swap(nums, i, j) + } + } + + // console.log(nums); + // return nums; +}; + +function swap(nums, i, j) { + var t = nums[i]; + nums[i] = nums[j]; + nums[j] = t; +} + +console.log(moveZeroes([0, 1, 0, 3, 12])); \ No newline at end of file diff --git a/300-Longest-Increasing-Subsequence.js b/300-Longest-Increasing-Subsequence.js new file mode 100644 index 0000000..542fbf8 --- /dev/null +++ b/300-Longest-Increasing-Subsequence.js @@ -0,0 +1,37 @@ +/** + * https://leetcode.com/problems/longest-increasing-subsequence/description/ + * Difficulty:Medium + * Given an unsorted array of integers, find the length of longest increasing subsequence. + * For example, + * Given [10, 9, 2, 5, 3, 7, 101, 18], + * The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Note that there may be more than one LIS combination, it is only necessary for you to return the length. + * Your algorithm should run in O(n2) complexity. + * Follow up: Could you improve it to O(n log n) time complexity? + * + */ + +/** + * @param {number[]} nums + * @return {number} + */ +var lengthOfLIS = function (nums) { + + var dp = []; + for (var i = 0; i < nums.length; i++) { + dp[i] = 1; + + var max = 0; + for (var j = 0; j < i; j++) { + if (nums[j] < nums[i]) { + if (dp[j] > max) { + max = dp[j] + } + } + } + dp[i] = max + 1; + } + + return Math.max(...dp); +}; + +console.log(lengthOfLIS([23, 2, 4, 5, 6])); \ No newline at end of file diff --git a/Easy_349_Intersection_of_Two_Arrays.js b/349-Intersection-of-Two-Arrays.js similarity index 68% rename from Easy_349_Intersection_of_Two_Arrays.js rename to 349-Intersection-of-Two-Arrays.js index 956a32d..a6b74ef 100644 --- a/Easy_349_Intersection_of_Two_Arrays.js +++ b/349-Intersection-of-Two-Arrays.js @@ -1,12 +1,13 @@ /** + * https://leetcode.com/problems/intersection-of-two-arrays/description/ + * Difficulty:Easy + * * Given two arrays, write a function to compute their intersection. - - Example: - Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. - - Note: - Each element in the result must be unique. - The result can be in any order. + * Example: + * Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. + * Note: + * Each element in the result must be unique. + * The result can be in any order. */ /** diff --git a/Easy_383_Ransom_Note.js b/383-Ransom-Note.js similarity index 100% rename from Easy_383_Ransom_Note.js rename to 383-Ransom-Note.js diff --git a/Easy_387_First_Unique_Character_in_a_String.js b/387-First-Unique-Character-in-a-String.js similarity index 63% rename from Easy_387_First_Unique_Character_in_a_String.js rename to 387-First-Unique-Character-in-a-String.js index 76add99..7555004 100644 --- a/Easy_387_First_Unique_Character_in_a_String.js +++ b/387-First-Unique-Character-in-a-String.js @@ -1,16 +1,16 @@ /** + * https://leetcode.com/problems/first-unique-character-in-a-string/description/ + * Difficulty:Easy + * * Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1. - - Examples: - - s = "leetcode" - return 0. - - s = "loveleetcode", - return 2. - Note: You may assume the string contain only lowercase letters. - - + * + * Examples: + * s = "leetcode" + * return 0. + * s = "loveleetcode", + * return 2. + * Note: You may assume the string contain only lowercase letters. + * */ /** diff --git a/392-Is-Subsequence.js b/392-Is-Subsequence.js new file mode 100644 index 0000000..ec17c5d --- /dev/null +++ b/392-Is-Subsequence.js @@ -0,0 +1,43 @@ +/** + * https://leetcode.com/problems/is-subsequence/description/ + * Difficulty:Medium + * + * Given a string s and a string t, check if s is subsequence of t. + * You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string, and s is a short string (<=100). + * A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ace" is a subsequence of "abcde" while "aec" is not). + * + * Example 1: + * s = "abc", t = "ahbgdc" + * Return true. + * + * Example 2: + * s = "axc", t = "ahbgdc" + * Return false. + * + * Follow up: + * If there are lots of incoming S, say S1, S2, ... , Sk where k >= 1B, and you want to check one by one to see if T has its subsequence. In this scenario, how would you change your code? + */ + +/** + * @param {string} s + * @param {string} t + * @return {boolean} + */ +var isSubsequence = function (s, t) { + var i = 0; + var j = 0; + var m = s.length; + var n = t.length; + while (j < n && i < m) { + if (s[i] === t[j]) { + i++; + } + j++; + } + + return i === m; +}; + +console.log(isSubsequence('abc', 'asssbsssc')); +console.log(isSubsequence('abc', 'asssbsss')); +console.log(isSubsequence('', 'asssbsss')); \ No newline at end of file diff --git a/Easy_404_Sum_of_Left_Leaves.js b/404-Sum-of-Left-Leaves.js similarity index 68% rename from Easy_404_Sum_of_Left_Leaves.js rename to 404-Sum-of-Left-Leaves.js index 3704f03..19d30bc 100644 --- a/Easy_404_Sum_of_Left_Leaves.js +++ b/404-Sum-of-Left-Leaves.js @@ -1,15 +1,15 @@ /** + * https://leetcode.com/problems/sum-of-left-leaves/description/ + * Difficulty:Easy + * * Find the sum of all left leaves in a given binary tree. - - Example: - - 3 - / \ - 9 20 - / \ - 15 7 - - There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24. + * Example: + * 3 + * / \ + * 9 20 + * / \ + * 15 7 + * There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24. * */ diff --git a/413-Arithmetic-Slices.js b/413-Arithmetic-Slices.js new file mode 100644 index 0000000..c6a997d --- /dev/null +++ b/413-Arithmetic-Slices.js @@ -0,0 +1,55 @@ +/** + * https://leetcode.com/problems/arithmetic-slices/description/ + * Difficulty:Medium + * + * A sequence of number is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same. + * + * For example, these are arithmetic sequence: + * 1, 3, 5, 7, 9 + * 7, 7, 7, 7 + * 3, -1, -5, -9 + * + * The following sequence is not arithmetic. + * 1, 1, 2, 5, 7 + * + * A zero-indexed array A consisting of N numbers is given. A slice of that array is any pair of integers (P, Q) such that 0 <= P < Q < N. + * + * A slice (P, Q) of array A is called arithmetic if the sequence: + * + * A[P], A[p + 1], ..., A[Q - 1], A[Q] is arithmetic. In particular, this means that P + 1 < Q. + * + * The function should return the number of arithmetic slices in the array A. + * + * Example: + * A = [1, 2, 3, 4] + * + * return: 3, for 3 arithmetic slices in A: [1, 2, 3], [2, 3, 4] and [1, 2, 3, 4] itself. + * + */ + +/** + * @param {number[]} A + * @return {number} + */ +var numberOfArithmeticSlices = function (A) { + if (A.length < 3) return 0; + var dp = []; + if (A[2] - A[1] === A[1] - A[0]) { + dp[2] = 1; + } else { + dp[2] = 0; + } + var result = dp[2]; + + for (var i = 3; i < A.length; i++) { + if (A[i] - A[i - 1] === A[i - 1] - A[i - 2]) { + dp[i] = dp[i - 1] + 1; + result += dp[i]; + } else { + dp[i] = 0; + } + } + + return result; + } +; \ No newline at end of file diff --git a/Easy_415_Add_Strings.js b/415-Add-Strings.js similarity index 92% rename from Easy_415_Add_Strings.js rename to 415-Add-Strings.js index 7f64f5c..e1ef309 100644 --- a/Easy_415_Add_Strings.js +++ b/415-Add-Strings.js @@ -1,4 +1,7 @@ /** + * https://leetcode.com/problems/add-strings/description/ + * Difficulty:Easy + * * Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2. * Note: * diff --git a/416-Partition-Equal-Subset-Sum.js b/416-Partition-Equal-Subset-Sum.js new file mode 100644 index 0000000..3c12f72 --- /dev/null +++ b/416-Partition-Equal-Subset-Sum.js @@ -0,0 +1,58 @@ +/** + * https://leetcode.com/problems/partition-equal-subset-sum/description/ + * Difficulty:Medium + * + * Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal. + * Note: + * Each of the array element will not exceed 100. + * The array size will not exceed 200. + * Example 1: + * Input: [1, 5, 11, 5] + * Output: true + * Explanation: The array can be partitioned as [1, 5, 5] and [11]. + * Example 2: + * Input: [1, 2, 3, 5] + * Output: false + * Explanation: The array cannot be partitioned into equal sum subsets. + */ + +/** + * + * 01背包问题 + * @param {number[]} nums + * @return {boolean} + */ +var canPartition = function (nums) { + var sum = nums.reduce((a, b) => a + b, 0); + if (sum % 2) return false; + sum = sum / 2; + + var n = nums.length; + var dp = []; + + while (dp.push(new Array(sum + 1).fill(0)) < n + 1) ; + + + for (var i = 0; i < n + 1; i++) { + dp[i][0] = 1; + } + + for (var i = 1; i < n + 1; i++) { + for (var j = 1; j < sum + 1; j++) { + if (dp[i - 1][j]) dp[i][j] = 1; + if (j >= nums[i - 1] && dp[i - 1][j - nums[i - 1]]) dp[i][j] = 1; + } + } + + // console.log(dp); + + return !!dp[n][sum]; + +}; + +console.log(canPartition([1, 5])); +console.log(canPartition([1, 5, 11, 5])); +// console.log(canPartition([1, 5, 11, 5, 1, 1])); +// console.log(canPartition([1, 5, 11, 5, 2])); +// console.log(canPartition([1, 5, 11, 5])); +// console.log(canPartition([1, 2, 3, 5])); \ No newline at end of file diff --git a/Easy_447_Number_of_Boomerangs.js b/447-Number-of-Boomerangs.js similarity index 98% rename from Easy_447_Number_of_Boomerangs.js rename to 447-Number-of-Boomerangs.js index c57ddef..2a6ef66 100644 --- a/Easy_447_Number_of_Boomerangs.js +++ b/447-Number-of-Boomerangs.js @@ -1,4 +1,7 @@ /** + * https://leetcode.com/problems/number-of-boomerangs/description/ + * Difficulty:Easy + * * Given n points in the plane that are all pairwise distinct, * a "boomerang" is a tuple of points (i, j, k) such that the distance * between i and j equals the distance between i and k (the order of the tuple matters). diff --git a/448-Find-All-Numbers-Disappeared-in-an-Array.js b/448-Find-All-Numbers-Disappeared-in-an-Array.js new file mode 100644 index 0000000..1dd3f3b --- /dev/null +++ b/448-Find-All-Numbers-Disappeared-in-an-Array.js @@ -0,0 +1,46 @@ +/** + * https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/description/ + * Difficulty:Easy + * + * Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. + * Find all the elements of [1, n] inclusive that do not appear in this array. + * Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space. + * Example: + * Input: + * [4,3,2,7,8,2,3,1] + * Output: + * [5,6] + */ + +/** + * @param {number[]} nums + * @return {number[]} + */ +var findDisappearedNumbers = function (nums) { + const ret = []; + let i = 0; + const n = nums.length; + while (i < n) { + // console.log(nums); + const t = nums[i]; + if (t !== i + 1 && nums[t - 1] !== t) { + swap(nums, i, t - 1); + continue; + } + i++; + } + + for (let i = 0; i < n; i++) { + if (nums[i] !== i + 1) ret.push(i + 1); + } + return ret; + +}; + +function swap(nums, i, j) { + var t = nums[i]; + nums[i] = nums[j]; + nums[j] = t; +} + +console.log(findDisappearedNumbers([4, 3, 2, 7, 8, 2, 3, 1])); \ No newline at end of file diff --git a/Easy_453_Minimum_Moves_to_Equal_Array_Elements.js b/453-Minimum-Moves-to-Equal-Array-Elements.js similarity index 72% rename from Easy_453_Minimum_Moves_to_Equal_Array_Elements.js rename to 453-Minimum-Moves-to-Equal-Array-Elements.js index 3d49be4..947c0ab 100644 --- a/Easy_453_Minimum_Moves_to_Equal_Array_Elements.js +++ b/453-Minimum-Moves-to-Equal-Array-Elements.js @@ -1,19 +1,17 @@ /** + * https://leetcode.com/problems/minimum-moves-to-equal-array-elements/description/ + * Difficulty:Easy + * * Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1. - - Example: - - Input: - [1,2,3] - - Output: - 3 - - Explanation: - Only three moves are needed (remember each move increments two elements): - - [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] - + * Example: + * Input: + * [1,2,3] + * Output: + * 3 + * Explanation: + * Only three moves are needed (remember each move increments two elements): + * [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] + * */ /** diff --git a/454-4Sum-II.js b/454-4Sum-II.js new file mode 100644 index 0000000..9dfe63b --- /dev/null +++ b/454-4Sum-II.js @@ -0,0 +1,54 @@ +/** + * Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) + * there are such that A[i] + B[j] + C[k] + D[l] is zero. + + To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. + All integers are in the range of -228 to 228 - 1 and the result is guaranteed to be at most 231 - 1. + + Example: + + Input: + A = [ 1, 2] + B = [-2,-1] + C = [-1, 2] + D = [ 0, 2] + + Output: + 2 + + Explanation: + The two tuples are: + 1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0 + 2. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0 + */ + +/** + * @param {number[]} A + * @param {number[]} B + * @param {number[]} C + * @param {number[]} D + * @return {number} + */ +var fourSumCount = function (A, B, C, D) { + var cnt = 0; + var map = {}; + var n = A.length; + + for (var i = 0; i < n; i++) { + for (var j = 0; j < n; j++) { + var sum = A[i] + B[j]; + if (map[sum] === undefined) map[sum] = 1; + else map[sum]++; + } + } + + for (var i = 0; i < n; i++) { + for (var j = 0; j < n; j++) { + var sum = C[i] + D[j]; + if (map[-sum] !== undefined) cnt += map[-sum]; + } + } + return cnt; +}; + +console.log(fourSumCount([1, 2], [-2, -2], [-1, 2], [0, 2])); \ No newline at end of file diff --git a/Easy_455_Assign_Cookies.js b/455-Assign-Cookies.js similarity index 68% rename from Easy_455_Assign_Cookies.js rename to 455-Assign-Cookies.js index ceb74f7..425a077 100644 --- a/Easy_455_Assign_Cookies.js +++ b/455-Assign-Cookies.js @@ -1,20 +1,19 @@ /** + * https://leetcode.com/problems/assign-cookies/description/ + * Difficulty:Easy + * * Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie. Each child i has a greed factor gi, which is the minimum size of a cookie that the child will be content with; and each cookie j has a size sj. If sj >= gi, we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number. - - Note: - You may assume the greed factor is always positive. - You cannot assign more than one cookie to one child. - - Example 1: - - Input: [1,2,3], [1,1] - - Output: 1 - - Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. - And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content. - You need to output 1. - + * + * Note: + * You may assume the greed factor is always positive. + * You cannot assign more than one cookie to one child. + * Example 1: + * Input: [1,2,3], [1,1] + * Output: 1 + * Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. + * And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content. + * You need to output 1. + * */ /** diff --git a/Easy_461_Hamming_Distance.js b/461-Hamming-Distance.js similarity index 52% rename from Easy_461_Hamming_Distance.js rename to 461-Hamming-Distance.js index ae66268..b94f74d 100644 --- a/Easy_461_Hamming_Distance.js +++ b/461-Hamming-Distance.js @@ -1,25 +1,20 @@ /** + * https://leetcode.com/problems/hamming-distance/description/ + * Difficulty:Easy * * The Hamming distance between two integers is the number of positions at which the corresponding bits are different. - - Given two integers x and y, calculate the Hamming distance. - - Note: - 0 ≤ x, y < 231. - - Example: - - Input: x = 1, y = 4 - - Output: 2 - - Explanation: - 1 (0 0 0 1) - 4 (0 1 0 0) - ↑ ↑ - - The above arrows point to positions where the corresponding bits are different. - + * Given two integers x and y, calculate the Hamming distance. + * Note: + * 0 ≤ x, y < 231. + * Example: + * Input: x = 1, y = 4 + * Output: 2 + * Explanation: + * 1 (0 0 0 1) + * 4 (0 1 0 0) + * ↑ ↑ + * The above arrows point to positions where the corresponding bits are different. + * */ /** diff --git a/Easy_476_Number_Complement.js b/476-Number-Complement.js similarity index 90% rename from Easy_476_Number_Complement.js rename to 476-Number-Complement.js index 3f826cc..dfd7d01 100644 --- a/Easy_476_Number_Complement.js +++ b/476-Number-Complement.js @@ -1,5 +1,6 @@ /** - * + * https://leetcode.com/problems/number-complement/description/ + * Difficulty:Easy * * Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation. * Note: diff --git a/Medium_477_Total_Hamming_Distance.js b/477-Total-Hamming-Distance.js similarity index 99% rename from Medium_477_Total_Hamming_Distance.js rename to 477-Total-Hamming-Distance.js index f0ee3b4..e9c87af 100644 --- a/Medium_477_Total_Hamming_Distance.js +++ b/477-Total-Hamming-Distance.js @@ -1,22 +1,22 @@ /** + * https://leetcode.com/problems/total-hamming-distance/description/ + * Difficulty:Medium * * The Hamming distance between two integers is the number of positions at which * the corresponding bits are different. - - Now your job is to find the total Hamming distance between all pairs of the given numbers. - - Example: - Input: 4, 14, 2 - - Output: 6 - - Explanation: In binary representation, the 4 is 0100, 14 is 1110, and 2 is 0010 (just - showing the four bits relevant in this case). So the answer will be: - HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6. - Note: - Elements of the given array are in the range of 0 to 10^9 - Length of the array will not exceed 10^4. - + * Now your job is to find the total Hamming distance between all pairs of the given numbers. + * + * Example: + * Input: 4, 14, 2 + * Output: 6 + * Explanation: In binary representation, the 4 is 0100, 14 is 1110, and 2 is 0010 (just + * showing the four bits relevant in this case). So the answer will be: + * HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6. + * + * Note: + * Elements of the given array are in the range of 0 to 10^9 + * Length of the array will not exceed 10^4. + * */ /** diff --git a/492-Construct-the-Rectangle.js b/492-Construct-the-Rectangle.js new file mode 100644 index 0000000..52e30c6 --- /dev/null +++ b/492-Construct-the-Rectangle.js @@ -0,0 +1,38 @@ +/** + * + * https://leetcode.com/problems/construct-the-rectangle/description/ + * Difficulty:Easy + * + * For a web developer, it is very important to know how to design a web page's size. + * So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, + * whose length L and width W satisfy the following requirements: + * 1. The area of the rectangular web page you designed must equal to the given target area. + * 2. The width W should not be larger than the length L, which means L >= W. + * 3. The difference between length L and width W should be as small as possible. + * You need to output the length L and the width W of the web page you designed in sequence. + * + * Example: + * Input: 4 + * Output: [2, 2] + * Explanation: The target area is 4, and all the possible ways to construct it are [1,4], [2,2], [4,1]. + * But according to requirement 2, [1,4] is illegal; according to requirement 3, [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2. + * + * Note: + * The given area won't exceed 10,000,000 and is a positive integer + * The web page's width and length you designed must be positive integers. + * */ + +/** + * @param {number} area + * @return {number[]} + */ +var constructRectangle = function (area) { + + var w = Math.floor(Math.sqrt(area)); + while (area % w != 0) w--; + return [area / w, w]; + +}; + +console.log(constructRectangle(4)); +console.log(constructRectangle(17)); \ No newline at end of file diff --git a/Easy_504_Base_7.js b/504-Base-7.js similarity index 69% rename from Easy_504_Base_7.js rename to 504-Base-7.js index 015ade7..13b6fd3 100644 --- a/Easy_504_Base_7.js +++ b/504-Base-7.js @@ -1,17 +1,16 @@ /** + * https://leetcode.com/problems/base-7/description/ + * Difficulty:Easy * * Given an integer, return its base 7 string representation. - - Example 1: - Input: 100 - Output: "202" - - Example 2: - Input: -7 - Output: "-10" - - Note: The input will be in range of [-1e7, 1e7]. - + * Example 1: + * Input: 100 + * Output: "202" + * Example 2: + * Input: -7 + * Output: "-10" + * Note: The input will be in range of [-1e7, 1e7]. + * */ /** diff --git a/Easy_506_Relative_Ranks.js b/506-Relative-Ranks.js similarity index 58% rename from Easy_506_Relative_Ranks.js rename to 506-Relative-Ranks.js index 97abe42..4f032d2 100644 --- a/Easy_506_Relative_Ranks.js +++ b/506-Relative-Ranks.js @@ -1,14 +1,18 @@ /** + * https://leetcode.com/problems/relative-ranks/description/ + * Difficulty:Easy + * * Given scores of N athletes, find their relative ranks and the people with the top three highest scores, who will be awarded medals: "Gold Medal", "Silver Medal" and "Bronze Medal". - - Example 1: - Input: [5, 4, 3, 2, 1] - Output: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"] - Explanation: The first three athletes got the top three highest scores, so they got "Gold Medal", "Silver Medal" and "Bronze Medal". - For the left two athletes, you just need to output their relative ranks according to their scores. - Note: - N is a positive integer and won't exceed 10,000. - All the scores of athletes are guaranteed to be unique. + * + * Example 1: + * Input: [5, 4, 3, 2, 1] + * Output: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"] + * Explanation: The first three athletes got the top three highest scores, so they got "Gold Medal", "Silver Medal" and "Bronze Medal". + * For the left two athletes, you just need to output their relative ranks according to their scores. + * Note: + * N is a positive integer and won't exceed 10,000. + * All the scores of athletes are guaranteed to be unique. + * */ /** diff --git a/520-Detect-Capital.js b/520-Detect-Capital.js new file mode 100644 index 0000000..5966cf7 --- /dev/null +++ b/520-Detect-Capital.js @@ -0,0 +1,70 @@ +/** + * https://leetcode.com/problems/detect-capital/description/ + * Difficulty:Easy + * + * Given a word, you need to judge whether the usage of capitals in it is right or not. + * We define the usage of capitals in a word to be right when one of the following cases holds: + * All letters in this word are capitals, like "USA". + * All letters in this word are not capitals, like "leetcode". + * Only the first letter in this word is capital if it has more than one letter, like "Google". + * Otherwise, we define that this word doesn't use capitals in a right way. + * + */ + +/** + * @param {string} word + * @return {boolean} + */ +var detectCapitalUse = function (word) { + + var len = word.length; + var upperLen = 0; + var lowerLen = 0; + var firstCap = false; + for (var i = 0; i < len; i++) { + var ch = word[i]; + if (/[A-Z]/.test(ch)) { + upperLen++; + if (i == 0) { + firstCap = true; + } + } + if (/[a-z]/.test(ch)) { + lowerLen++; + } + } + if (upperLen == len) return true; + if (lowerLen == len) return true; + return (upperLen == 1 && firstCap && len > 1); +}; + +/** + * @param {string} word + * @return {boolean} + */ +var detectCapitalUse = function (word) { + + var isFirstChUpper = false; + var upperCnt = 0; + var n = word.length; + + for (let i = 0; i < n; i++) { + let ch = word[i]; + if (ch >= 'A' && ch <= 'Z') { + upperCnt++; + if (i === 0) isFirstChUpper = true; + } + } + + if (isFirstChUpper) { + return upperCnt === 1 || upperCnt === n; + } else { + return upperCnt === 0; + } +}; + +console.log(detectCapitalUse('USA')); +console.log(detectCapitalUse('FlaG')); +console.log(detectCapitalUse('A')); +console.log(detectCapitalUse('Google')); +console.log(detectCapitalUse('leetcode')); \ No newline at end of file diff --git a/523-Continuous-Subarray-Sum.js b/523-Continuous-Subarray-Sum.js new file mode 100644 index 0000000..a0123fa --- /dev/null +++ b/523-Continuous-Subarray-Sum.js @@ -0,0 +1,57 @@ +/** + * https://leetcode.com/problems/continuous-subarray-sum/description/ + * Difficulty:Medium + * + * Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer + * + * Example 1: + * Input: [23, 2, 4, 6, 7], k=6 + * Output: True + * Explanation: Because [2, 4] is a continuous subarray of size 2 and sums up to 6. + * + * Example 2: + * Input: [23, 2, 6, 4, 7], k=6 + * Output: True + * Explanation: Because [23, 2, 6, 4, 7] is an continuous subarray of size 5 and sums up to 42. + * + * Note: + * The length of the array won't exceed 10,000. + * You may assume the sum of all the numbers is in the range of a signed 32-bit integer. + */ + +/** + * @param {number[]} nums + * @param {number} k + * @return {boolean} + */ +var checkSubarraySum = function (nums, k) { + var arr = []; + var sum = 0; + if (nums.length < 2) return false; + for (var i = 0; i < nums.length - 1; i++) { + if (nums[i] + nums[i + 1] === 0) return true; + } + + if (k < 0) k = -k; + if (k === 0) return false; + + for (i = 0; i < nums.length; i++) { + sum += nums[i]; + sum = sum % k; + if (i > 0 && sum === 0) return true; + var index = arr.indexOf(sum); + if (index !== -1) { + return true; + } + arr.push(sum); + } + return false; +}; + +console.log(checkSubarraySum([23, 2, 4, 6, 7], 6)); +console.log(checkSubarraySum([23, 2, 4, 6, 7], 7)); +console.log(checkSubarraySum([23, 2, 4, 6, 7], 8)); +console.log(checkSubarraySum([0, 0], 0), true); +console.log(checkSubarraySum([0, 1, 0], 0), false); +console.log(checkSubarraySum([1, 1], 2), true); + diff --git a/646-Maximum-Length-of-Pair-Chain.js b/646-Maximum-Length-of-Pair-Chain.js new file mode 100644 index 0000000..23d7e35 --- /dev/null +++ b/646-Maximum-Length-of-Pair-Chain.js @@ -0,0 +1,54 @@ +/** + * https://leetcode.com/problems/maximum-length-of-pair-chain/description/ + * Difficulty:Medium + * + * You are given n pairs of numbers. In every pair, the first number is always smaller than the second number. + * Now, we define a pair (c, d) can follow another pair (a, b) if and only if b < c. Chain of pairs can be formed in this fashion. + * Given a set of pairs, find the length longest chain which can be formed. You needn't use up all the given pairs. You can select pairs in any order. + * Example 1: + * Input: [[1,2], [2,3], [3,4]] + * Output: 2 + * Explanation: The longest chain is [1,2] -> [3,4] + */ + +/** + * + * IN ANY ORDER! + * SORT FIRST! + * + * @param {number[][]} pairs + * @return {number} + */ +var findLongestChain = function (pairs) { + var n = pairs.length; + if (!n) return 0; + + pairs = pairs.sort((a, b) => { + var diff = a[1] - b[1]; + if (diff > 0) return 1; + else if (diff === 0) return 0; + return -1; + }); + // console.log(pairs); + + var dp = []; + dp[0] = 1; + var max = 1; + for (var i = 1; i < n; i++) { + var now = pairs[i]; + dp[i] = 1; + for (var j = 0; j < i; j++) { + var last = pairs[j]; + if (last[1] < now[0]) { + dp[i] = Math.max(dp[j] + 1, dp[i]); + } + } + } + console.log(dp); + return Math.max(...dp); +}; + +// console.log(findLongestChain([])); +// console.log(findLongestChain([[1, 2], [2, 3], [3, 4]])); +// console.log(findLongestChain([[1, 2], [3, 4], [5, 46], [1, 2]])); +console.log(findLongestChain([[3, 4], [2, 3], [1, 2]])); \ No newline at end of file diff --git a/657-Judge-Route-Circle.js b/657-Judge-Route-Circle.js new file mode 100644 index 0000000..bbc7fd0 --- /dev/null +++ b/657-Judge-Route-Circle.js @@ -0,0 +1,43 @@ +/** + * https://leetcode.com/problems/judge-route-circle/description/ + * Difficulty:Easy + * + * Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place. + * The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L (Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle. + * + * Example 1: + * Input: "UD" + * Output: true + * + * Example 2: + * Input: "LL" + * Output: false + */ + +/** + * @param {string} moves + * @return {boolean} + */ +var judgeCircle = function (moves) { + let v = 0; + let h = 0; + for (let i = 0; i < moves.length; i++) { + switch (moves[i]) { + case 'U': + v++; + break; + case 'D': + v--; + break; + case 'L': + h--; + break; + case 'R': + h++; + } + } + return v === 0 && h === 0; +}; +console.log(judgeCircle('UD')); +console.log(judgeCircle('LL')); +console.log(judgeCircle('UDLLRR')); \ No newline at end of file diff --git a/673-Number-of-Longest-Increasing-Subsequence.js b/673-Number-of-Longest-Increasing-Subsequence.js new file mode 100644 index 0000000..e6bfccc --- /dev/null +++ b/673-Number-of-Longest-Increasing-Subsequence.js @@ -0,0 +1,60 @@ +/** + * https://leetcode.com/problems/number-of-longest-increasing-subsequence/description/ + * Difficulty:Medium + * + * Given an unsorted array of integers, find the number of longest increasing subsequence. + * + * Example 1: + * Input: [1,3,5,4,7] + * Output: 2 + * Explanation: The two longest increasing subsequence are [1, 3, 4, 7] and [1, 3, 5, 7]. + * + * Example 2: + * Input: [2,2,2,2,2] + * Output: 5 + * Explanation: The length of longest continuous increasing subsequence is 1, and there are 5 subsequences' length is 1, so output 5. + * + * Note: Length of the given array will be not exceed 2000 and the answer is guaranteed to be fit in 32-bit signed int. + * + */ +/** + * @param {number[]} nums + * @return {number} + */ +var findNumberOfLIS = function (nums) { + if (!nums.length) return 0; + var dp = []; + var longest = 0; + for (var i = 0; i < nums.length; i++) { + + var max = 0; + var count = 0; + for (var j = 0; j < i; j++) { + if (nums[j] < nums[i] && dp[j][0] > max) { + max = dp[j][0]; + } + } + + for (var j = 0; j < i; j++) { + if (dp[j][0] === max && nums[j] < nums[i]) { + count += dp[j][1]; + } + } + + dp[i] = [max + 1, count ? count : 1]; + longest = Math.max(longest, max + 1); + } + + return dp.filter(t => t[0] === longest) + .reduce((a, b) => a + b[1], 0); + +}; + +// console.log(findNumberOfLIS([1, 3, 5, 4, 7])); + +console.log(findNumberOfLIS([1, 2, 4, 3, 5, 4, 7, 2])); + +// console.log(findNumberOfLIS([1, 3, 5, 4])); +// console.log(findNumberOfLIS([2, 2])); +// console.log(findNumberOfLIS([2])); +// console.log(findNumberOfLIS([2, 2, 2])); \ No newline at end of file diff --git a/693-Binary-Number-with-Alternating-Bits.js b/693-Binary-Number-with-Alternating-Bits.js new file mode 100644 index 0000000..8d74be6 --- /dev/null +++ b/693-Binary-Number-with-Alternating-Bits.js @@ -0,0 +1,55 @@ +/** + * https://leetcode.com/problems/binary-number-with-alternating-bits/description/ + * Difficulty:Easy + * + * Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values. + * + * Example 1: + * Input: 5 + * Output: True + * Explanation: + * The binary representation of 5 is: 101 + * + * Example 2: + * Input: 7 + * Output: False + * Explanation: + * The binary representation of 7 is: 111. + * + * Example 3: + * Input: 11 + * Output: False + * Explanation: + * The binary representation of 11 is: 1011. + * + * Example 4: + * Input: 10 + * Output: True + * Explanation: + * The binary representation of 10 is: 1010. + */ + +/** + * @param {number} n + * @return {boolean} + */ +var hasAlternatingBits = function (n) { + var last = n % 2; + n = Math.floor(n / 2); + + while (n > 0) { + + var r = n % 2; + n = Math.floor(n / 2); + // console.log(last); + if (r === last) return false; + last = r; + } + return true; +}; + +console.log(hasAlternatingBits(3)); +console.log(hasAlternatingBits(5)); +console.log(hasAlternatingBits(7)); +console.log(hasAlternatingBits(11)); +console.log(hasAlternatingBits(10)); \ No newline at end of file diff --git a/695-Max-Area-of-Island.js b/695-Max-Area-of-Island.js new file mode 100644 index 0000000..b9a3dbb --- /dev/null +++ b/695-Max-Area-of-Island.js @@ -0,0 +1,80 @@ +/** + * https://leetcode.com/problems/max-area-of-island/description/ + * + * Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water. + * Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.) + * + * Example 1: + * [[0,0,1,0,0,0,0,1,0,0,0,0,0], + * [0,0,0,0,0,0,0,1,1,1,0,0,0], + * [0,1,1,0,1,0,0,0,0,0,0,0,0], + * [0,1,0,0,1,1,0,0,1,0,1,0,0], + * [0,1,0,0,1,1,0,0,1,1,1,0,0], + * [0,0,0,0,0,0,0,0,0,0,1,0,0], + * [0,0,0,0,0,0,0,1,1,1,0,0,0], + * [0,0,0,0,0,0,0,1,1,0,0,0,0]] + * Given the above grid, return 6. Note the answer is not 11, because the island must be connected 4-directionally. + * + * Example 2: + * [[0,0,0,0,0,0,0,0]] + * Given the above grid, return 0. + * + * Note: The length of each dimension in the given grid does not exceed 50. + * + */ + +/** + * @param {number[][]} grid + * @return {number} + */ +var maxAreaOfIsland = function (grid) { + var dp = []; + var m = grid.length; + if (!m) return 0; + var n = grid[0].length; + if (!n) return 0; + while (dp.push(new Array(n).fill(0)) < m) ; + var max = 0; + for (var i = 0; i < m; i++) { + for (var j = 0; j < n; j++) { + max = Math.max(dfs(grid, dp, i, j), max) + } + } + + // console.log(dp); + + return max; +}; + +function dfs(grid, dp, i, j) { + var m = grid.length; + var n = grid[0].length; + + if (i < 0 || i > m - 1) return 0; + if (j < 0 || j > n - 1) return 0; + // console.log(i, j, grid[i][j]); + if (grid[i][j] === 0) dp[i][j] = -1; + if (dp[i][j] === 0) { + dp[i][j] = -1; + dp[i][j] = 1 + dfs(grid, dp, i, j - 1) + dfs(grid, dp, i + 1, j) + dfs(grid, dp, i, j + 1) + dfs(grid, dp, i - 1, j); + return dp[i][j]; + } + return 0; +} + +console.log(maxAreaOfIsland([ + [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0], + [0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0], + [0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0]])); + +console.log(maxAreaOfIsland([ + [1, 1, 0, 0, 0], + [1, 1, 0, 1, 0], + [0, 0, 0, 1, 1], + [0, 0, 0, 1, 1]])); +console.log(maxAreaOfIsland([[0, 0, 1, 0, 0, 1, 1, 0]])); \ No newline at end of file diff --git a/Easy_1_Two_Sum.js b/Easy_1_Two_Sum.js deleted file mode 100644 index 2b28675..0000000 --- a/Easy_1_Two_Sum.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Given an array of integers, return indices of the two numbers such that they add up to a specific target. - - You may assume that each input would have exactly one solution, and you may not use the same element twice. - - Example: - Given nums = [2, 7, 11, 15], target = 9, - - Because nums[0] + nums[1] = 2 + 7 = 9, - return [0, 1]. - */ - -/** - * @param {number[]} numbers - * @param {number} target - * @return {number[]} - */ -var twoSum = function (numbers, target) { - - for (var i = 0; i < numbers.length - 1; i++) { - for (var j = i + 1; j < numbers.length; j++) { - if (numbers[i] + numbers[j] == target) return [i, j]; - } - } -}; diff --git a/Easy_492_Construct_the_Rectangle.js b/Easy_492_Construct_the_Rectangle.js deleted file mode 100644 index 469746f..0000000 --- a/Easy_492_Construct_the_Rectangle.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * For a web developer, it is very important to know how to design a web page's size. - * So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, - * whose length L and width W satisfy the following requirements: - - 1. The area of the rectangular web page you designed must equal to the given target area. - - 2. The width W should not be larger than the length L, which means L >= W. - - 3. The difference between length L and width W should be as small as possible. - You need to output the length L and the width W of the web page you designed in sequence. - - - Example: - Input: 4 - Output: [2, 2] - Explanation: The target area is 4, and all the possible ways to construct it are [1,4], [2,2], [4,1]. - But according to requirement 2, [1,4] is illegal; according to requirement 3, [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2. - - - Note: - The given area won't exceed 10,000,000 and is a positive integer - The web page's width and length you designed must be positive integers. - - */ - -/** - * @param {number} area - * @return {number[]} - */ -var constructRectangle = function (area) { - - var w = Math.floor(Math.sqrt(area)); - while (area % w != 0) w--; - return [area / w, w]; - -}; - -console.log(constructRectangle(4)); -console.log(constructRectangle(17)); \ No newline at end of file diff --git a/Easy_520_Detect_Capital.js b/Easy_520_Detect_Capital.js deleted file mode 100644 index 61fd8d8..0000000 --- a/Easy_520_Detect_Capital.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Given a word, you need to judge whether the usage of capitals in it is right or not. - - We define the usage of capitals in a word to be right when one of the following cases holds: - - All letters in this word are capitals, like "USA". - All letters in this word are not capitals, like "leetcode". - Only the first letter in this word is capital if it has more than one letter, like "Google". - Otherwise, we define that this word doesn't use capitals in a right way. - - */ - -/** - * @param {string} word - * @return {boolean} - */ -var detectCapitalUse = function (word) { - - var len = word.length; - var upperLen = 0; - var lowerLen = 0; - var firstCap = false; - for (var i = 0; i < len; i++) { - var ch = word[i]; - if (/[A-Z]/.test(ch)) { - upperLen++; - if (i == 0) { - firstCap = true; - } - } - if (/[a-z]/.test(ch)) { - lowerLen++; - } - } - if (upperLen == len) return true; - if (lowerLen == len) return true; - return (upperLen == 1 && firstCap && len > 1); -}; \ No newline at end of file diff --git a/Medium_151_Reverse_Words_in_a_String.js b/Medium_151_Reverse_Words_in_a_String.js deleted file mode 100644 index 1f075af..0000000 --- a/Medium_151_Reverse_Words_in_a_String.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Given an input string, reverse the string word by word. - - For example, - Given s = "the sky is blue", - return "blue is sky the". - */ - -/** - * @param {string} str - * @returns {string} - */ -var reverseWords = function (str) { - return str.split(' ') - .filter(w => w) - .reverse() - .join(' '); -}; \ No newline at end of file diff --git a/README.md b/README.md index cfeaea5..e722a02 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,83 @@ # LeetCode in Javascript 用 JS 刷 [LeetCode](https://leetcode.com/) + + ++ [001-Two-Sum](./001-Two-Sum.js) ++ [002-Add-Two-Numbers](./002-Add-Two-Numbers.js) ++ [003-Longest-Substring-Without-Repeating-Characters](./003-Longest-Substring-Without-Repeating-Characters.js) ++ [004-Median-of-Two-Sorted-Arrays](./004-Median-of-Two-Sorted-Arrays.js) ++ [005-Longest-Palindromic-Substring](./005-Longest-Palindromic-Substring.js) ++ [011-Container-With-Most-Water](./011-Container-With-Most-Water.js) ++ [014-Longest-Common-Prefix](./014-Longest-Common-Prefix.js) ++ [015-3Sum](./015-3Sum.js) ++ [020-Valid-Parentheses](./020-Valid-Parentheses.js) ++ [021-Merge-Two-Sorted-Lists](./021-Merge-Two-Sorted-Lists.js) ++ [026-Remove-Duplicates-from-Sorted-Array](./026-Remove-Duplicates-from-Sorted-Array.js) ++ [035-Search-Insert-Position](./035-Search-Insert-Position.js) ++ [041-First-Missing-Positive](./041-First-Missing-Positive.js) ++ [053-Maximum-Subarray](./053-Maximum-Subarray.js) ++ [062-Unique-Paths](./062-Unique-Paths.js) ++ [063-Unique-Paths-II](./063-Unique-Paths-II.js) ++ [064-Minimum-Path-Sum](./064-Minimum-Path-Sum.js) ++ [070-Climbing-Stairs](./070-Climbing-Stairs.js) ++ [083-Remove-Duplicates-from-Sorted-List](./083-Remove-Duplicates-from-Sorted-List.js) ++ [085-Maximal-Rectangle](./085-Maximal-Rectangle.js) ++ [091-Decode-Ways](./091-Decode-Ways.js) ++ [095-Unique-Binary-Search-Trees-II](./095-Unique-Binary-Search-Trees-II.js) ++ [096-Unique-Binary-Search-Trees](./096-Unique-Binary-Search-Trees.js) ++ [100-Same-Tree](./100-Same-Tree.js) ++ [111-Minimum-Depth-of-Binary-Tree](./111-Minimum-Depth-of-Binary-Tree.js) ++ [120-Triangle](./120-Triangle.js) ++ [121-Best-Time-to-Buy-and-Sell-Stock](./121-Best-Time-to-Buy-and-Sell-Stock.js) ++ [136-Single-Number](./136-Single-Number.js) ++ [138.-Copy-List-with-Random-Pointer](./138.-Copy-List-with-Random-Pointer.js) ++ [139-Word-Break](./139-Word-Break.js) ++ [151-Reverse-Words-in-a-String](./151-Reverse-Words-in-a-String.js) ++ [152-Maximum-Product-Subarray](./152-Maximum-Product-Subarray.js) ++ [162-Find-Peak-Element](./162.-Find-Peak-Element.js) ++ [167-Two-Sum-II-Input-array-is-sorted](./167-Two-Sum-II-Input-array-is-sorted.js) ++ [171-Excel-Sheet-Column-Number](./171-Excel-Sheet-Column-Number.js) ++ [190-Reverse-Bits](./190-Reverse-Bits.js) ++ [191-Number-of-1-Bits](./191-Number-of-1-Bits.js) ++ [198-House-Robber](./198.-House-Robber.js) ++ [202-Happy-Number](./202-Happy-Number.js) ++ [204-Count-Primes](./204-Count-Primes.js) ++ [217-Contains-Duplicate](./217-Contains-Duplicate.js) ++ [226-Invert-Binary-Tree](./226-Invert-Binary-Tree.js) ++ [227-Basic-Calculator-II](./227-Basic-Calculator-II.js) ++ [258-Add-Digits](./258-Add-Digits.js) ++ [263-Ugly-Number](./263-Ugly-Number.js) ++ [268-Missing-Number](./268-Missing-Number.js) ++ [283-Move-Zeroes](./283-Move-Zeroes.js) ++ [300-Longest-Increasing-Subsequence](./300-Longest-Increasing-Subsequence.js) ++ [349-Intersection-of-Two-Arrays](./349-Intersection-of-Two-Arrays.js) ++ [383-Ransom-Note](./383-Ransom-Note.js) ++ [387-First-Unique-Character-in-a-String](./387-First-Unique-Character-in-a-String.js) ++ [392-Is-Subsequence](./392-Is-Subsequence.js) ++ [404-Sum-of-Left-Leaves](./404-Sum-of-Left-Leaves.js) ++ [413-Arithmetic-Slices](./413-Arithmetic-Slices.js) ++ [415-Add-Strings](./415-Add-Strings.js) ++ [416-Partition-Equal-Subset-Sum](./416-Partition-Equal-Subset-Sum.js) ++ [447-Number-of-Boomerangs](./447-Number-of-Boomerangs.js) ++ [453-Minimum-Moves-to-Equal-Array-Elements](./453-Minimum-Moves-to-Equal-Array-Elements.js) ++ [448-Find-All-Numbers-Disappeared-in-an-Array](./448-Find-All-Numbers-Disappeared-in-an-Array.js) ++ [454-4Sum-II](./454-4Sum-II.js) ++ [455-Assign-Cookies](./455-Assign-Cookies.js) ++ [461-Hamming-Distance](./461-Hamming-Distance.js) ++ [476-Number-Complement](./476-Number-Complement.js) ++ [477-Total-Hamming-Distance](./477-Total-Hamming-Distance.js) ++ [492-Construct-the-Rectangle](./492-Construct-the-Rectangle.js) ++ [504-Base-7](./504-Base-7.js) ++ [506-Relative-Ranks](./506-Relative-Ranks.js) ++ [520-Detect-Capital](./520-Detect-Capital.js) ++ [523-Continuous-Subarray-Sum](./523-Continuous-Subarray-Sum.js) ++ [646-Maximum-Length-of-Pair-Chain](./646-Maximum-Length-of-Pair-Chain.js) ++ [657-Judge-Route-Circle](./657-Judge-Route-Circle.js) ++ [673-Number-of-Longest-Increasing-Subsequence](./673-Number-of-Longest-Increasing-Subsequence.js) ++ [693-Binary-Number-with-Alternating-Bits](./693-Binary-Number-with-Alternating-Bits.js) ++ [695-Max-Area-of-Island](./695-Max-Area-of-Island.js) ++ 背包问题 + - [01 背包问题](./pack/01.js) + - [02 完全背包问题](./pack/02.js) + - [03 多重背包问题](./pack/03.js) \ No newline at end of file diff --git a/pack/01.js b/pack/01.js new file mode 100644 index 0000000..f88a5e9 --- /dev/null +++ b/pack/01.js @@ -0,0 +1,37 @@ +/** + * 01 背包问题 + * + * 有 N 件物品和一个容量为 V 的背包。 + * 放入第 i 件物品耗费的费用是 Ci ,得到的 价值是 Wi。 + * 求解将哪些物品装入背包可使价值总和最大。 + * + * F[i, v] = max{F[i − 1, v], F[i − 1, v − Ci ] + Wi } + * + * @param Cost + * @param Worth + * @param V + * @returns {*} + */ +function pack(Cost, Worth, V) { + var n = Cost.length; + var dp = []; + while (dp.push(new Array(V + 1).fill(0)) < n + 1); + + for (var i = 1; i < n + 1; i++) { + for (var j = 1; j < V + 1; j++) { + dp[i][j] = dp[i - 1][j]; + if (j > Cost[i - 1]) { + dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - Cost[i - 1]] + Worth[i - 1]); + } + + } + } + + for (var i = 1; i < dp.length; i++) { + console.log(dp[i].slice(1)) + } + + return dp[n][V]; +} + +console.log(pack([5, 4, 7, 2, 6], [12, 3, 10, 3, 6], 15), 25); \ No newline at end of file diff --git a/pack/02.js b/pack/02.js new file mode 100644 index 0000000..f8b04e2 --- /dev/null +++ b/pack/02.js @@ -0,0 +1,43 @@ +/** + * 2 完全背包问题 + * 有 N 种物品和一个容量为 V 的背包, + * 每种物品都有无限件可用。放入第 i 种物品 的费用是 Ci,价值是 Wi。 + * 求解:将哪些物品装入背包,可使这些物品的耗费的费用总和不超过背包容量,且价值总和最大。 + * + * F[i, v] = max{F[i − 1, v − k*Ci ] + k*Wi | 0 ≤ k*Ci ≤ v} + * + * @param Cost + * @param Worth + * @param V + */ +function pack(Cost, Worth, V) { + var n = Cost.length; + var dp = []; + while (dp.push(new Array(V + 1).fill(0)) < n + 1); + + for (var i = 1; i < n + 1; i++) { + for (var v = 1; v < V + 1; v++) { + var c = Cost[i - 1]; + var w = Worth[i - 1]; + var count = Math.floor(v / c); + var max = 0; + for (var t = 0; t <= count; t++) { + var newV = dp[i - 1][v - t * c] + t * w; + if (newV > max) max = newV; + } + dp[i][v] = max; + + } + } + + for (var i = 1; i < dp.length; i++) { + console.log(dp[i].slice(1)) + } + + return dp[n][V]; +} + +console.log(pack([3, 2, 1], [7, 3, 1], 16)); +console.log(pack([3, 2, 1], [7, 3, 1], 17)); +console.log(pack([5, 4, 7, 2, 6], [12, 3, 10, 3, 6], 15)); +console.log(pack([5, 4, 7, 2, 6], [12, 3, 10, 3, 6], 17)); \ No newline at end of file diff --git a/pack/03.js b/pack/03.js new file mode 100644 index 0000000..68dc6aa --- /dev/null +++ b/pack/03.js @@ -0,0 +1,43 @@ +/** + * 3 多重背包问题 + * 有 N 种物品和一个容量为 V 的背包。 + * 第 i 种物品最多有 Mi 件可用,每件耗费的 空间是 Ci ,价值是 Wi 。 + * 求解将哪些物品装入背包可使这些物品的耗费的空间总和不超 过背包容量,且价值总和最大。 + * + * F[i,v] = max{F[i − 1, v − k∗Ci ] + k∗Wi | 0 ≤ k ≤ Mi } + * + * @param Cost + * @param Worth + * @param Much + * @param V + */ +function pack(Cost, Worth, Much, V) { + var n = Cost.length; + var dp = []; + while (dp.push(new Array(V + 1).fill(0)) < n + 1); + + for (var i = 1; i < n + 1; i++) { + for (var v = 1; v < V + 1; v++) { + var c = Cost[i - 1]; + var w = Worth[i - 1]; + var count = Math.min(Math.floor(v / c), Much[i - 1]); + var max = 0; + for (var t = 0; t <= count; t++) { + var newV = dp[i - 1][v - t * c] + t * w; + if (newV > max) max = newV; + } + dp[i][v] = max; + + } + } + + for (var i = 1; i < dp.length; i++) { + console.log(dp[i].slice(1)) + } + + return dp[n][V]; +} + +console.log(pack([5, 4, 7, 2, 6], [12, 3, 10, 3, 6], [2, 2, 1, 2, 7], 15)); +console.log(pack([5, 4, 7, 2, 6], [12, 3, 10, 3, 6], [3, 2, 1, 2, 7], 15)); +console.log(pack([5, 4, 7, 2, 6], [12, 3, 10, 3, 6], [3, 2, 1, 2, 7], 17)); \ No newline at end of file