Problem: Let s(x) be sum of digits in decimal representation of positive integer x. Given two integers n and m, find some positive integers a and b such that 

  * s(a) ≥ n, 
  * s(b) ≥ n, 
  * s(a + b) ≤ m. 

Input

The only line of input contain two integers n and m (1 ≤ n, m ≤ 1129).

Output

Print two lines, one for decimal representation of a and one for decimal representation of b. Both numbers must not contain leading zeros and must have length no more than 2230.

Examples

Input

6 5


Output

6 
7


Input

8 16


Output

35 
53

Note

In the first sample, we have n = 6 and m = 5. One valid solution is a = 6, b = 7. Indeed, we have s(a) = 6 ≥ n and s(b) = 7 ≥ n, and also s(a + b) = s(13) = 4 ≤ m.

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
long long int pc;
void PrintCase() { printf("Case %lli: ", ++pc); }
long long int GCD(long long int a, long long int b) {
  if (a < b) swap(a, b);
  if (b == 1) return 1;
  if (!b) return a;
  if (!(a % b))
    return b;
  else
    GCD(b, a % b);
}
long long int LCM(long long int a, long long int b) {
  return (a * b) / GCD(a, b);
}
long long int bigmod(long long int n, long long int p) {
  if (p == 0) return 1;
  if (p == 1) return (n + 1000000007) % 1000000007;
  if (p % 2)
    return (bigmod(n, p - 1) * n + 1000000007) % 1000000007;
  else {
    long long int x = bigmod(n, p / 2);
    return (x * x + 1000000007) % 1000000007;
  }
}
long long int modinverse(long long int n) {
  return bigmod(n, 1000000007 - 2) % 1000000007;
}
bool sc[45000];
vector<long long int> pr;
void seieve() {
  for (long long int i = 2; i <= 45000; i++) {
    if (!sc[i]) {
      pr.push_back(i);
      for (long long int j = i * i; j <= 45000; j += i) sc[j] = 1;
    }
  }
}
pair<long long int, long long int> pf[45000];
void pri_fact(long long int n) {
  for (long long int i = 0; i < pr.size() && n != 1; i++) {
    pf[i].first = pr[i];
    long long int c = 0;
    while (!(n % pr[i])) {
      n /= pr[i];
      c++;
    }
    pf[i].second = c;
  }
}
vector<long long int> de;
void devisors(long long int n) {
  long long int i;
  for (i = 1; i <= sqrt(n); i++) {
    if (!(n % i) && i != sqrt(n)) {
      de.push_back(i);
      de.push_back(n % i);
    }
  }
  if ((i - 1) * (i - 1) == n) de.push_back(i - 1);
  sort(de.begin(), de.end());
}
int main(int argc, char const *argv[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n, m, i;
  cin >> n >> m;
  for (i = 0; i < n; i++) {
    cout << 1;
  }
  cout << endl;
  for (i = 0; i < n - 1; i++) {
    cout << 8;
  }
  cout << 9;
  return 0;
}