#include <bits/stdc++.h>
using namespace std;
long long power(long long x, long long y, long long p) {
  long long res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
bool prime[1000005];
void seive(int n) {
  memset(prime, true, sizeof(prime));
  for (int p = 2; p * p <= n; p++) {
    if (prime[p] == true) {
      for (int i = p * p; i <= n; i += p) prime[i] = false;
    }
  }
}
map<long long, vector<long long>> adj;
map<long long, long long> visited;
long long cnt = 0;
void dfs(long long curr, long long par, long long lvl) {
  visited[curr] = 1;
  cnt = max(cnt, lvl);
  for (auto x : adj[curr]) {
    if (visited[x] != 1 && x != par) {
      dfs(x, curr, lvl + 1);
    }
  }
}
int main() {
  long long t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    string str = "";
    if (n % 2 == 0) {
      for (long long i = 0; i < n / 2; i++) str += '1';
    } else {
      for (long long i = 0; i < n / 2 - 1; i++) str += '1';
      str = '7' + str;
    }
    cout << str << endl;
  }
  return 0;
}

### Prompt

Your challenge is to write a cpp solution to the following problem:

You have a large electronic screen which can display up to 998244353 decimal digits. The digits are displayed in the same way as on different electronic alarm clocks: each place for a digit consists of 7 segments which can be turned on and off to compose different digits. The following picture describes how you can display all 10 decimal digits:

<image>

As you can see, different digits may require different number of segments to be turned on. For example, if you want to display 1, you have to turn on 2 segments of the screen, and if you want to display 8, all 7 segments of some place to display a digit should be turned on.

You want to display a really large integer on the screen. Unfortunately, the screen is bugged: no more than n segments can be turned on simultaneously. So now you wonder what is the greatest integer that can be displayed by turning on no more than n segments.

Your program should be able to process t different test cases.

Input

The first line contains one integer t (1 ≤ t ≤ 100) — the number of test cases in the input.

Then the test cases follow, each of them is represented by a separate line containing one integer n (2 ≤ n ≤ 10^5) — the maximum number of segments that can be turned on in the corresponding testcase.

It is guaranteed that the sum of n over all test cases in the input does not exceed 10^5.

Output

For each test case, print the greatest integer that can be displayed by turning on no more than n segments of the screen. Note that the answer may not fit in the standard 32-bit or 64-bit integral data type.

Example

Input


2
3
4


Output


7
11

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
long long power(long long x, long long y, long long p) {
  long long res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
bool prime[1000005];
void seive(int n) {
  memset(prime, true, sizeof(prime));
  for (int p = 2; p * p <= n; p++) {
    if (prime[p] == true) {
      for (int i = p * p; i <= n; i += p) prime[i] = false;
    }
  }
}
map<long long, vector<long long>> adj;
map<long long, long long> visited;
long long cnt = 0;
void dfs(long long curr, long long par, long long lvl) {
  visited[curr] = 1;
  cnt = max(cnt, lvl);
  for (auto x : adj[curr]) {
    if (visited[x] != 1 && x != par) {
      dfs(x, curr, lvl + 1);
    }
  }
}
int main() {
  long long t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    string str = "";
    if (n % 2 == 0) {
      for (long long i = 0; i < n / 2; i++) str += '1';
    } else {
      for (long long i = 0; i < n / 2 - 1; i++) str += '1';
      str = '7' + str;
    }
    cout << str << endl;
  }
  return 0;
}

```