#include <bits/stdc++.h>
using namespace std;
char tochar(int n) {
  int m = n;
  char x;
  stringstream ss;
  ss << m;
  ss >> x;
  return x;
}
string revers_(string s) {
  string x;
  for (int i = s.size() - 1, j = 0; i >= 0, j < s.size(); i--, j++) {
    x += s[i];
  }
  for (int i = 0; i < x.size(); i++) {
    for (int j = i + 1; j < x.size(); j++) {
      if (x[i] == '0' && x[j] != '0') {
        x[i] = '1';
        x[j] = tochar((x[j] - '0') - 1);
        return x;
      }
    }
  }
  return x;
}
int main() {
  int n, m, x;
  cin >> n >> m;
  x = m;
  string s;
  if (m == 0 && n != 1 || m > 9 * n) {
    cout << -1 << " " << -1;
    cout << endl;
    ;
    return 0;
  }
  if (m < 10) {
    for (int i = 0; i < n; i++) {
      s += tochar(m);
      m = 0;
    }
  } else {
    for (int i = 0; i < n; i++) {
      if (m >= 10) {
        s += tochar(9);
        m -= 9;
      } else {
        s += tochar(m);
        m = 0;
      }
    }
  }
  if (x < 10 && n != 1) {
    for (int i = 0; i < n; i++) {
      if (i == 0) {
        cout << 1;
        x -= 1;
      } else if (i == n - 1)
        cout << x;
      else
        cout << 0;
    }
    cout << " " << s;
    cout << endl;
  } else
    cout << revers_(s) << " " << s;
  cout << endl;
  return 0;
}

### Prompt

Construct a Cpp code solution to the problem outlined:

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;
char tochar(int n) {
  int m = n;
  char x;
  stringstream ss;
  ss << m;
  ss >> x;
  return x;
}
string revers_(string s) {
  string x;
  for (int i = s.size() - 1, j = 0; i >= 0, j < s.size(); i--, j++) {
    x += s[i];
  }
  for (int i = 0; i < x.size(); i++) {
    for (int j = i + 1; j < x.size(); j++) {
      if (x[i] == '0' && x[j] != '0') {
        x[i] = '1';
        x[j] = tochar((x[j] - '0') - 1);
        return x;
      }
    }
  }
  return x;
}
int main() {
  int n, m, x;
  cin >> n >> m;
  x = m;
  string s;
  if (m == 0 && n != 1 || m > 9 * n) {
    cout << -1 << " " << -1;
    cout << endl;
    ;
    return 0;
  }
  if (m < 10) {
    for (int i = 0; i < n; i++) {
      s += tochar(m);
      m = 0;
    }
  } else {
    for (int i = 0; i < n; i++) {
      if (m >= 10) {
        s += tochar(9);
        m -= 9;
      } else {
        s += tochar(m);
        m = 0;
      }
    }
  }
  if (x < 10 && n != 1) {
    for (int i = 0; i < n; i++) {
      if (i == 0) {
        cout << 1;
        x -= 1;
      } else if (i == n - 1)
        cout << x;
      else
        cout << 0;
    }
    cout << " " << s;
    cout << endl;
  } else
    cout << revers_(s) << " " << s;
  cout << endl;
  return 0;
}

```