#include <sstream>
#include <cmath>
#include <bits/stdc++.h>
#define int long long int
#define vec vector<int>
#define vecv vector<vec>
#define vecs vector<string>

#define pb push_back
#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define fton() for(int i=0;i<n;i++)
#define f(i,a,b) for(int i=a;i<b;i++)
#define fr(i,a,b) for(int i=a;i>=b;i--)

#define endl "\n"
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
#define F first
#define S second
#define maxe(v) *max_element(all(v))
#define mine(v) *min_element(all(v))
#define cout(v) for(auto&it:(v))cout<<it<<" ";cout<<endl;
#define coutF(v) for(auto&it:(v))cout<<it.F<<" ";cout<<endl;
#define coutS(v) for(auto&it:(v))cout<<it.S<<" ";cout<<endl;
#define cin(v) for(auto&it:(v))cin>>it;
#define err1 cout<<"**********"<<endl;
#define M 1000000007
#define PI 3.14159265
using namespace std;

int pow1(int n,int p)
{
    if(p==0) return 1;
    int x=pow1(n, p/2);
    x=(x*x)%M;
    if(p%2==0) return x;
    return (x*n)%M;
}

void solve()
{
    int px,py;
    cin>>px>>py;
    string s;
    int cu=0,cr=0,cl=0,cd=0;
    cin>>s;
    f(i,0,s.size())
    {
        if(s[i]=='R'){cr++;}
        else if(s[i]=='L'){cl++;}
        else if(s[i]=='U'){cu++;}
        else{cd++;}
    }
    if(px<0&&cl<abs(px)){no;return;}
    if(px>0&&cr<abs(px)){no;return;}
    if(py>0&&cu<abs(py)){no;return;}
    if(py<0&&cd<abs(py)){no;return;}
    yes;return;
}

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int t=1;
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

### Prompt

In cpp, your task is to solve the following problem:

You were dreaming that you are traveling to a planet named Planetforces on your personal spaceship. Unfortunately, its piloting system was corrupted and now you need to fix it in order to reach Planetforces.

<image>

Space can be represented as the XY plane. You are starting at point (0, 0), and Planetforces is located in point (p_x, p_y).

The piloting system of your spaceship follows its list of orders which can be represented as a string s. The system reads s from left to right. Suppose you are at point (x, y) and current order is s_i: 

  * if s_i = U, you move to (x, y + 1); 
  * if s_i = D, you move to (x, y - 1); 
  * if s_i = R, you move to (x + 1, y); 
  * if s_i = L, you move to (x - 1, y). 



Since string s could be corrupted, there is a possibility that you won't reach Planetforces in the end. Fortunately, you can delete some orders from s but you can't change their positions.

Can you delete several orders (possibly, zero) from s in such a way, that you'll reach Planetforces after the system processes all orders?

Input

The first line contains a single integer t (1 ≤ t ≤ 1000) — the number of test cases.

Each test case consists of two lines. The first line in each test case contains two integers p_x and p_y (-10^5 ≤ p_x, p_y ≤ 10^5; (p_x, p_y) ≠ (0, 0)) — the coordinates of Planetforces (p_x, p_y).

The second line contains the string s (1 ≤ |s| ≤ 10^5: |s| is the length of string s) — the list of orders.

It is guaranteed that the sum of |s| over all test cases does not exceed 10^5.

Output

For each test case, print "YES" if you can delete several orders (possibly, zero) from s in such a way, that you'll reach Planetforces. Otherwise, print "NO". You can print each letter in any case (upper or lower).

Example

Input


6
10 5
RRRRRRRRRRUUUUU
1 1
UDDDRLLL
-3 -5
LDLDLDDDR
1 2
LLLLUU
3 -2
RDULRLLDR
-1 6
RUDURUUUUR


Output


YES
YES
YES
NO
YES
NO

Note

In the first case, you don't need to modify s, since the given s will bring you to Planetforces.

In the second case, you can delete orders s_2, s_3, s_4, s_6, s_7 and s_8, so s becomes equal to "UR".

In the third test case, you have to delete order s_9, otherwise, you won't finish in the position of Planetforces.

### Response

```cpp
#include <sstream>
#include <cmath>
#include <bits/stdc++.h>
#define int long long int
#define vec vector<int>
#define vecv vector<vec>
#define vecs vector<string>

#define pb push_back
#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define fton() for(int i=0;i<n;i++)
#define f(i,a,b) for(int i=a;i<b;i++)
#define fr(i,a,b) for(int i=a;i>=b;i--)

#define endl "\n"
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
#define F first
#define S second
#define maxe(v) *max_element(all(v))
#define mine(v) *min_element(all(v))
#define cout(v) for(auto&it:(v))cout<<it<<" ";cout<<endl;
#define coutF(v) for(auto&it:(v))cout<<it.F<<" ";cout<<endl;
#define coutS(v) for(auto&it:(v))cout<<it.S<<" ";cout<<endl;
#define cin(v) for(auto&it:(v))cin>>it;
#define err1 cout<<"**********"<<endl;
#define M 1000000007
#define PI 3.14159265
using namespace std;

int pow1(int n,int p)
{
    if(p==0) return 1;
    int x=pow1(n, p/2);
    x=(x*x)%M;
    if(p%2==0) return x;
    return (x*n)%M;
}

void solve()
{
    int px,py;
    cin>>px>>py;
    string s;
    int cu=0,cr=0,cl=0,cd=0;
    cin>>s;
    f(i,0,s.size())
    {
        if(s[i]=='R'){cr++;}
        else if(s[i]=='L'){cl++;}
        else if(s[i]=='U'){cu++;}
        else{cd++;}
    }
    if(px<0&&cl<abs(px)){no;return;}
    if(px>0&&cr<abs(px)){no;return;}
    if(py>0&&cu<abs(py)){no;return;}
    if(py<0&&cd<abs(py)){no;return;}
    yes;return;
}

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int t=1;
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

```