#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace std; using ll = long long; using vl = vector; using vvl = vector; using vvvl = vector; #define rep(i, n) for (int i = 0; i < n; i++) ll f(ll x) { string s = to_string(x); vvvl dp(s.size() + 1, vvl(10, vl(2, 0))); dp[0][0][1] = 1; rep(i, s.size()) { rep(j, 10) { // k==0(好きにしていい) rep(k, 10) dp[i + 1][max(j, k)][0] += dp[i][j][0]; // k==1(ギリギリ注意報) rep(k, s[i] - '0') dp[i + 1][max(j, k)][0] += dp[i][j][1]; dp[i + 1][max(j, s[i] - '0')][1] += dp[i][j][1]; } } ll sm = 0; rep(j, 10) { rep(k, 2) { sm += dp.back()[j][k] * j; } } return sm; } ll g(ll x) { string s = to_string(x); int mn = 0; for (auto c : s) mn = max(mn, c - '0'); return mn; } int main() { int t; cin >> t; rep(_, t) { ll x; cin >> x; ll r = x % 9; ll d = x / 9; if (r == 0) { r++; d--; } ll L = r * ll(1e17) - d; ll R = r * ll(1e17); cout << L << " " << R << endl; } }