#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  vector<char> v;
  if (n == 1 && m == 0) {
    cout << 0 << " " << 0 << endl;
    return 0;
  }
  if (n * 9 < m || m == 0) {
    cout << -1 << " " << -1 << endl;
    return 0;
  }
  while (m > 9) {
    v.push_back(9 + '0');
    m -= 9;
  }
  if (m > 0) v.push_back(m + '0');
  char minChar = '9';
  bool haveZero = false;
  string max = "";
  int zeros = 0;
  for (int i = 0; i < n; i++) {
    if (i < v.size()) {
      max += v[i];
      if (v[i] < minChar) minChar = v[i];
    } else {
      max += "0";
      haveZero = true;
      zeros++;
    }
  }
  string min = "";
  if (haveZero) {
    min += "1";
    zeros--;
    while (zeros != 0) {
      min += "0";
      zeros--;
    }
    min += char(minChar - 1);
    while (min.size() != n) {
      min += "9";
    }
  } else {
    for (int i = v.size() - 1; i >= 0; i--) {
      min += v[i];
    }
  }
  cout << min << " " << max << endl;
  return 0;
}

### Prompt

Please formulate a cpp solution to the following problem:

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

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  vector<char> v;
  if (n == 1 && m == 0) {
    cout << 0 << " " << 0 << endl;
    return 0;
  }
  if (n * 9 < m || m == 0) {
    cout << -1 << " " << -1 << endl;
    return 0;
  }
  while (m > 9) {
    v.push_back(9 + '0');
    m -= 9;
  }
  if (m > 0) v.push_back(m + '0');
  char minChar = '9';
  bool haveZero = false;
  string max = "";
  int zeros = 0;
  for (int i = 0; i < n; i++) {
    if (i < v.size()) {
      max += v[i];
      if (v[i] < minChar) minChar = v[i];
    } else {
      max += "0";
      haveZero = true;
      zeros++;
    }
  }
  string min = "";
  if (haveZero) {
    min += "1";
    zeros--;
    while (zeros != 0) {
      min += "0";
      zeros--;
    }
    min += char(minChar - 1);
    while (min.size() != n) {
      min += "9";
    }
  } else {
    for (int i = v.size() - 1; i >= 0; i--) {
      min += v[i];
    }
  }
  cout << min << " " << max << endl;
  return 0;
}

```