// I love my code ❤️
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vv(x) vector<x>
#define vv1 vector<vector<ll>>
#define rep(i,s,n) for(i=s;i<n;i++)
#define mm(x,y) map<x,y>
#define pp pair<ll,ll>
#define in(x) cin>>x
#define in1(x,y) cin>>x>>y
#define in2(x,y,z) cin>>x>>y>>z
#define in3(x,y,w,z) cin>>x>>y>>w>>z
#define ou(x) cout<<x<<" "
#define ou1(x,y) cout<<x<<" "<<y
#define ou2(x,y,z) cout<<x<<" "<<y<<" "<<z
#define ss set<ll>
#define vv2 vector<pair<ll,ll>>
#define mm1 map<ll,vector<ll>>
#define dw cout<<endl
#define w() int t;cin>>t;while(t--)
#define it(x,m) for(auto x:m)
#define pb(v,x) v.push_back(x)
ll n,m,i=0,j=0,x,y,t,w,p,q,l,r,count1=0,count2=0,k=0,first=0,second=0,last,sum=1e9;
const ll mod=1000003,num=0;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    w(){
        mm(char,ll) m;
        cin>>x>>y;
        string str;cin>>str;
        for(auto &x:str)m[x]++;
        if(x==0 && y==0){
            cout<<"YES"<<endl;
        }
        else if(x==0){
            if(y<0){
                if(m['D']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
            else if(y>0){
                if(m['U']>=y){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
        }
        else if(y==0){
            if (x < 0)
            {
                if (m['L'] >= abs(x))
                {
                    cout << "YES" << endl;
                }
                else
                    cout << "NO" << endl;
            }
            else if (x > 0)
            {
                if (m['R'] >= x)
                {
                    cout << "YES" << endl;
                }
                else
                    cout << "NO" << endl;
            }
        }
        else{
            if(x<0 && y<0){
                if(m['L']>=abs(x) && m['D']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
            else if(x>0 && y<0){
                if(m['R']>=abs(x) && m['D']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else {
                    cout<<"NO"<<endl;
                }
            }
            else if(x<0 && y>0){
                if(m['L']>=abs(x) && m['U']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
            else if(x>0 && y>0){
                if(m['R']>=abs(x) && m['U']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
        }
    }
    return 0;
}
### Prompt

Generate a cpp solution to 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
// I love my code ❤️
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vv(x) vector<x>
#define vv1 vector<vector<ll>>
#define rep(i,s,n) for(i=s;i<n;i++)
#define mm(x,y) map<x,y>
#define pp pair<ll,ll>
#define in(x) cin>>x
#define in1(x,y) cin>>x>>y
#define in2(x,y,z) cin>>x>>y>>z
#define in3(x,y,w,z) cin>>x>>y>>w>>z
#define ou(x) cout<<x<<" "
#define ou1(x,y) cout<<x<<" "<<y
#define ou2(x,y,z) cout<<x<<" "<<y<<" "<<z
#define ss set<ll>
#define vv2 vector<pair<ll,ll>>
#define mm1 map<ll,vector<ll>>
#define dw cout<<endl
#define w() int t;cin>>t;while(t--)
#define it(x,m) for(auto x:m)
#define pb(v,x) v.push_back(x)
ll n,m,i=0,j=0,x,y,t,w,p,q,l,r,count1=0,count2=0,k=0,first=0,second=0,last,sum=1e9;
const ll mod=1000003,num=0;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    w(){
        mm(char,ll) m;
        cin>>x>>y;
        string str;cin>>str;
        for(auto &x:str)m[x]++;
        if(x==0 && y==0){
            cout<<"YES"<<endl;
        }
        else if(x==0){
            if(y<0){
                if(m['D']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
            else if(y>0){
                if(m['U']>=y){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
        }
        else if(y==0){
            if (x < 0)
            {
                if (m['L'] >= abs(x))
                {
                    cout << "YES" << endl;
                }
                else
                    cout << "NO" << endl;
            }
            else if (x > 0)
            {
                if (m['R'] >= x)
                {
                    cout << "YES" << endl;
                }
                else
                    cout << "NO" << endl;
            }
        }
        else{
            if(x<0 && y<0){
                if(m['L']>=abs(x) && m['D']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
            else if(x>0 && y<0){
                if(m['R']>=abs(x) && m['D']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else {
                    cout<<"NO"<<endl;
                }
            }
            else if(x<0 && y>0){
                if(m['L']>=abs(x) && m['U']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
            else if(x>0 && y>0){
                if(m['R']>=abs(x) && m['U']>=abs(y)){
                    cout<<"YES"<<endl;
                }
                else cout<<"NO"<<endl;
            }
        }
    }
    return 0;
}
```