#include <bits/stdc++.h>
using namespace std;
bool sortinrev(const pair<long long, long long> &a,
               const pair<long long, long long> &b) {
  return (a.first > b.first);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long tc = 1, i, j;
  while (tc--) {
    long long n, m;
    cin >> n >> m;
    if (n == 1 && m == 0)
      cout << "0"
           << " "
           << "0";
    else if ((m > (9 * n)) || (m == 0))
      cout << "-1"
           << " "
           << "-1";
    else {
      vector<int> mn(n);
      vector<int> mx(n);
      long long tot = m / 9;
      for (i = 0; i < tot; i++) mx[i] = 9;
      if (m % 9) mx[tot] = m % 9;
      if (m == (9 * n)) {
        for (long long i = 0; i < n; i++) mn[i] = 9;
      } else {
        m--;
        mn[n - 1] = 1;
        tot = m / 9;
        for (i = 0; i < tot; i++) mn[i] = 9;
        if (m % 9) {
          if (tot == (n - 1))
            mn[tot] += m % 9;
          else
            mn[tot] = m % 9;
        }
      }
      reverse(mn.begin(), mn.end());
      for (auto i = (mn).begin(); i != (mn).end(); i++) cout << *i;
      cout << " ";
      for (auto i = (mx).begin(); i != (mx).end(); i++) cout << *i;
    }
  }
}

### Prompt

In CPP, your task is to solve 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;
bool sortinrev(const pair<long long, long long> &a,
               const pair<long long, long long> &b) {
  return (a.first > b.first);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long tc = 1, i, j;
  while (tc--) {
    long long n, m;
    cin >> n >> m;
    if (n == 1 && m == 0)
      cout << "0"
           << " "
           << "0";
    else if ((m > (9 * n)) || (m == 0))
      cout << "-1"
           << " "
           << "-1";
    else {
      vector<int> mn(n);
      vector<int> mx(n);
      long long tot = m / 9;
      for (i = 0; i < tot; i++) mx[i] = 9;
      if (m % 9) mx[tot] = m % 9;
      if (m == (9 * n)) {
        for (long long i = 0; i < n; i++) mn[i] = 9;
      } else {
        m--;
        mn[n - 1] = 1;
        tot = m / 9;
        for (i = 0; i < tot; i++) mn[i] = 9;
        if (m % 9) {
          if (tot == (n - 1))
            mn[tot] += m % 9;
          else
            mn[tot] = m % 9;
        }
      }
      reverse(mn.begin(), mn.end());
      for (auto i = (mn).begin(); i != (mn).end(); i++) cout << *i;
      cout << " ";
      for (auto i = (mx).begin(); i != (mx).end(); i++) cout << *i;
    }
  }
}

```