"""# ### 谜题描述 You have a positive integer m and a non-negative integer s. Your task is to find the smallest and the largest of the numbers that have length m and sum of digits s. The required numbers should be non-negative integers written in the decimal base without leading zeroes. Input The single line of the input contains a pair of integers m, s (1 ≤ m ≤ 100, 0 ≤ s ≤ 900) — the length and the sum of the digits of the required numbers. Output In the output print the pair of the required non-negative integer numbers — first the minimum possible number, then — the maximum possible number. If no numbers satisfying conditions required exist, print the pair of numbers \"-1 -1\" (without the quotes). Examples Input 2 15 Output 69 96 Input 3 0 Output -1 -1 Here is a reference code to solve this task. You can use this to help you genereate cases or validate the solution. ```python def maximum(n,s): l,su=\"\",s for i in xrange(n): if su<9: l+=str(su) su=0 else: l+=\"9\" su-=9 return l def minimum(n,s): l,su=[],s-1 if n==1: return s for i in xrange(n-1): if su<9: l.append(su) su=0 else: l.append(9) su-=9 l.append(su+1) l.reverse() ans = \"\" for i in l: ans += str(i) return ans n,s=map(int,raw_input().split()) if 0 1 and (min_num[0] == '0' or max_num[0] == '0')): return False # 数值验证 return (sum(map(int, min_num)) == s and sum(map(int, max_num)) == s and cls._has_valid_solution(m, s)) except: return False @classmethod def _has_valid_solution(cls, m, s): """解存在性判断逻辑""" if m == 1: return 0 <= s <= 9 return 1 <= s <= m*9 @classmethod def compute_solutions(cls, m, s): """双指针法生成极值""" def gen_min(): if m == 1: return str(s) res = [0]*m remaining = s for i in reversed(range(1, m)): val = min(9, remaining-1) res[i] = val remaining -= val res[0] = remaining return ''.join(map(str, res)) if res[0] <=9 else None def gen_max(): res = [] remaining = s for _ in range(m): val = min(9, remaining) res.append(str(val)) remaining -= val return ''.join(res) if remaining ==0 else None if not cls._has_valid_solution(m, s): return ("-1 -1", True) return (f"{gen_min()} {gen_max()}", False) if gen_min() and gen_max() else ("-1 -1", True)