#include <bits/stdc++.h>

using namespace std;
#define ll long long
ll t,n,i,j,a,b,k,x,y;
 ll lcM(ll a, ll b)
 {
    return (a*b)/gcd(a, b);
 }
int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

  cin>>t;
  while(t--){
      x=-1;
      y=-1;

      ll h=0;
      cin>>a>>b;
      if(b>=2*a)
    {  x=a;
      y=2*b;}

      cout<<x<<" "<<y<<endl;

  }
    return 0;
}


#include <iostream>
#include <numeric>

using namespace std;
#define ll long long
ll t,n,i,j,a,b,k,x,y;
int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

  cin>>t;
  while(t--){
      x=-1;
      y=-1;

      ll h=0;
      cin>>a>>b;
      for(i=a;i<b+1;i++){
          if(h==1)
          break;
          for(j=i+1;j<b+1;j++){k=std::lcm(i,j);
              if(k>=a&&k<=b){
                  x=i;
                  y=j;
                  h=1;
                  break;
              }
          }
      }

      cout<<x<<" "<<y<<endl;

  }
    return 0;
}


#include <iostream>
#include <numeric>

using namespace std;
#define ll long long
ll t,n,i,j,a,b,k,x,y;
int main() {

  cin>>t;
  while(t--){
      x=-1;
      y=-1;

      ll h=0;
      cin>>a>>b;
      for(i=a;i<b+1;i++){
          if(h==1)
          break;
          for(j=i+1;j<b+1;j++){k=std::lcm(i,j);
              if(k>=a&&k<=b){
                  x=i;
                  y=j;
                  h=1;
                  break;
              }
          }
      }
      if(x==-1)
      cout<<"-1"<<endl;
      else
      cout<<x<<" "<<y<<endl;

  }
    return 0;
}


                                              //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}

void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll m,n;
        cin>>m>>n;
        if(m*2>n)
            cout<<"-1"<<" "<<"-1"<<endl;
            else
                cout<<m<<" "<<m*2<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                              //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}

void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll m,n;
        cin>>m>>n;
        ll ans=abs(m-n);
        if(m%2==0 && n%2==0)
            cout<<m<<" "<<n<<endl;
        else if(m%2==0 && n%2==1 && ans>2)
            cout<<m<<" "<<n-1<<endl;
        else if(m%2==1 && n%2==0 && ans>2)
            cout<<m+1<<" "<<n<<endl;
        else if(m%2==1 && n%2==1 && ans>3)
            cout<<m+1<<" "<<n-1<<endl;
        else
            cout<<"-1"<<" "<<"-1"<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                             //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}

void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll m,n,i,ans,temp;
        cin>>m>>n;
        bool f=0;
        if(m%2==1){
            for(i=2;i*i<=(m+1);i++)
            {
                if((m+1)%i==0)
                {
                    ans=i;
                    f=1;
                    break;
                }
            }
        }
        else{
           for(i=2;i*i<=m;i++)
            {
                if(m%i==0)
                {
                    ans=i;
                    f=1;
                    break;
                }
            }
        }
        if(m%2==0)
        {
            temp=m/ans;
        }
        if(m==1)
            cout<<m<<" "<<m+1<<endl;

           else if(m+(m/ans)<=n && m%2==0 && temp%2==0)
             cout<<m<<" "<<m+(m/ans)<<endl;
              else if(m+(m/ans)<=n && m%2==0 && temp%2==1)
             cout<<m<<" "<<m+((m/ans)*2)<<endl;
        else if(m+(m/ans)<=n && m%2==1)
             cout<<m+1<<" "<<m+1+((m+1)/ans)<<endl;
        else
            cout<<"-1"<<" "<<"-1"<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                              //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}
void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll a,b,i,j;
        cin>>a>>b;
        bool f=0;
        for(i=a;i<b;i++)
        {
            for(j=i+1;j<=b;j++)
            {
                if(lcd(i,j)>=a && lcd(i,j)<=b)
                {
                    f=1;
                    break;
                }
            }
            if(f)
                break;
        }
        if(f)
            cout<<i<<" "<<j<<endl;
            else
                cout<<"-1"<<" "<<"-1"<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                              //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}
void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll a,b,i,j;
        cin>>a>>b;
        if(abs(a-b)<2)
                cout<<"-1"<<" "<<"-1"<<endl;
                else if(a%2==1 && b%2==1)
                    cout<<a<<" "<<b<<endl;
        else if(a%2==0 && b%2==0)
           cout<<a<<" "<<b<<endl;
           else if(a%2==0 && b%2==1)
                cout<<a<<" "<<b-1<<endl;
           else
            cout<<a+1<<" "<<b<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                              //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}
void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll a,b,i,j;
        cin>>a>>b;
        bool f=0;
        for(i=2;i*i<=a;i++)
        {
            if(a%i==0)
                {
                    f=1;
                    break;
                }
        }
        if(a+i>b)
            cout<<"-1 "<<"-1"<<endl;
            else if(a%2==1 && b%2==1 && abs(a-b)<3)
                cout<<"-1 "<<"-1"<<endl;
        else if(!f)
            cout<<a<<" "<<a+a<<endl;
            else if(f)
                 cout<<a<<" "<<a+i<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                              //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}
void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll a,b,i,j;
        cin>>a>>b;
        bool f=0;
        for(i=2;i*i<=a;i++)
        {
            if(a%i==0)
                {
                    f=1;
                    break;
                }
        }
        if(a+i>b)
            cout<<"-1 "<<"-1"<<endl;
        else if(!f)
            cout<<a<<" "<<a+a<<endl;
            else if(f)
                 cout<<a<<" "<<a+i<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


                                             //BISMILLAHIR RAHMANIR RAHIM
                                               //BY THE NAME OF ALLAH
                                               //FAISAL AHAMMED SHAWON
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<utility>
#include<set>
#include<map>
#include<iterator>
#include<numeric>
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define SQ(a) (a)*(a)
#define pi acos(-1.0)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
}
ll gcd(ll a,ll b)
{
    if(b==0)
    return a;
    else
    gcd(b,a%b);
}
ll lcd(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}

bool f(ll a,ll b)
{
    return a>b;
}
ll max_sum_subarrays(ll ara[],ll n)
{
    ll ans=0,sum=0;
    for(ll k=0;k<n;k++){
        sum=max(ara[k],sum+ara[k]);
        ans=max(ans,sum);
    }
    return ans;
}
ll num_divisors(ll n)
{
    long long cnt=0;
    for(int i=1;i*i<=n;i++)
    {
        if(n%i==0 && i*i==n)
            cnt+=1;
        if(n%i==0 && i*i!=n)
                cnt+=2;
    }
    return cnt;
}
ll comb(ll m, ll n)
{
    ll x = max(m-n,n),ans = 1,i=1;
    for(ll k=m;k>=x+1;k--){
        ans*=k;
        ans/=i;
        i++;
    }
    return ans;
}

void solve()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll m,n;
        cin>>m>>n;
        ll ans=abs(m-n);
        if(m%2==0 && n%2==0)
            cout<<m<<" "<<n<<endl;
        else if(m%2==0 && n%2==1 && ans>2)
            cout<<m<<" "<<n-1<<endl;
        else if(m%2==1 && n%2==0 && ans>2)
            cout<<m+1<<" "<<n<<endl;
        else if(m%2==1 && n%2==1 && ans>3 && m==1)
            cout<<m+1<<" "<<n-1<<endl;
        else if(m%2==1 && n%2==1 && ans>m)
            cout<<m<<" "<<m+m<<endl;
        else
            cout<<"-1"<<" "<<"-1"<<endl;
    }
}
int main()
{
    fast();
    solve();
    return 0;
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {
		ll l, r;
		cin >> l >> r;
		ll a, b;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}
		if (l % 2==1)
			a=l+1;
		else
			a = l;

		b = (a /2) +a;

		ll lcm = b;

		while(1) {
			if (lcm%a == 0 && lcm%b == 0) {
				cout << lcm;
				if (lcm >= l && lcm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lcm;
		}

		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}

		bool tr = false;
		for (ll a = l; a <= r; ++a) {
			for (ll b = a+1; b <= r; ++b) {
				if (lcm(a, b) <= r && lcm(a, b) >= l) {
					cout << a << " " << b;
					tr = true;
					break;
				}
			}
			if (tr)
					break;
		}
		if (!tr)
			cout << -1 << " " << -1;

				/*
		b = a/2 + a;

		ll lm = b;

		while(1) {
			if (lm%a == 0 && lm%b == 0) {
				if (lm >= l && lm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lm;
		}
		*/
		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {
		ll l, r;
		cin >> l >> r;
		ll a, b;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}
		a = l+1;

		b = a/2 + a;

		ll lcm = b;

		while(1) {
			if (lcm%a == 0 && lcm%b == 0) {
				if (lcm >= l && lcm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lcm;
		}

		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}

		bool tr = false;
		for (ll a = l; a <= r/2; ++a) {
			for (ll b = a+1; b <= r; ++b) {
				if (lcm(a, b) <= r && lcm(a, b) >= l) {
					cout << a << " " << b;
					tr = true;
					break;
				}
			}
			if (tr)
					break;
		}
		if (!tr)
			cout << -1 << " " << -1;

				/*
		b = a/2 + a;

		ll lm = b;

		while(1) {
			if (lm%a == 0 && lm%b == 0) {
				if (lm >= l && lm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lm;
		}
		*/
		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;

		int a = l;
		int b = l*2;

		if (b <= r && lcm(a,b) <= r) {
			cout << a << " " << b;
		}
		else {
			cout << -1 << " " << -1;
		}

		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}
		ll b=l;
		bool tr = false;
		for (ll a = l; lcm(a,b) <= r; ++a) {
			for (b = a+1; b <= r/2; ++b) {
				if (lcm(a, b) <= r && lcm(a, b) >= l) {
					cout << a << " " << b;
					tr = true;
					break;
				}
			}
			if (tr)
					break;
		}
		if (!tr)
			cout << -1 << " " << -1;

				/*
		b = a/2 + a;

		ll lm = b;

		while(1) {
			if (lm%a == 0 && lm%b == 0) {
				if (lm >= l && lm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lm;
		}
		*/
		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}

		bool tr = false;
		for (ll a = l; a <= r/2; ++a) {
			for (ll b = a+1; b <= r/2; ++b) {
				if (lcm(a, b) <= r && lcm(a, b) >= l) {
					cout << a << " " << b;
					tr = true;
					break;
				}
			}
			if (tr)
					break;
		}
		if (!tr)
			cout << -1 << " " << -1;

				/*
		b = a/2 + a;

		ll lm = b;

		while(1) {
			if (lm%a == 0 && lm%b == 0) {
				if (lm >= l && lm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lm;
		}
		*/
		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}
		ll b=l;
		bool tr = false;
		for (ll a = l; lcm(a,b) <= r; ++a) {
			for (b = a+1; b <= r; ++b) {
				if (lcm(a, b) <= r && lcm(a, b) >= l) {
					cout << a << " " << b;
					tr = true;
					break;
				}
			}
			if (tr)
					break;
		}
		if (!tr)
			cout << -1 << " " << -1;

				/*
		b = a/2 + a;

		ll lm = b;

		while(1) {
			if (lm%a == 0 && lm%b == 0) {
				if (lm >= l && lm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lm;
		}
		*/
		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {

		ll l, r;
		cin >> l >> r;
		ll a;
		if (r % l == 0 && l != 1) {
			cout << l << " " << r << endl;
			continue;
		}

		a= l+1;
		bool tr = false;
		for (int b = a+1; b <= r; ++b) {
			if (lcm(a, b) <= r && lcm(a, b) >= l) {
				cout << a << " " << b;
				tr = true;
				break;
			}
		}
		if (!tr)
			cout << -1 << " " << -1;

				/*
		b = a/2 + a;

		ll lm = b;

		while(1) {
			if (lm%a == 0 && lm%b == 0) {
				if (lm >= l && lm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lm;
		}
		*/
		cout << endl;
	}
}


#include <bits/stdc++.h>

#define ll long long int
#define ull unsigned long long int
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

using namespace std;

const int INF = 1e9 + 7;
const int N = 1e5+5;

int main() {

	IO;

	int t;
	cin >> t;
	while(t--) {
		ll l, r;
		cin >> l >> r;
		ll a, b;
		if (r % l == 0) {
			cout << l << " " << r << endl;
			continue;
		}
		if (l % 2==1)
			a=l+1;
		else
			a = l;

		b = (a/2) + a;

		ll lcm = b;

		while(1) {
			if (lcm%a == 0 && lcm%b == 0) {
				if (lcm >= l && lcm <= r) {
					cout << a << " " << b;
					break;
				}
				else {
					cout << -1 << " " << -1;
					break;
				}
			}
			++lcm;
		}

		cout << endl;
	}
}


#include<iostream>
using namespace std;
int main(){
    int t;
    while(t--){
        int l,r;
        cin>>l>>r;
        if(2*l>r) {
            cout<<-1<<" "<<-1<<endl;
            continue;
        }
        cout<<l<<" "<<2*l<<endl;

    }
    return 0;
}


#include <iostream>
using namespace std;
class gfg
{
public : long long int gcd(long long int a,long long  int b){
	if (a == 0)
		return b;
	return gcd(b % a, a);
}
long long int lcm(long long int a,long long  int b)
{
	return (a*b)/gcd(a, b);
}
} ;
int main()
{
    int n;
    cin>>n;
    for (int i=0;i<n;i++){
    	int flag=0;
        gfg g;
    	long long int a , b ;
    	cin>>a>>b;
    	long long int x=a,y=a+1;
    	for(x;x<=b-1;x++){
            for(y;y<=b;y++){
                long long int l = g.lcm(x, y);
                if(l<=b){
                    cout<<x<<" "<<y<<" "<<endl;
                    flag=1;
                    break;
                }
                if(flag==1) break;
            }
            if(flag==1) break;
        }
        if(flag==0) cout<<-1<<" "<<-1<<endl;
    }
return 0;
}


#include<iostream>
using namespace std;
int main(){
    long long int t;
    cin>>t;
    long long int l,r;
    for(int i=0;i<t;i++){

        cin>>l>>r;
        if(2*l>r){
            cout<<-1<<" "<<-1<<endl;
            continue;
        }
        cout<<l<<" "<<2*l<<endl;

    }
    return 0;
}


#include<iostream>
using namespace std;
int main(){
    int t;
    while(t--){
        int l,r;
        cin>>l>>r;
        if(2*l>r) {
            cout<<-1<<" "<<-1;
            continue;
        }
        cout<<l<<" "<<2*l;

    }
    return 0;
}


#include <iostream>
using namespace std;
class gfg
{
public : int gcd(int a, int b){
	if (a == 0)
		return b;
	return gcd(b % a, a);
}
int lcm(int a, int b)
{
	return (a*b)/gcd(a, b);
}
} ;
int main()
{
    int n;
    cin>>n;
    for (int i=0;i<n;i++){
    	int flag=0;
        gfg g;
    	int a , b ;
    	cin>>a>>b;
    	int x=a,y=a+1;
    	for(x;x<=b-1;x++){
            for(y;y<=b;y++){
                int l = g.lcm(x, y);
                if(l<=b){
                    cout<<x<<" "<<y<<" "<<endl;
                    flag=1;
                    break;
                }
                if(flag==1) break;
            }
            if(flag==1) break;
        }
        if(flag==0) cout<<-1<<" "<<-1<<endl;
    }
return 0;
}


#include<iostream>
using namespace std;
int main(){
    int t;
    while(t--){
        int l,r;
        cin>>l>>r;
        if(2*l>r) {
            cout<<-1<<" "<<-1;
            return 0;
        }
        cout<<l<<" "<<2*l;
        return 0;
    }
}


#include<iostream>
using namespace std;
int main(){
    int t;
    cin>>t;
    while(t--){
        int l,r;
        cin>>l>>r;
        if(2*l>r) {
            cout<<-1<<" "<<-1;
        }
        else{
        cout<<l<<" "<<2*l;
        }
    }
    return 0;
}


#include <iostream>
using namespace std;
class gfg
{
public : int gcd(int a, int b){
	if (a == 0)
		return b;
	return gcd(b % a, a);
}
int lcm(int a, int b)
{
	return (a*b)/gcd(a, b);
}
} ;
int main()
{
    int n;
    cin>>n;
    for (int i=0;i<n;i++){
    	int flag=0;
        gfg g;
    	long long int a , b ;
    	cin>>a>>b;
    	long long int x=a,y=a+1;
    	for(x;x<=b-1;x++){
            for(y;y<=b;y++){
                long long int l = g.lcm(x, y);
                if(l<=b){
                    cout<<x<<" "<<y<<" "<<endl;
                    flag=1;
                    break;
                }
                if(flag==1) break;
            }
            if(flag==1) break;
        }
        if(flag==0) cout<<-1<<" "<<-1<<endl;
    }
return 0;
}


#include<iostream>
#include<vector>
#include <numeric>
#include<algorithm>
typedef long long int lli;
using namespace std;
lli gcd(long a, long b,vector<vector<lli>> &dp) {
   if (b == 0) return dp[a][b]=a;
   if(dp[a][b]!=-1) return dp[a][b];
   return dp[a][b]=gcd(b, a % b,dp);
}
void solve(){
    lli l,r;
    cin>>l>>r;

        vector<vector<lli>> dp(r+1,vector<lli>(r+1,-1));
        int flag=0;
        for(lli i=l;i<=r;i++){
            for(lli j=i+1;j<=r;j++){
                lli a=(lli)(i*j)/gcd(i,j,dp);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag==0){
            cout<<-1<<" "<<-1<<endl;
        }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include<vector>
#include <numeric>
#include<algorithm>
typedef long long int lli;
using namespace std;
void solve(){
    lli l,r;
    cin>>l>>r;
    if(2*l<=r){
        cout<<l<<" "<<r<<"\n";
    }
    else
        cout<<"-1 -1\n";

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include <numeric>
#include<algorithm>
using namespace std;
int gcd(int a, int b) {
   if (b == 0)
    return a;
   return gcd(b, a % b);
}
void solve(){
    int l,r;
    cin>>l>>r;
    if(r%l==0){
        cout<<l<<" "<<r<<endl;
    }
    // else if(l+1==r){
    //     cout<<-1<<" "<<-1<<endl;
    // }
    else{
        int flag=0;
        for(int i=l;i<r;i++){
            for(int j=i+1;j<=r;j++){
                int a=(i*j)/gcd(i,j);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag==0){
            cout<<-1<<" "<<-1<<endl;
        }
    }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
void solve(){
    int l,r;
    cin>>l>>r;
    if(r%l==0){
        cout<<l<<" "<<r<<endl;
    }
    else if(r+1==l || (l*2)>r){
        cout<<-1<<" "<<-1<<endl;
    }
    else{
        cout<<l+1<<" "<<(l+1)*2<<endl;
    }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include <numeric>
#include<algorithm>
typedef long long int lli;
using namespace std;
lli gcd(long a, long b) {
   if (b == 0)
    return a;
   return gcd(b, a % b);
}
void solve(){
    lli l,r;
    cin>>l>>r;

        int flag=0;
        for(lli i=l;i<=r;i++){
            for(lli j=i+1;j<=r;j++){
                lli a=(lli)(i*j)/gcd(i,j);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag==0){
            cout<<-1<<" "<<-1<<endl;
        }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include<vector>
#include <numeric>
#include<algorithm>
typedef long long int lli;
using namespace std;
void solve(){
    lli l,r;
    cin>>l>>r;
    if(2*l<=r){
        cout<<l<<" "<<2*l<<"\n";
    }
    else
        cout<<"-1 -1\n";

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
void solve(){
    int l,r;
    cin>>l>>r;
    if(r%l==0){
        cout<<l<<" "<<r<<endl;
    }
    else if(r+1==l || (l*2)>r){
        cout<<-1<<" "<<-1<<endl;
    }
    else{
        cout<<l<<" "<<(l)*2<<endl;
    }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include <numeric>
#include<algorithm>
using namespace std;
int gcd(long a, long b) {
   if (b == 0)
    return a;
   return gcd(b, a % b);
}
void solve(){
    long l,r;
    cin>>l>>r;

        int flag=0;
        for(long i=l;i<=r;i++){
            for(long j=i+1;j<=r;j++){
                long a=(long)(i*j)/gcd(i,j);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag==0){
            cout<<-1<<" "<<-1<<endl;
        }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include <numeric>
#include<algorithm>
using namespace std;
long gcd(long a, long b) {
   if (b == 0)
    return a;
   return gcd(b, a % b);
}
void solve(){
    long l,r;
    cin>>l>>r;

        int flag=0;
        for(long i=l;i<=r;i++){
            for(long j=i+1;j<=r;j++){
                long a=(long)(i*j)/gcd(i,j);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag==0){
            cout<<-1<<" "<<-1<<endl;
        }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include <numeric>
#include<algorithm>
using namespace std;
int gcd(int a, int b) {
   if (b == 0)
   return a;
   return gcd(b, a % b);
}
void solve(){
    int l,r;
    cin>>l>>r;
    if(r%l==0){
        cout<<l<<" "<<r<<endl;
    }
    else if(l+1==r){
        cout<<-1<<" "<<-1<<endl;
    }
    else{
        int flag=0;
        for(int i=l;i<r;i++){
            for(int j=i+1;j<=r;j++){
                int a=(i*j)/gcd(i,j);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
    }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<iostream>
#include <numeric>
#include<algorithm>
using namespace std;
int gcd(int a, int b) {
   if (b == 0)
    return a;
   return gcd(b, a % b);
}
void solve(){
    int l,r;
    cin>>l>>r;

        int flag=0;
        for(int i=l;i<r;i++){
            for(int j=i+1;j<=r;j++){
                int a=(i*j)/gcd(i,j);
                if(a>=l && a<=r){
                    cout<<i<<" "<<j<<endl;
                    flag=1;
                    break;
                }
            }
            if(flag) break;
        }
        if(flag==0){
            cout<<-1<<" "<<-1<<endl;
        }

}
int main(){
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,i=0,num=0;
    cin>>t;
    while(t--){
        cin>>l>>r;
        while(i>=0){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;
            if(pow(2,i)>r){
                i=-1;
            }

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,ri=1,num=0,j;
    cin>>t;
    for(j=0;j<t;j++){
        cin>>l>>r;
        int i=1;
        while(pow(2,i)<=r){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,i=1,num=0;
    cin>>t;
    while(t--){
        cin>>l>>r;
        while(i>0){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;
            if(pow(2,i)>r){
                break;
            }

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,j;
    cin>>t;
    for(j=0;j<t;j++){
        cin>>l>>r;
        int num=0,i=1;
        while(pow(2,i)<=r){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include <bits/stdc++.h>
#include<vector>
#include<iterator>
#include<stdlib.h>
#include <algorithm>
#include <cctype>

using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        long long int a,b;
        cin>>a>>b;
        if(a*2>b)
            cout<<"-1 -1"<<endl;
        else
            cout<<a<<" "<<a*2<<endl;
    }
    return 0;
}


#include <bits/stdc++.h>
#include<vector>
#include<iterator>
#include<stdlib.h>
#include <algorithm>
#include <cctype>

using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        long long int a,b;
        cin>>a>>k;
        if(a*2>k)
            cout<<"-1 -1"<<endl;
        else
            cout<<a<<" "<<a*2<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,j;
    cin>>t;
    for(j=0;j<t;j++){
        cin>>l>>r;
        int num=0,i=0;
        while(pow(2,i)<=r){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,i=1,num=0;
    cin>>t;
    while(t--){
        cin>>l>>r;
        while(i>0){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;
            if(pow(2,i)>r){
                i=0;
            }

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,j;
    cin>>t;
    for(j=0;j<t;j++){
        cin>>l>>r;
        int num=0,i=0;
        while(pow(2,i)<=r){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
            }
            i++;

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
#include<string.h>
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>

using namespace std;

int main()
{
    int t,l,r,num=0,j;
    cin>>t;
    for(j=0;j<t;j++){
        cin>>l>>r;
        int i=1;
        while(pow(2,i)<=r){
            if(pow(2,i)>=l && pow(2,i)<=r){
                if(pow(2,i+1)>=l && pow(2,i+1)<=r){
                    cout<<pow(2,i)<<" "<<pow(2,i+1)<<endl;
                    num=1;
                    break;
                }
                else
                    cout<<"-1 -1"<<endl;
            }
            i++;

        }
        if(num==0){
            cout<<"-1 -1"<<endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define pii pair<long long,long long>
#define mp make_pair
#define pb push_back
#define F first
#define S second
#define ll long long
int main()
{
    ll n,m,t;
    cin>>t;
    while(t--)
    {
        cin>>n>>m;
        ll p=-1,w=-1;
        for(int i=n;i<m;i++)
        {
            ll lcm;
            for(int j=n+1;j<=m;j++){
                ll lcm=(i*j)/__gcd(i,j);
                if(lcm<=m)
                {
                    p=i,w=j;
                    break;
                }
            }
            if(lcm<=m)
                break;

    }

        cout<<w<<" "<<p<<endl;
    }
}


#include<bits/stdc++.h>
using namespace std;
#define pii pair<long long,long long>
#define mp make_pair
#define pb push_back
#define F first
#define S second
#define ll long long
int main()
{
    ll n,m,t;
    cin>>t;
    while(t--)
    {
        cin>>n>>m;
        ll p=-1,w=-1;
        for(int i=n;i<m;i++)
        {
            ll lcm;
            for(int j=n+1;j<=m;j++){
                ll lcm=(i*j)/__gcd(i,j);
                if(lcm<=m)
                {
                    p=i,w=j;
                    break;
                }
            }
            if(p>0 && w>0)
                break;

    }
       if(p!=w )
        cout<<p<<" "<<w<<endl;
       else
        cout<<-1<<" "<<-1<<endl;
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System;
using System.Linq;

namespace timus1269
{
    class Program
    {
        static void Main(string[] args)
        {
            //var s = Console.ReadLine().Split().Select(int.Parse).ToArray();
            var n = int.Parse(Console.ReadLine());
            var v = Console.ReadLine().Split().Select(int.Parse).ToArray();
            var t = Console.ReadLine().Split().Select(int.Parse).ToArray();
            var ans = new long[n];
            var a = new long[n];
            var open = new int[n];
            var close = new int[n];

            a[0] = t[0];
            for (int i = 1; i < n; i++)
            {
                a[i] = a[i - 1] + t[i];
            }

            for (var i = 0; i < n; i++)
            {
                if (t[i] >= v[i])
                {
                    ans[i] += v[i];
                    continue;
                }
                var j = -1;
                var left = i;
                var right = a.Length;
                var value = v[i];
                while (((right - left) / 2) > 0)
                {
                    var middle = left + (right - left) / 2;

                    var sum = a[middle] - (i == 0 ? 0 : a[i - 1]);
                    if (sum < value)
                        left = middle + 1;
                    else
                        right = middle;
                }
                if (left < n)
                    j = a[left] - (i == 0 ? 0 : a[i - 1]) >= value ? left : right;
                else
                    j = left;

                open[i]++;

                if (j < n)
                {
                    close[j-1]++;
                    ans[j] += v[i] + (i == 0 ? 0 : a[i - 1]) - (j == 0 ? 0 : a[j - 1]);

                }
            }
            var k = 0;
            for (var i = 0; i < n; i++)
            {
                k += open[i];
                ans[i] += t[i] * k;
                k -= close[i];
            }
            Console.WriteLine(string.Join(" ", ans.Select(x => x.ToString())));

        }
    }
}


using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.IO;

namespace TimusApp
{
	public class Program
	{

		static void Main(string[] args)
		{
			var N = int.Parse(Console.ReadLine());
			var V = Console.ReadLine().Split().Select(long.Parse).ToArray();
			var T = Console.ReadLine().Split().Select(long.Parse).ToArray();
			long currentSnow = 0;
			var snowInDay = new List<long>();
			snowInDay.Add(0);
			for (int i = 0; i < N; i++)
			{
				currentSnow += T[i];
				snowInDay.Add(currentSnow);
			}
			var endDays = new int[N];
			var snowLeft = new long[N];
			var resultSugrobs = new List<int>();
			for (int i = 0; i < N; i++)
				resultSugrobs.Add(0);
			var minusSnow = new long[N];
			for (int i = 0; i < N; i++)
			{
				endDays[i] = FindRightDay(V[i], i, snowInDay);
				if (endDays[i] + 1 < N)
					resultSugrobs[endDays[i] + 1]++;

				snowLeft[i] = T[endDays[i]] - (V[i] - (snowInDay[endDays[i]] - snowInDay[i]));
				minusSnow[endDays[i]] += snowLeft[i];
			}
			var sugrobs = new List<int>();
			var currentCounter = 0;
			for (int i = 0; i < N; i++)
			{
				currentCounter++;
				currentCounter -= resultSugrobs[i];
				sugrobs.Add(currentCounter);
			}
			var res = new List<long>();

			for (int i = 0; i < N; i++)
			{
				res.Add(T[i] * sugrobs[i] - minusSnow[i]);
			}
			Console.WriteLine(string.Join(" ", res));
		}

		public static int FindRightDay(long v, int left, List<long> snows)
		{
			var l = left;
			var r = snows.Count;
			while (r - l > 1)
			{
				var m = l + (r - l) / 2;
				var sumForThisDays = snows[m] - snows[left];
				if (sumForThisDays >= v)
					r = m;
				else
					l = m;
			}
			return l;
		}
	}
}


using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.IO;

namespace TimusApp
{
	public class Program
	{

		static void Main(string[] args)
		{
			var N = int.Parse(Console.ReadLine());
			var V = Console.ReadLine().Split().Select(long.Parse).ToArray();
			var T = Console.ReadLine().Split().Select(long.Parse).ToArray();
			long currentSnow = 0;
			var snowInDay = new List<long>();
			snowInDay.Add(0);
			for (int i = 0; i < N; i++)
			{
				currentSnow += T[i];
				snowInDay.Add(currentSnow);
			}
			var endDays = new int[N];
			var snowLeft = new long[N];
			var resultSugrobs = new List<int>();
			for (int i = 0; i < N; i++)
				resultSugrobs.Add(0);
			var minusSnow = new long[N];
			for (int i = 0; i < N; i++)
			{
				endDays[i] = FindRightDay(V[i], i, snowInDay);
				if (endDays[i] + 1 < N)
					resultSugrobs[endDays[i] + 1]++;
				if (endDays[i] >= N)
					continue;
				snowLeft[i] = T[endDays[i]] - (V[i] - (snowInDay[endDays[i]] - snowInDay[i]));
				minusSnow[endDays[i]] += snowLeft[i];
			}
			var sugrobs = new List<int>();
			var currentCounter = 0;
			for (int i = 0; i < N; i++)
			{
				currentCounter++;
				currentCounter -= resultSugrobs[i];
				sugrobs.Add(currentCounter);
			}
			var res = new List<long>();

			for (int i = 0; i < N; i++)
			{
				res.Add(T[i] * sugrobs[i] - minusSnow[i]);
			}
			Console.WriteLine(string.Join(" ", res));
		}

		public static int FindRightDay(long v, int left, List<long> snows)
		{
			var l = left;
			var r = snows.Count;
			while (r - l > 1)
			{
				var m = l + (r - l) / 2;
				var sumForThisDays = snows[m] - snows[left];
				if (sumForThisDays >= v)
					r = m;
				else
					l = m;
			}
			return l;
		}
	}
}


import java.lang.Integer.min

fun main(args: Array<String>) {
    val n = readLine()!!.toInt()
    val vs = readLine()!!.split(' ').map(String::toInt).toMutableList()
    val ts = readLine()!!.split(' ').map(String::toInt)

    for (i in (0 until n)) {
        var total = 0
        for (j in (0..i)) {
            if (vs[j] == 0) continue
            val t = min(vs[j], ts[i])
            vs[j] -= t
            total += t
        }
        print(total)
        print(' ')
    }
}


import java.util.*

fun main(args: Array<String>) {
    val n = readLine()!!.toInt()
    val vs = readLine()!!.split(' ').map(String::toLong)
    val ts = readLine()!!.split(' ').map(String::toLong)

    val heap = PriorityQueue<Long>()
    var t: Long = 0
    for(i in (0 until n)) {
        heap.add(vs[i] + t)

        var total: Long = 0
        while (heap.isNotEmpty() && heap.peek() <= t + ts[i]) {
            total += heap.poll() - t
        }

        t += ts[i]
        total += heap.size * ts[i]
        print(total)
        print(' ')
    }
}


import java.lang.Integer.min

fun main(args: Array<String>) {
    val n = readLine()!!.toInt()
    val vs = readLine()!!.split(' ').map(String::toInt).toMutableList()
    val ts = readLine()!!.split(' ').map(String::toInt)

    (0 until n).map { i ->
        (0..i).map { j ->
            if (vs[j] == 0) {
                0
            } else {
                val t = min(vs[j], ts[i])
                vs[j] -= t
                t
            }
        }.sum()
    }.let { println(it.joinToString(" ")) }
}


#include <stdio.h>
#include <stdlib.h>
struct Heap
{
	int count;
	int capacity;
	int *data;
} typedef Heap;

Heap* Heap_Create(int capacity)
{
	Heap* toreturn = malloc(sizeof(Heap));
	toreturn->count = 0;
	toreturn->capacity = capacity;
	toreturn->data = malloc((capacity+1) * sizeof(int));
	return toreturn;
}
void Heap_Swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}
int MinHeap_Insert(Heap* heap, int value)// 0: heap is full; 1: success
{
	if (heap->capacity == heap->count)
		return 0;
	(heap->count) ++;
	int current = (heap->count);
	(heap->data)[(heap->count)] = value;
	while (current != 1)
	{
		if ((heap->data)[current] < (heap->data)[current/2])
		{
			Heap_Swap(&(heap->data)[current], &(heap->data)[current/2]);
			current /= 2;
		}
		else
			break;
	}
	return 1;
}
void MinHeap_Delete(Heap* heap)
{
	Heap_Swap(&(heap->data)[heap->count], &(heap->data)[1]);
	(heap->count) --;
	int current = 1;
	while (2*current <= heap->count || 2*current+1 <= heap->count)
	{
		if (2*current <= heap->count && 2*current+1 <= heap->count)
		{
			int min = current * 2;
			if ((heap->data)[current * 2] > (heap->data)[current * 2 + 1])
				min = current * 2 + 1;
			if ((heap->data)[current] > (heap->data)[min])
			{
				Heap_Swap(&(heap->data)[current], &(heap->data)[min]);
				current = min;
				continue;
			}
		}
		else if (2*current <= heap->count)
		{
			if ((heap->data)[current] > (heap->data)[2*current])
			{
				Heap_Swap(&(heap->data)[current], &(heap->data)[2*current]);
				current = 2*current;
				continue;
			}
		}
		else if ((heap->data)[current] > (heap->data)[2*current+1])
		{
			Heap_Swap(&(heap->data)[current], &(heap->data)[2*current+1]);
			current = 2*current+1;
			continue;
		}
		break;
	}
}
int main()
{
	int cases;
	scanf("%i", &cases);
	int volume[cases+1], temperature[cases+1];
	volume[0] = 0;
	temperature[0] = 0;
	Heap* heap = Heap_Create(cases);
	for (int i = 1; i <= cases; i ++)
		scanf("%i", &volume[i]);
	for (int i = 1; i <= cases; i ++)
	{
		scanf("%i", &temperature[i]);
		temperature[i] += temperature[i - 1];
		MinHeap_Insert(heap, volume[i] + temperature[i - 1]);
		int answer = 0;
		while ((heap->count) > 0 && (heap->data)[1] < temperature[i])
		{
			answer += (heap->data)[1]-temperature[i-1];
			MinHeap_Delete(heap);
		}
		answer += (heap->count) * (temperature[i]-temperature[i-1]);
		printf("%i ", answer);
	}
	return 0;
}


#include <stdio.h>
#include <stdlib.h>
struct Heap
{
	int count;
	int capacity;
	unsigned long long *data;
} typedef Heap;

Heap* Heap_Create(int capacity)
{
	Heap* toreturn = malloc(sizeof(Heap));
	toreturn->count = 0;
	toreturn->capacity = capacity;
	toreturn->data = malloc((capacity+1) * sizeof(unsigned long long));
	return toreturn;
}
void Heap_Swap(unsigned long long* a, unsigned long long* b)
{
	unsigned long long temp = *a;
	*a = *b;
	*b = temp;
}
int MinHeap_Insert(Heap* heap, unsigned long long value)// 0: heap is full; 1: success
{
	if (heap->capacity == heap->count)
		return 0;
	(heap->count) ++;
	int current = (heap->count);
	(heap->data)[(heap->count)] = value;
	while (current != 1)
	{
		if ((heap->data)[current] < (heap->data)[current/2])
		{
			Heap_Swap(&(heap->data)[current], &(heap->data)[current/2]);
			current /= 2;
		}
		else
			break;
	}
	return 1;
}
void MinHeap_Delete(Heap* heap)
{
	if ((heap->count) > 1)
		Heap_Swap(&(heap->data)[heap->count], &(heap->data)[1]);
	(heap->count) --;
	int current = 1;
	while (2*current <= heap->count || 2*current+1 <= heap->count)
	{
		if (2*current <= heap->count && 2*current+1 <= heap->count)
		{
			int min = current * 2;
			if ((heap->data)[current * 2] > (heap->data)[current * 2 + 1])
				min = current * 2 + 1;
			if ((heap->data)[current] > (heap->data)[min])
			{
				Heap_Swap(&(heap->data)[current], &(heap->data)[min]);
				current = min;
				continue;
			}
		}
		else if (2*current <= heap->count)
		{
			if ((heap->data)[current] > (heap->data)[2*current])
			{
				Heap_Swap(&(heap->data)[current], &(heap->data)[2*current]);
				current = 2*current;
				continue;
			}
		}
		else if ((heap->data)[current] > (heap->data)[2*current+1])
		{
			Heap_Swap(&(heap->data)[current], &(heap->data)[2*current+1]);
			current = 2*current+1;
			continue;
		}
		break;
	}
}
int main()
{
	int cases;
	scanf("%i", &cases);
	unsigned long long volume[cases+1], temperature[cases+1];
	volume[0] = 0;
	temperature[0] = 0;
	Heap* heap = Heap_Create(cases);
	for (int i = 1; i <= cases; i ++)
		scanf("%I64d", &volume[i]);
	for (int i = 1; i <= cases; i ++)
	{
		scanf("%I64d", &temperature[i]);
		temperature[i] += temperature[i - 1];
		MinHeap_Insert(heap, volume[i] + temperature[i - 1]);
		unsigned long long answer = 0;
		while ((heap->count) > 0 && (heap->data)[1] < temperature[i])
		{
			answer += (heap->data)[1]-temperature[i-1];
			MinHeap_Delete(heap);
		}
		answer += (heap->count) * (temperature[i]-temperature[i-1]);
		printf("%I64d ", answer);
	}
	return 0;
}


#include <stdio.h>
#include <stdlib.h>
struct list
{
	int *v;
	struct list* next;
	struct list* prev;
} typedef list;
list *create(int *v, list* prev, list *next)
{
	list *toreturn = malloc(sizeof(list));
	toreturn->v = v;
	toreturn->prev = prev;
	toreturn->next = next;
	return toreturn;
}
void main()
{
	int cases;
	scanf("%i", &cases);
	int volume[cases], temperature;
	for (int i = 0; i < cases; i ++)
		scanf("%i", &volume[i]);
	list *starting = NULL;
	for (int i = 0; i < cases; i ++)
	{
		scanf("%i", &temperature);
		if (starting == NULL)
			starting = create(&volume[i], NULL, NULL);
		else
		{
			list *temp = create(&volume[i], NULL, starting);
			starting->prev = temp;
			starting = temp;
		}
		int answer = 0;
		list *current = starting;
		list *prev = NULL;
		while (current != NULL)
		{
			*(current->v) -= temperature;
			answer += temperature;
			list* temp = current->next;
			if (*(current->v) <= 0)
			{
				answer += *(current->v);
				if (starting == current)
				{
					starting = current->next;
					if (starting != NULL)
						starting->prev = NULL;
				}
				else
				{
					current->prev->next = current->next;
				}
				free(current);
			}
			current = temp;
		}
		printf("%i ", answer);
	}
}


#include <stdio.h>
#include <stdlib.h>
struct list
{
	int *v;
	struct list* next;
	struct list* prev;
} typedef list;
list *create(int *v, list* prev, list *next)
{
	list *toreturn = malloc(sizeof(list));
	toreturn->v = v;
	toreturn->prev = prev;
	toreturn->next = next;
	return toreturn;
}
int main()
{
	int cases;
	scanf("%i", &cases);
	int volume[cases], temperature;
	for (int i = 0; i < cases; i ++)
		scanf("%i", &volume[i]);
	list *starting = NULL;
	for (int i = 0; i < cases; i ++)
	{
		scanf("%i", &temperature);
		if (starting == NULL)
			starting = create(&volume[i], NULL, NULL);
		else
		{
			list *temp = create(&volume[i], NULL, starting);
			starting->prev = temp;
			starting = temp;
		}
		int answer = 0;
		list *current = starting;
		list *prev = NULL;
		while (current != NULL)
		{
			*(current->v) -= temperature;
			answer += temperature;
			list* temp = current->next;
			if (*(current->v) <= 0)
			{
				answer += *(current->v);
				if (starting == current)
				{
					starting = current->next;
					if (starting != NULL)
						starting->prev = NULL;
				}
				else
				{
					current->prev->next = current->next;
				}
				free(current);
			}
			current = temp;
		}
		printf("%i ", answer);
	}
	return 0;
}


#include <stdio.h>
#include <string.h>

#define N 100005

typedef long long ll;

ll v[N], t[N], s[N], r[N], c[N];

int main(int argc, char** argv) {
    int i, n;

    scanf("%d", &n);
    for (i = 1; i <= n; i++)
        scanf("%I64d", &v[i]);
    for (i = 1; i <= n; i++)
        scanf("%I64d", &t[i]);

    c[0] = s[0] = 0LL;
    for (i = 1; i <= n; i++) {
        s[i] = s[i-1] + t[i];
        c[i] = r[i] = 0LL;
    }
    s[n+1] = 100000000000000000LL;

    for (i = 1; i <= n; i++) {
        int low = 1, high = n+1, m, mid;
        ll vp = v[i] + s[i-1];
        while (low <= high) {
            mid = (low + high) / 2;
            if (s[mid] < vp)
                low = mid + 1;
            else {
                m = mid;
                high = mid - 1;
            }
        }
        c[m]--;
        r[m] += vp - s[m-1];
    }

    for (i = 1; i <= n; i++)
        c[i] += c[i-1] + 1;

    for (i = 1; i <= n; i++)
        printf("%I64d ", c[i] * t[i] + r[i]);
    putchar('\n');
    return 0;
}


import java.util.*;

public class Producing_Snow {

	static Scanner in = new Scanner(System.in);

	public static void main(String[] args) {

		int n = in.nextInt();

		int[] arr = new int[n];

		for(int i = 0; i < n; i++) {
			arr[i] = in.nextInt();
		}

		PriorityQueue<Long> q = new PriorityQueue<>();
		long sum = 0;
		for(int i = 0; i < n; i++) {
			int t = in.nextInt();
			q.add(arr[i]+sum);
			sum+=t;
			long ans = 0;
			while(!q.isEmpty()&&q.peek()<=sum) {
				ans += q.remove()-sum+t;
			}
			System.out.print(ans+(long)t*q.size() + " ");
		}
	}
}


import java.util.*;

public class Producing_Snow {

	static Scanner in = new Scanner(System.in);

	public static void main(String[] args) {

		int n = in.nextInt();

		int[] arr = new int[n];

		for(int i = 0; i < n; i++) {
			arr[i] = in.nextInt();
		}

		PriorityQueue<Long> q = new PriorityQueue<>();
		long sum = 0;

		for(int i = 0; i < n; i++) {
			int t = in.nextInt();
			q.add(arr[i]+sum);
			sum+=t;
			long ans = 0;
			while(!q.isEmpty()&&q.peek()<=sum) {
				ans += q.remove()-sum+t;
			}
			System.out.println(ans+(long)t*q.size()+" ");
		}
	}
}


import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        StringTokenizer snow = new StringTokenizer(in.readLine());
        StringTokenizer melt = new StringTokenizer(in.readLine());

        long waterLevel = 0;
        HashSet<Long> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            set.add(Integer.parseInt(snow.nextToken()) + waterLevel);
            long meltAmount = Integer.parseInt(melt.nextToken());
            waterLevel += meltAmount;

            long res = 0;
            HashSet<Long> removed = new HashSet<>();
            for (long s : set) {
                if (s <= waterLevel) {
                    res += s - (waterLevel - meltAmount);
                    removed.add(s);
                }
            }
            set.removeAll(removed);

            res += meltAmount*set.size();

            if (i > 0) {
                System.out.print(' ');
            }
            System.out.print(res);
        }
        System.out.print('\n');
    }

}
/*

 */


import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        StringTokenizer snow = new StringTokenizer(in.readLine());
        StringTokenizer melt = new StringTokenizer(in.readLine());

        int waterLevel = 0;
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            set.add(Integer.parseInt(snow.nextToken()) + waterLevel);
            int meltAmount = Integer.parseInt(melt.nextToken());
            waterLevel += meltAmount;

            int res = 0;
            res += meltAmount*set.size();

            HashSet<Integer> removed = new HashSet<>();
            for (int s : set) {
                if (s <= waterLevel) {
                    res -= Math.abs(s-waterLevel);
                    removed.add(s);
                }
            }
            set.removeAll(removed);

            if (i > 0) {
                System.out.print(' ');
            }
            System.out.print(res);
        }
        System.out.print('\n');
    }

}
/*

 */


import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        StringTokenizer snow = new StringTokenizer(in.readLine());
        StringTokenizer melt = new StringTokenizer(in.readLine());

        long waterLevel = 0;
        PriorityQueue<Long> pq = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            pq.offer(Integer.parseInt(snow.nextToken()) + waterLevel);
            long meltAmount = Integer.parseInt(melt.nextToken());
            waterLevel += meltAmount;

            long res = meltAmount*pq.size();
            while (!pq.isEmpty() && pq.peek() <= waterLevel) {
                res -= Math.abs(pq.poll() - waterLevel);
            }

            if (i > 0) {
                System.out.print(' ');
            }
            System.out.print(res);
        }
        System.out.print('\n');
    }

}
/*

 */


import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        StringTokenizer snow = new StringTokenizer(in.readLine());
        StringTokenizer melt = new StringTokenizer(in.readLine());

        int waterLevel = 0;
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            set.add(Integer.parseInt(snow.nextToken()) + waterLevel);
            long meltAmount = Integer.parseInt(melt.nextToken());
            waterLevel += meltAmount;

            long res = 0;
            HashSet<Integer> removed = new HashSet<>();
            for (int s : set) {
                if (s <= waterLevel) {
                    res += s - (waterLevel - meltAmount);
                    removed.add(s);
                }
            }
            set.removeAll(removed);

            res += meltAmount*set.size();

            if (i > 0) {
                System.out.print(' ');
            }
            System.out.print(res);
        }
        System.out.print('\n');
    }

}
/*

 */


import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        StringTokenizer snow = new StringTokenizer(in.readLine());
        StringTokenizer melt = new StringTokenizer(in.readLine());

        int waterLevel = 0;
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            set.add(Integer.parseInt(snow.nextToken()) + waterLevel);
            int meltAmount = Integer.parseInt(melt.nextToken());
            waterLevel += meltAmount;

            int res = 0;
            HashSet<Integer> removed = new HashSet<>();
            for (int s : set) {
                if (s <= waterLevel) {
                    res += s - (waterLevel - meltAmount);
                    removed.add(s);
                }
            }
            set.removeAll(removed);

            res += meltAmount*set.size();

            if (i > 0) {
                System.out.print(' ');
            }
            System.out.print(res);
        }
        System.out.print('\n');
    }

}
/*

 */


import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        StringTokenizer snow = new StringTokenizer(in.readLine());
        StringTokenizer melt = new StringTokenizer(in.readLine());

        int waterLevel = 0;
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < n; i++) {
            set.add(Integer.parseInt(snow.nextToken()) + waterLevel);
            int meltAmount = Integer.parseInt(melt.nextToken());
            waterLevel += meltAmount;

            int res = 0;
            HashSet<Integer> removed = new HashSet<>();
            for (int s : set) {
                if (s <= waterLevel) {
                    int x = s - (waterLevel - meltAmount);
                    if (x > 0) {
                        res += x;
                    }
                    removed.add(s);
                }
            }
            set.removeAll(removed);

            res += meltAmount*set.size();

            if (i > 0) {
                System.out.print(' ');
            }
            System.out.print(res);
        }
        System.out.print('\n');
    }

}
/*

 */


import java.io.*;
import java.util.*;

public class B {
    public static void solution(BufferedReader reader, PrintWriter writer)
            throws IOException {
        In in = new In(reader);
        Out out = new Out(writer);
        int n = in.nextInt();
        int[] v = in.nextIntArray1(n);
        int[] t = in.nextIntArray1(n);

        int[] sum = new int[n + 2];
        for (int i = 1; i <= n; i++)
            sum[i] = t[i] + sum[i - 1];
        sum[n + 1] = Integer.MAX_VALUE;

        int[] cnt = new int[n + 2];
        int[] remain = new int[n + 2];
        for (int i = 1; i <= n; i++) {
            int left = i - 1, right = n + 1;
            while (left + 1 < right) {
                int mid = (left + right) / 2;
                int melt = sum[mid] - sum[i - 1];
                if (melt > v[i])
                    right = mid;
                else
                    left = mid;
            }
            if (left >= i) {
                cnt[i]++;
                cnt[right]--;
            }
            remain[right] += v[i] - (sum[right - 1] - sum[i - 1]);
        }

        for (int i = 1; i <= n; i++) {
            cnt[i] += cnt[i - 1];
            out.printb(cnt[i] * t[i] + remain[i]);
        }
    }

    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(System.in));
        PrintWriter writer = new PrintWriter(
                new BufferedWriter(new OutputStreamWriter(System.out)));
        solution(reader, writer);
        writer.close();
    }

    protected static class In {
        private BufferedReader reader;
        private StringTokenizer tokenizer = new StringTokenizer("");

        public In(BufferedReader reader) {
            this.reader = reader;
        }

        public String next() throws IOException {
            while (!tokenizer.hasMoreTokens())
                tokenizer = new StringTokenizer(reader.readLine());
            return tokenizer.nextToken();
        }

        public int nextInt() throws IOException {
            return Integer.parseInt(next());
        }

        public long nextLong() throws IOException {
            return Long.parseLong(next());
        }

        public double nextDouble() throws IOException {
            return Double.parseDouble(next());
        }

        public int[] nextIntArray(int n) throws IOException {
            int[] a = new int[n];
            for (int i = 0; i < n; i++)
                a[i] = nextInt();
            return a;
        }

        public int[] nextIntArray1(int n) throws IOException {
            int[] a = new int[n + 1];
            for (int i = 1; i <= n; i++)
                a[i] = nextInt();
            return a;
        }

        public int[] nextIntArraySorted(int n) throws IOException {
            int[] a = nextIntArray(n);
            Random r = new Random();
            for (int i = 0; i < n; i++) {
                int j = i + r.nextInt(n - i);
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
            Arrays.sort(a);
            return a;
        }

        public long[] nextLongArray(int n) throws IOException {
            long[] a = new long[n];
            for (int i = 0; i < n; i++)
                a[i] = nextLong();
            return a;
        }

        public long[] nextLongArray1(int n) throws IOException {
            long[] a = new long[n + 1];
            for (int i = 1; i <= n; i++)
                a[i] = nextLong();
            return a;
        }

        public long[] nextLongArraySorted(int n) throws IOException {
            long[] a = nextLongArray(n);
            Random r = new Random();
            for (int i = 0; i < n; i++) {
                int j = i + r.nextInt(n - i);
                long t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
            Arrays.sort(a);
            return a;
        }
    }

    protected static class Out {
        private PrintWriter writer;
        private static boolean local = System
                .getProperty("ONLINE_JUDGE") == null;

        public Out(PrintWriter writer) {
            this.writer = writer;
        }

        public void print(char c) {
            writer.print(c);
        }

        public void print(int a) {
            writer.print(a);
        }

        public void printb(int a) {
            writer.print(a);
            writer.print(' ');
        }

        public void println(Object a) {
            writer.println(a);
        }

        public void println(Object[] os) {
            for (int i = 0; i < os.length; i++) {
                writer.print(os[i]);
                writer.print(' ');
            }
            writer.println();
        }

        public void println(int[] a) {
            for (int i = 0; i < a.length; i++) {
                writer.print(a[i]);
                writer.print(' ');
            }
            writer.println();
        }

        public void println(long[] a) {
            for (int i = 0; i < a.length; i++) {
                writer.print(a[i]);
                writer.print(' ');
            }
            writer.println();
        }

        public void flush() {
            writer.flush();
        }

        public static void db(Object... objects) {
            if (local)
                System.out.println(Arrays.deepToString(objects));
        }
    }
}


import java.io.*;
import java.util.*;

public class B {
    public static void solution(BufferedReader reader, PrintWriter writer)
            throws IOException {
        In in = new In(reader);
        Out out = new Out(writer);
        int n = in.nextInt();
        int[] v = in.nextIntArray1(n);
        int[] t = in.nextIntArray1(n);

        long[] sum = new long[n + 2];
        for (int i = 1; i <= n; i++)
            sum[i] = t[i] + sum[i - 1];
        sum[n + 1] = Long.MAX_VALUE;

        long[] cnt = new long[n + 2];
        long[] remain = new long[n + 2];
        for (int i = 1; i <= n; i++) {
            int left = i - 1, right = n + 1;
            while (left + 1 < right) {
                int mid = (left + right) / 2;
                long melt = sum[mid] - sum[i - 1];
                if (melt > v[i])
                    right = mid;
                else
                    left = mid;
            }
            if (left >= i) {
                cnt[i]++;
                cnt[right]--;
            }
            remain[right] += v[i] - (sum[right - 1] - sum[i - 1]);
        }

        for (int i = 1; i <= n; i++) {
            cnt[i] += cnt[i - 1];
            out.printb(cnt[i] * t[i] + remain[i]);
        }
    }

    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(System.in));
        PrintWriter writer = new PrintWriter(
                new BufferedWriter(new OutputStreamWriter(System.out)));
        solution(reader, writer);
        writer.close();
    }

    protected static class In {
        private BufferedReader reader;
        private StringTokenizer tokenizer = new StringTokenizer("");

        public In(BufferedReader reader) {
            this.reader = reader;
        }

        public String next() throws IOException {
            while (!tokenizer.hasMoreTokens())
                tokenizer = new StringTokenizer(reader.readLine());
            return tokenizer.nextToken();
        }

        public int nextInt() throws IOException {
            return Integer.parseInt(next());
        }

        public long nextLong() throws IOException {
            return Long.parseLong(next());
        }

        public double nextDouble() throws IOException {
            return Double.parseDouble(next());
        }

        public int[] nextIntArray(int n) throws IOException {
            int[] a = new int[n];
            for (int i = 0; i < n; i++)
                a[i] = nextInt();
            return a;
        }

        public int[] nextIntArray1(int n) throws IOException {
            int[] a = new int[n + 1];
            for (int i = 1; i <= n; i++)
                a[i] = nextInt();
            return a;
        }

        public int[] nextIntArraySorted(int n) throws IOException {
            int[] a = nextIntArray(n);
            Random r = new Random();
            for (int i = 0; i < n; i++) {
                int j = i + r.nextInt(n - i);
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
            Arrays.sort(a);
            return a;
        }

        public long[] nextLongArray(int n) throws IOException {
            long[] a = new long[n];
            for (int i = 0; i < n; i++)
                a[i] = nextLong();
            return a;
        }

        public long[] nextLongArray1(int n) throws IOException {
            long[] a = new long[n + 1];
            for (int i = 1; i <= n; i++)
                a[i] = nextLong();
            return a;
        }

        public long[] nextLongArraySorted(int n) throws IOException {
            long[] a = nextLongArray(n);
            Random r = new Random();
            for (int i = 0; i < n; i++) {
                int j = i + r.nextInt(n - i);
                long t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
            Arrays.sort(a);
            return a;
        }
    }

    protected static class Out {
        private PrintWriter writer;
        private static boolean local = System
                .getProperty("ONLINE_JUDGE") == null;

        public Out(PrintWriter writer) {
            this.writer = writer;
        }

        public void print(char c) {
            writer.print(c);
        }

        public void print(int a) {
            writer.print(a);
        }

        public void printb(long a) {
            writer.print(a);
            writer.print(' ');
        }

        public void println(Object a) {
            writer.println(a);
        }

        public void println(Object[] os) {
            for (int i = 0; i < os.length; i++) {
                writer.print(os[i]);
                writer.print(' ');
            }
            writer.println();
        }

        public void println(int[] a) {
            for (int i = 0; i < a.length; i++) {
                writer.print(a[i]);
                writer.print(' ');
            }
            writer.println();
        }

        public void println(long[] a) {
            for (int i = 0; i < a.length; i++) {
                writer.print(a[i]);
                writer.print(' ');
            }
            writer.println();
        }

        public void flush() {
            writer.flush();
        }

        public static void db(Object... objects) {
            if (local)
                System.out.println(Arrays.deepToString(objects));
        }
    }
}


import java.io.*;
import java.math.*;
import java.util.*;

import static java.util.Arrays.fill;
import static java.lang.Math.*;
import static java.util.Arrays.sort;
import static java.util.Collections.sort;

public class B923 {

	public static int mod = 1000000007;
	public static long INF = (1L << 60);
	static FastScanner2 in = new FastScanner2();
	static OutputWriter out = new OutputWriter(System.out);

	public static void main(String[] args)
	{

		int n=in.nextInt();
		int[] v=new int[n];
		for(int i=0;i<n;i++)
		{
			v[i]=in.nextInt();
		}
		int[] t=new int[n];
		for(int i=0;i<n;i++)
		{
			t[i]=in.nextInt();
		}
		PriorityQueue<Long> minheap=new PriorityQueue<Long>();
		long waterlevel=0;
		for(int i=0;i<n;i++)
		{
			minheap.add(v[i]+waterlevel);
			long answer=minheap.size()*t[i];
			waterlevel+=(long)t[i];
			while(!minheap.isEmpty() && minheap.peek()-waterlevel<=0)
			{
				long tt=minheap.poll()-waterlevel;
				answer-=abs(tt);
			}
			out.print(answer+" ");
		}
		out.close();

	}

	public static long pow(long x, long n)
	{
		long res = 1;
		for (long p = x; n > 0; n >>= 1, p = (p * p))
		{
			if ((n & 1) != 0)
			{
				res = (res * p);
			}
		}
		return res;
	}

	public static long pow(long x, long n, long mod)
	{
		long res = 1;
		for (long p = x; n > 0; n >>= 1, p = (p * p) % mod)
		{
			if ((n & 1) != 0)
			{
				res = (res * p % mod);
			}
		}
		return res;
	}

	public static long gcd(long n1, long n2)
	{
		long r;
		while (n2 != 0)
		{
			r = n1 % n2;
			n1 = n2;
			n2 = r;
		}
		return n1;
	}

	public static long lcm(long n1, long n2)
	{
		long answer = (n1 * n2) / (gcd(n1, n2));
		return answer;
	}

	static class FastScanner2
	{
		private byte[] buf = new byte[1024];
		private int curChar;
		private int snumChars;

		public int read()
		{
			if (snumChars == -1)
				throw new InputMismatchException();
			if (curChar >= snumChars)
			{
				curChar = 0;
				try
				{
					snumChars = System.in.read(buf);
				} catch (IOException e)
				{
					throw new InputMismatchException();
				}
				if (snumChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}

		public String nextLine()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			StringBuilder res = new StringBuilder();
			do
			{
				res.appendCodePoint(c);
				c = read();
			}
			while (!isEndOfLine(c));
			return res.toString();
		}

		public String nextString()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			StringBuilder res = new StringBuilder();
			do
			{
				res.appendCodePoint(c);
				c = read();
			}
			while (!isSpaceChar(c));
			return res.toString();
		}

		public long nextLong()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			long res = 0;
			do
			{
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			}
			while (!isSpaceChar(c));
			return res * sgn;
		}

		public int nextInt()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			int res = 0;
			do
			{
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			}
			while (!isSpaceChar(c));
			return res * sgn;
		}

		public int[] nextIntArray(int n)
		{
			int[] arr = new int[n];
			for (int i = 0; i < n; i++)
			{
				arr[i] = nextInt();
			}
			return arr;
		}

		public long[] nextLongArray(int n)
		{
			long[] arr = new long[n];
			for (int i = 0; i < n; i++)
			{
				arr[i] = nextLong();
			}
			return arr;
		}

		private boolean isSpaceChar(int c)
		{
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}

		private boolean isEndOfLine(int c)
		{
			return c == '\n' || c == '\r' || c == -1;
		}
	}

	static class InputReader
	{
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream inputstream)
		{
			reader = new BufferedReader(new InputStreamReader(inputstream));
			tokenizer = null;
		}

		public String nextLine()
		{
			String fullLine = null;
			while (tokenizer == null || !tokenizer.hasMoreTokens())
			{
				try
				{
					fullLine = reader.readLine();
				} catch (IOException e)
				{
					throw new RuntimeException(e);
				}
				return fullLine;
			}
			return fullLine;
		}

		public String next()
		{
			while (tokenizer == null || !tokenizer.hasMoreTokens())
			{
				try
				{
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e)
				{
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public long nextLong()
		{
			return Long.parseLong(next());
		}

		public int[] nextIntArray(int n)
		{
			int a[] = new int[n];
			for (int i = 0; i < n; i++)
			{
				a[i] = nextInt();
			}
			return a;
		}

		public long[] nextLongArray(int n)
		{
			long a[] = new long[n];
			for (int i = 0; i < n; i++)
			{
				a[i] = nextLong();
			}
			return a;
		}

		public int nextInt()
		{
			return Integer.parseInt(next());
		}
	}

	static class OutputWriter
	{
		private final PrintWriter writer;

		public OutputWriter(OutputStream outputStream)
		{
			writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
		}

		public OutputWriter(Writer writer)
		{
			this.writer = new PrintWriter(writer);
		}

		public void print(Object... objects)
		{
			for (int i = 0; i < objects.length; i++)
			{
				if (i != 0)
					writer.print(' ');
				writer.print(objects[i]);
			}
		}

		public void println(Object... objects)
		{
			print(objects);
			writer.println();
		}

		public void close()
		{
			writer.close();
		}

		public void flush()
		{
			writer.flush();
		}
	}
private static boolean oj = System.getProperty("ONLINE_JUDGE") != null;

	private static void debug(Object... o)
	{
		if (!oj)
			System.out.println(Arrays.deepToString(o));
	}
	private static void tr(Object... o)
	{
		if (!oj)
			System.out.println(Arrays.deepToString(o));
	}
}


import java.io.*;
import java.math.*;
import java.util.*;

import static java.util.Arrays.fill;
import static java.lang.Math.*;
import static java.util.Arrays.sort;
import static java.util.Collections.sort;

public class B923 {

	public static int mod = 1000000007;
	public static long INF = (1L << 60);
	static FastScanner2 in = new FastScanner2();
	static OutputWriter out = new OutputWriter(System.out);

	public static void main(String[] args)
	{

		int n=in.nextInt();
		int[] v=new int[n];
		for(int i=0;i<n;i++)
		{
			v[i]=in.nextInt();
		}
		int[] t=new int[n];
		for(int i=0;i<n;i++)
		{
			t[i]=in.nextInt();
		}
		PriorityQueue<Long> minheap=new PriorityQueue<Long>();
		long waterlevel=0;
		for(int i=0;i<n;i++)
		{
			minheap.add((long)v[i]+waterlevel);
			long answer=(long)minheap.size()*(long)t[i];
			waterlevel+=(long)t[i];
			while(!minheap.isEmpty() && minheap.peek()-waterlevel<=0)
			{
				long tt=minheap.poll()-waterlevel;
				answer-=abs(tt);
			}
			out.print(answer+" ");
		}
		out.close();

	}

	public static long pow(long x, long n)
	{
		long res = 1;
		for (long p = x; n > 0; n >>= 1, p = (p * p))
		{
			if ((n & 1) != 0)
			{
				res = (res * p);
			}
		}
		return res;
	}

	public static long pow(long x, long n, long mod)
	{
		long res = 1;
		for (long p = x; n > 0; n >>= 1, p = (p * p) % mod)
		{
			if ((n & 1) != 0)
			{
				res = (res * p % mod);
			}
		}
		return res;
	}

	public static long gcd(long n1, long n2)
	{
		long r;
		while (n2 != 0)
		{
			r = n1 % n2;
			n1 = n2;
			n2 = r;
		}
		return n1;
	}

	public static long lcm(long n1, long n2)
	{
		long answer = (n1 * n2) / (gcd(n1, n2));
		return answer;
	}

	static class FastScanner2
	{
		private byte[] buf = new byte[1024];
		private int curChar;
		private int snumChars;

		public int read()
		{
			if (snumChars == -1)
				throw new InputMismatchException();
			if (curChar >= snumChars)
			{
				curChar = 0;
				try
				{
					snumChars = System.in.read(buf);
				} catch (IOException e)
				{
					throw new InputMismatchException();
				}
				if (snumChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}

		public String nextLine()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			StringBuilder res = new StringBuilder();
			do
			{
				res.appendCodePoint(c);
				c = read();
			}
			while (!isEndOfLine(c));
			return res.toString();
		}

		public String nextString()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			StringBuilder res = new StringBuilder();
			do
			{
				res.appendCodePoint(c);
				c = read();
			}
			while (!isSpaceChar(c));
			return res.toString();
		}

		public long nextLong()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			long res = 0;
			do
			{
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			}
			while (!isSpaceChar(c));
			return res * sgn;
		}

		public int nextInt()
		{
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			int res = 0;
			do
			{
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			}
			while (!isSpaceChar(c));
			return res * sgn;
		}

		public int[] nextIntArray(int n)
		{
			int[] arr = new int[n];
			for (int i = 0; i < n; i++)
			{
				arr[i] = nextInt();
			}
			return arr;
		}

		public long[] nextLongArray(int n)
		{
			long[] arr = new long[n];
			for (int i = 0; i < n; i++)
			{
				arr[i] = nextLong();
			}
			return arr;
		}

		private boolean isSpaceChar(int c)
		{
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}

		private boolean isEndOfLine(int c)
		{
			return c == '\n' || c == '\r' || c == -1;
		}
	}

	static class InputReader
	{
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream inputstream)
		{
			reader = new BufferedReader(new InputStreamReader(inputstream));
			tokenizer = null;
		}

		public String nextLine()
		{
			String fullLine = null;
			while (tokenizer == null || !tokenizer.hasMoreTokens())
			{
				try
				{
					fullLine = reader.readLine();
				} catch (IOException e)
				{
					throw new RuntimeException(e);
				}
				return fullLine;
			}
			return fullLine;
		}

		public String next()
		{
			while (tokenizer == null || !tokenizer.hasMoreTokens())
			{
				try
				{
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e)
				{
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

		public long nextLong()
		{
			return Long.parseLong(next());
		}

		public int[] nextIntArray(int n)
		{
			int a[] = new int[n];
			for (int i = 0; i < n; i++)
			{
				a[i] = nextInt();
			}
			return a;
		}

		public long[] nextLongArray(int n)
		{
			long a[] = new long[n];
			for (int i = 0; i < n; i++)
			{
				a[i] = nextLong();
			}
			return a;
		}

		public int nextInt()
		{
			return Integer.parseInt(next());
		}
	}

	static class OutputWriter
	{
		private final PrintWriter writer;

		public OutputWriter(OutputStream outputStream)
		{
			writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
		}

		public OutputWriter(Writer writer)
		{
			this.writer = new PrintWriter(writer);
		}

		public void print(Object... objects)
		{
			for (int i = 0; i < objects.length; i++)
			{
				if (i != 0)
					writer.print(' ');
				writer.print(objects[i]);
			}
		}

		public void println(Object... objects)
		{
			print(objects);
			writer.println();
		}

		public void close()
		{
			writer.close();
		}

		public void flush()
		{
			writer.flush();
		}
	}
private static boolean oj = System.getProperty("ONLINE_JUDGE") != null;

	private static void debug(Object... o)
	{
		if (!oj)
			System.out.println(Arrays.deepToString(o));
	}
	private static void tr(Object... o)
	{
		if (!oj)
			System.out.println(Arrays.deepToString(o));
	}
}