#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define up upper_bound
#define sz(h) (int)h.size()
#define all(h) h.begin(), h.end()
#define mod 1000000007
#define mod1 998244353
#define MAX 2000010
#define cas(t) cout << "Case #" << t << ": ";
struct hash_pair
{ // use pair as key in unordered_map<pair<int,int>,int,hash_pair>;

    template <class T1, class T2>

    size_t operator()(const pair<T1, T2> &p) const

    {

        auto hash1 = hash<T1>{}(p.first);

        auto hash2 = hash<T2>{}(p.second);

        return hash1 ^ hash2;
    }
};
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
#ifndef ONLINE_JUDGE
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    //freopen("input.txt", "w", stdout);
#endif
    int tt = 1;
    cin >> tt;
    for (int t = 1; t <= tt; t++)
    {
        int a, b;
        cin >> a >> b;
        int u = 0;
        int down = 0;
        int left = 0;
        int right = 0;
        string s;
        cin >> s;
        for (auto i : s)
        {
            if (i == 'U')
                u++;
            if (i == 'D')
                down++;
            if (i == 'L')
                left++;
            if (i == 'R')
                right++;
        }
        int fxl = -down;
        int fxu = u;
        int fyu = right;
        int fyl = -left;
        if (a <= fyu and fyl <= a and b <= fxu and b >= fxl)
            cout << "YES\n";
        else
            cout << "NO\n";
    }
}

### Prompt

Please create a solution in CPP 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
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define up upper_bound
#define sz(h) (int)h.size()
#define all(h) h.begin(), h.end()
#define mod 1000000007
#define mod1 998244353
#define MAX 2000010
#define cas(t) cout << "Case #" << t << ": ";
struct hash_pair
{ // use pair as key in unordered_map<pair<int,int>,int,hash_pair>;

    template <class T1, class T2>

    size_t operator()(const pair<T1, T2> &p) const

    {

        auto hash1 = hash<T1>{}(p.first);

        auto hash2 = hash<T2>{}(p.second);

        return hash1 ^ hash2;
    }
};
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
#ifndef ONLINE_JUDGE
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    //freopen("input.txt", "w", stdout);
#endif
    int tt = 1;
    cin >> tt;
    for (int t = 1; t <= tt; t++)
    {
        int a, b;
        cin >> a >> b;
        int u = 0;
        int down = 0;
        int left = 0;
        int right = 0;
        string s;
        cin >> s;
        for (auto i : s)
        {
            if (i == 'U')
                u++;
            if (i == 'D')
                down++;
            if (i == 'L')
                left++;
            if (i == 'R')
                right++;
        }
        int fxl = -down;
        int fxu = u;
        int fyu = right;
        int fyl = -left;
        if (a <= fyu and fyl <= a and b <= fxu and b >= fxl)
            cout << "YES\n";
        else
            cout << "NO\n";
    }
}

```