#include<bits/stdc++.h>

using namespace std;

int dp[105][8105];

int Find(int a, int b){
    if(a > 100 || b > 8100 || a > b || a < 0 || b < 0){
    	return -1;
	}
    if(!a && !b){
    	return 0;
	}
    if(dp[a][b] != -1){
    	return dp[a][b];
	}
    int res = 105, i = 9;
    while(i > 0){
        int tmp = Find(a - i, b - i * i);
        if(tmp != -1){
        	res = min(res, tmp + 1);
		}
        i--;
    }
    dp[a][b] = res;
    return res;
}

int main(){
    int t, a, b;
    cin >> t;
    while(t--){
        memset(dp, -1, sizeof(dp));
        dp[0][0] = 0;
        cin >> a >> b;
        int MIN = Find(a, b);
        
        if(MIN == -1 || MIN > 100){
        	 cout << -1;
		}
        else {
            int i;
            while(a > 0 && b > 0){
                i = 1;
                while(i < 10){
                    if(a >= i && b >= i * i && dp[a - i][b - i * i] + 1 == dp[a][b]){
                        cout << i;
                        a -= i;
                        b -= i * i;
                        break;
                    }
                    i++;
                }
            }
        }
        cout << endl;
    }
    return 0;
}