#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        ll cnt = 0;
        ll dis = 0;
        ll x = 0, y = 0;
        while (dis < d * d)
        {
            if (cnt % 2 == 0)
            {
                x += k;
            }
            else
            {
                y += k;
            }
            dis = x * x + y * y;
            if (dis > d * d)
                break;

            cnt++;
        }
        if (cnt % 2 == 0)
        {
            cout << "Utkarsh" << endl;
        }
        else
        {
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        ll maximum = 0;
        P p;
        for (int x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            if (x % k != 0)
                continue;
            if (maximum < x / k + y / k)
            {
                maximum = x / k + y / k;
                p = mp(x / k, y / k);
            }
        }

        ll tmp = min(p.first, p.second);
        if ((p.first - tmp + p.second - tmp) % 2 == 0)
        {
            cout << "Utkarsh" << endl;
        }
        else
        {
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        map<ll, ll> limit;
        for (int x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            limit[x / k] = max(limit[x / k], y / k);
        }
        ll maximum = 0;
        for (auto &&i : limit)
        {
            maximum = max(maximum, i.first + i.second);
        }
        if (maximum % 2 == 0)
        {
            cout << "Utkarsh" << endl;
        }
        else
        {
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        map<ll, ll> limit;
        for (int x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            limit[x] = max(limit[x], y / k);
        }
        ll maximum = 0;
        for (auto &&i : limit)
        {
            maximum = max(maximum, i.first/k + i.second);
        }
        if (maximum % 2 == 0)
        {
            cout << "Utkarsh" << endl;
        }
        else
        {
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        ll maximum = -1;
        for (int x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            maximum = max(maximum,x/k+y/k);
        }
        if(maximum % 2 == 0){
            cout << "Utkarsh" << endl;
        }else{
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        ll maximum = -1;
        for (ll x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            maximum = max(maximum,x/k+y/k);
        }
        if(maximum % 2 == 0){
            cout << "Utkarsh" << endl;
        }else{
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        ll maximum = 0;
        for (int x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            maximum = max(x/k + y/k,maximum);
        }

        if (maximum % 2 == 0)
        {
            cout << "Utkarsh" << endl;
        }
        else
        {
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
struct Edge
{
    ll to;
    ll cost;
};
using Graph = vector<vector<Edge>>;
using P = pair<ll, ll>;
#define mp make_pair
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define SORT(v) sort((v).begin(), (v).end())
#define RSORT(v) sort((v).rbegin(), (v).rend())
#define ALL(v) (v).begin(), v.end()
const ll MOD = 1000000007;
const ll nmax = 8;
const ll INF = LLONG_MAX;
const int MAX = 510000;
bool graph[nmax][nmax];
long long fac[MAX], finv[MAX], inv[MAX];

void COMinit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

ll COM(int n, int k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;

    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

vector<vector<ll>> dist = vector<vector<ll>>(nmax, vector<ll>(nmax, INF));
void warshall_floyd(ll n)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < n; j++)
        {
            for (size_t k = 0; k < n; k++)
            {
                dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]);
            }
        }
    }
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
    ll g = gcd(a, b);
    return a / g * b;
}

ll mulMod(ll a, ll b)
{
    return (((a % MOD) * (b % MOD)) % MOD);
}

ll powMod(ll a, ll p)
{
    if (p == 0)
    {
        return 1;
    }
    else if (p % 2 == 0)
    {
        ll half = powMod(a, p / 2);
        return mulMod(half, half);
    }
    else
    {
        return mulMod(powMod(a, p - 1), a);
    }
}

ll ceil(ll a, ll b)
{
    return (a + b - 1) / b;
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        ll d, k;
        cin >> d >> k;
        ll maximum = 0;
        P p;
        for (ll x = 0; x <= d; x++)
        {
            ll y = sqrt(d * d - x * x);
            if (x % k != 0)
                continue;
            if (maximum < x / k + y / k)
            {
                maximum = x / k + y / k;
                p = mp(x / k, y / k);
            }
        }

        ll tmp = min(p.first, p.second);
        if ((p.first - tmp + p.second - tmp) % 2 == 0)
        {
            cout << "Utkarsh" << endl;
        }
        else
        {
            cout << "Ashish" << endl;
        }
    }

    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
#define mod 1000000007
#define point complex<long double>
#define pi acos(-1)
#define pb push_back

typedef long long ll;
typedef long double ld;

using namespace std;

void Fastio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int main()
{
    Fastio();
    int ttt=1; cin>>ttt;
    while(ttt--){
        ll d, k; cin>>d>>k;
        ll x=d/k, mx=x, c=0;
        for(ll i=x; i>=0; i--){
            while(i*i*k*k + (c+1)*(c+1)*k*k <= d*d)
                c++;
            mx=max(mx, c+i);
        }
        if(mx%2==0)cout<<"Utkarsh\n";
        else cout<<"Ashish\n";
    }

    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
#define mod 1000000007
#define point complex<long double>
#define pi acos(-1)
#define pb push_back

typedef long long ll;
typedef long double ld;

using namespace std;

void Fastio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}
ll d, k;
bool dp[10005][10005][2], vis[1005][1005][2];
bool solve(ll x, ll y, bool t){
    if(x*x*k*k + y*y*k*k > d*d)
        return t;
    //v.pb({dis, {x, y}});
    if(vis[x][y][t])
        return dp[x][y][t];
    vis[x][y][t]=1;
    if(t){
        return dp[x][y][t]=max(solve(x+1, y, !t), solve(x, y+1, !t));
    }
    return dp[x][y][t]=min(solve(x+1, y, !t), solve(x, y+1, !t));
}
int main()
{
    Fastio();
    int ttt=1; cin>>ttt;
    while(ttt--){
        cin>>d>>k;
        int res=solve(0, 0, 0);
        memset(dp, 0, sizeof dp);
        memset(vis, 0, sizeof vis);
        /*sort(v.begin(), v.end());
        for(auto i: v){
            cout<<i.first<<" "<<i.second.first<<" "<<i.second.second<<'\n';
        }*/
        if(res)cout<<"Utkarsh\n";
        else cout<<"Ashish\n";
    }

    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
#define mod 1000000007
#define point complex<long double>
#define pi acos(-1)
#define pb push_back

typedef long long ll;
typedef long double ld;

using namespace std;

void Fastio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}
ll d, k;
map<pair<int, pair<int, bool> >, bool> dp, vis;
bool solve(ll x, ll y, bool t){
    if(x*x*k*k + y*y*k*k > d*d)
        return t;
    //v.pb({dis, {x, y}});
    if(vis[{x, {y, t}}])
        return dp[{x, {y, t}}];
    vis[{x, {y, t}}]=1;
    if(t){
        return dp[{x, {y, t}}]=max(solve(x+1, y, !t), solve(x, y+1, !t));
    }
    return dp[{x, {y, t}}]=min(solve(x+1, y, !t), solve(x, y+1, !t));
}
int main()
{
    Fastio();
    int ttt=1; cin>>ttt;
    while(ttt--){
        cin>>d>>k;
        int res=solve(0, 0, 0);
        dp.clear();
        vis.clear();
        /*sort(v.begin(), v.end());
        for(auto i: v){
            cout<<i.first<<" "<<i.second.first<<" "<<i.second.second<<'\n';
        }*/
        if(res)cout<<"Utkarsh\n";
        else cout<<"Ashish\n";
    }

    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
#define mod 1000000007
#define point complex<long double>
#define pi acos(-1)
#define pb push_back

typedef long long ll;
typedef long double ld;

using namespace std;

void Fastio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}
ll d, k;
map<pair<ll, pair<ll, ll> >, bool> dp, vis;
ll solve(ll x, ll y, int t){
    if(x*x*k*k + y*y*k*k > d*d)
        return t;
    //v.pb({dis, {x, y}});
    if(vis[{x, {y, t}}])
        return dp[{x, {y, t}}];
    vis[{x, {y, t}}]=1;
    if(t){
        return dp[{x, {y, t}}]=max(solve(x+1, y, !t), solve(x, y+1, !t));
    }
    return dp[{x, {y, t}}]=min(solve(x+1, y, !t), solve(x, y+1, !t));
}
int main()
{
    Fastio();
    int ttt=1; cin>>ttt;
    while(ttt--){
        cin>>d>>k;
        int res=solve(0, 0, 0);
        dp.clear();
        vis.clear();
        /*sort(v.begin(), v.end());
        for(auto i: v){
            cout<<i.first<<" "<<i.second.first<<" "<<i.second.second<<'\n';
        }*/
        if(res)cout<<"Utkarsh\n";
        else cout<<"Ashish\n";
    }

    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
#define mod 1000000007
#define point complex<long double>
#define pi acos(-1)
#define pb push_back

typedef long long ll;
typedef long double ld;

using namespace std;

void Fastio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}
ll d, k;
bool dp[1005][1005][2], vis[1005][1005][2];
bool solve(ll x, ll y, bool t){
    if(x*x*k*k + y*y*k*k > d*d)
        return t;
    //v.pb({dis, {x, y}});
    if(vis[x][y][t])
        return dp[x][y][t];
    vis[x][y][t]=1;
    if(t){
        return dp[x][y][t]=max(solve(x+1, y, !t), solve(x, y+1, !t));
    }
    return dp[x][y][t]=min(solve(x+1, y, !t), solve(x, y+1, !t));
}
int main()
{
    Fastio();
    int ttt=1; cin>>ttt;
    while(ttt--){
        cin>>d>>k;
        int res=solve(0, 0, 0);
        memset(dp, 0, sizeof dp);
        memset(vis, 0, sizeof vis);
        /*sort(v.begin(), v.end());
        for(auto i: v){
            cout<<i.first<<" "<<i.second.first<<" "<<i.second.second<<'\n';
        }*/
        if(res)cout<<"Utkarsh\n";
        else cout<<"Ashish\n";
    }

    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
#define mod 1000000007
#define point complex<long double>
#define pi acos(-1)
#define pb push_back

typedef long long ll;
typedef long double ld;

using namespace std;

void Fastio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int main()
{
    Fastio();
    int ttt=1; cin>>ttt;
    while(ttt--){
        ll d, k; cin>>d>>k;
        ll x=d/k, mx=x;
        for(ll i=x; i>=0; i--){
            int c=0;
            while(i*i*k*k + c*c*k*k <= d*d)
                c++;
            mx=max(mx, c+i);
        }
        if(mx%2)cout<<"Utkarsh\n";
        else cout<<"Ashish\n";
    }

    return 0;
}


#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define Toggle(n,i) (n^((ll)1<<i))
#define Check(n,i) (n&((ll)1<<i))
#define Set(n,i) (n|((ll)1<<i))
#define Reset(n,i) (n&(~((ll)1<<i)))
#define fo(a,x,y) for(int i=(x);i<=(y);++i){cout<<a[i]<<" ";}cout<<endl;
#define me(arr,val) memset(arr,val,sizeof arr)
#define inf INT_MAX
#define infd DBL_MAX
#define infl LLONG_MAX
#define mod 1000000007ll
#define f first
#define s second
#define pra(a) for(auto i:a){cout<<i<<endl;}
#define all2(a,start,n) a.begin()+start,a.begin()+start+n
#define all(a) a.begin(),a.end()
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//int dx[]={+1,-1,0,0};//vertical horizontal
//int dy[]={0,0,+1,-1};//vertical horizontal
//int dx[]={+1,+1,-1,-1,+2,-2,+2,-2};//knights move
//int dy[]={+2,-2,+2,-2,+1,+1,-1,-1};//knights move
//int dx[]={+1,-1,0,0,+1,+1,-1,-1};//vertical horizontal diagonal
//int dy[]={0,0,+1,-1,-1,+1,+1,-1};//vertical horizontal diagonal
using namespace std;
using namespace __gnu_pbds;
/*typedef tree<int, null_type,less<int>, rb_tree_tag,
             tree_order_statistics_node_update>indexed_set;
for set use above*/
typedef tree<pair<int,int>, null_type,less<pair<int, int>>, rb_tree_tag,
tree_order_statistics_node_update> indexed_multiset;
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
    return os << "(" << p.first << ", " << p.second << ")";
}
template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
    os << "{";
    typename vector< T > :: const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "}";
}
template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
    os << "[";
    typename set< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
    os << "[";
    typename multiset< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
    os << "[";
    typename map< F , S >::const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << it -> first << " = " << it -> second ;
    }
    return os << "]";
}
#define pr(x) cerr << #x << " = " << x << endl;

ll d,k;
map<pair<ll,ll>,ll>mp;
ll dp(ll x,ll y)
{
    //pr(x);
    //pr(y);
    if((x+k)*(x+k)+y*y>d*d&&x*x+(y+k)*(y+k)>d*d)
    {
        return 1;
    }
    if(mp.find({x,y})!=mp.end())
    {
        //pr(x);
        //pr(y);
        return mp[{x,y}];
    }
    ll ret1=2,ret2=2;
    if((x+k)*(x+k)+y*y<=d*d)
    {
        ret1=dp(x+k,y);
    }
    if(x*x+(y+k)*(y+k)<=d*d)
    {
        ret2=dp(x,y+k);
    }
    //pr("Here");
    //pr(x);
    //pr(y);
    //pr(ret1);
    //pr(ret2);
    if(ret1==1||ret2==1)
        return mp[{x,y}]=2;
    return mp[{x,y}]=1;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tt;
    cin>>tt;
    for(int cc=1;cc<=tt;++cc)
    {
        mp.clear();
        cin>>d>>k;
        ll res=dp(0,0);
        if(res==2)
        {
            cout<<"Ashish"<<endl;
        }
        else
        {
            cout<<"Utkarsh"<<endl;
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define Toggle(n,i) (n^((ll)1<<i))
#define Check(n,i) (n&((ll)1<<i))
#define Set(n,i) (n|((ll)1<<i))
#define Reset(n,i) (n&(~((ll)1<<i)))
#define fo(a,x,y) for(int i=(x);i<=(y);++i){cout<<a[i]<<" ";}cout<<endl;
#define me(arr,val) memset(arr,val,sizeof arr)
#define inf INT_MAX
#define infd DBL_MAX
#define infl LLONG_MAX
#define mod 1000000007ll
#define f first
#define s second
#define pra(a) for(auto i:a){cout<<i<<endl;}
#define all2(a,start,n) a.begin()+start,a.begin()+start+n
#define all(a) a.begin(),a.end()
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//int dx[]={+1,-1,0,0};//vertical horizontal
//int dy[]={0,0,+1,-1};//vertical horizontal
//int dx[]={+1,+1,-1,-1,+2,-2,+2,-2};//knights move
//int dy[]={+2,-2,+2,-2,+1,+1,-1,-1};//knights move
//int dx[]={+1,-1,0,0,+1,+1,-1,-1};//vertical horizontal diagonal
//int dy[]={0,0,+1,-1,-1,+1,+1,-1};//vertical horizontal diagonal
using namespace std;
using namespace __gnu_pbds;
/*typedef tree<int, null_type,less<int>, rb_tree_tag,
             tree_order_statistics_node_update>indexed_set;
for set use above*/
typedef tree<pair<int,int>, null_type,less<pair<int, int>>, rb_tree_tag,
tree_order_statistics_node_update> indexed_multiset;
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
    return os << "(" << p.first << ", " << p.second << ")";
}
template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
    os << "{";
    typename vector< T > :: const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "}";
}
template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
    os << "[";
    typename set< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
    os << "[";
    typename multiset< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
    os << "[";
    typename map< F , S >::const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << it -> first << " = " << it -> second ;
    }
    return os << "]";
}
#define pr(x) cerr << #x << " = " << x << endl;
ll d,k;

ll binSearch()
{
    ll l=0,r=(ll)sqrt((d*d+(2*k*k)-1)/(2*k*k))+1;
    while(l<r)
    {
        ll m=l+(r-l+1)/2;
        if((m*k)*(m*k)*2<=d*d)
        {
            l=m;
        }
        else
        {
            r=m-1;
        }
    }
    //pr(l);
    return l;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tt;
    cin>>tt;
    for(int cc=1;cc<=tt;++cc)
    {
        cin>>d>>k;
        ll res=binSearch();
        //pr((res*k)*(res*k)+(k*(res+1))*(k*(res+1)));
        //pr(d*d);
        if((res*k)*(res*k)+(k*(res+1))*(k*(res+1))<=d*d)
        {
            cout<<"Ashish"<<endl;
        }
        else
        {
            cout<<"Utkarsh"<<endl;
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define Toggle(n,i) (n^((ll)1<<i))
#define Check(n,i) (n&((ll)1<<i))
#define Set(n,i) (n|((ll)1<<i))
#define Reset(n,i) (n&(~((ll)1<<i)))
#define fo(a,x,y) for(int i=(x);i<=(y);++i){cout<<a[i]<<" ";}cout<<endl;
#define me(arr,val) memset(arr,val,sizeof arr)
#define inf INT_MAX
#define infd DBL_MAX
#define infl LLONG_MAX
#define mod 1000000007ll
#define f first
#define s second
#define pra(a) for(auto i:a){cout<<i<<endl;}
#define all2(a,start,n) a.begin()+start,a.begin()+start+n
#define all(a) a.begin(),a.end()
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//int dx[]={+1,-1,0,0};//vertical horizontal
//int dy[]={0,0,+1,-1};//vertical horizontal
//int dx[]={+1,+1,-1,-1,+2,-2,+2,-2};//knights move
//int dy[]={+2,-2,+2,-2,+1,+1,-1,-1};//knights move
//int dx[]={+1,-1,0,0,+1,+1,-1,-1};//vertical horizontal diagonal
//int dy[]={0,0,+1,-1,-1,+1,+1,-1};//vertical horizontal diagonal
using namespace std;
using namespace __gnu_pbds;
/*typedef tree<int, null_type,less<int>, rb_tree_tag,
             tree_order_statistics_node_update>indexed_set;
for set use above*/
typedef tree<pair<int,int>, null_type,less<pair<int, int>>, rb_tree_tag,
tree_order_statistics_node_update> indexed_multiset;
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
    return os << "(" << p.first << ", " << p.second << ")";
}
template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
    os << "{";
    typename vector< T > :: const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "}";
}
template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
    os << "[";
    typename set< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
    os << "[";
    typename multiset< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
    os << "[";
    typename map< F , S >::const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << it -> first << " = " << it -> second ;
    }
    return os << "]";
}
#define pr(x) cerr << #x << " = " << x << endl;
ll d,k;

ll binSearch()
{
    ll l=0,r=1e5;
    while(l<r)
    {
        ll m=l+(r-l+1)/2;
        if((m*k)*(m*k)*2<=d*d)
        {
            l=m;
        }
        else
        {
            r=m-1;
        }
    }
    //pr(l);
    return l;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tt;
    cin>>tt;
    for(int cc=1;cc<=tt;++cc)
    {
        cin>>d>>k;
        ll res=binSearch();
        if((res*k)*(res*k)+(k*(res+1))*(k*(res+1))<=d*d)
        {
            cout<<"Ashish"<<endl;
        }
        else
        {
            cout<<"Utkarsh"<<endl;
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define Toggle(n,i) (n^((ll)1<<i))
#define Check(n,i) (n&((ll)1<<i))
#define Set(n,i) (n|((ll)1<<i))
#define Reset(n,i) (n&(~((ll)1<<i)))
#define fo(a,x,y) for(int i=(x);i<=(y);++i){cout<<a[i]<<" ";}cout<<endl;
#define me(arr,val) memset(arr,val,sizeof arr)
#define inf INT_MAX
#define infd DBL_MAX
#define infl LLONG_MAX
#define mod 1000000007ll
#define f first
#define s second
#define pra(a) for(auto i:a){cout<<i<<endl;}
#define all2(a,start,n) a.begin()+start,a.begin()+start+n
#define all(a) a.begin(),a.end()
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//int dx[]={+1,-1,0,0};//vertical horizontal
//int dy[]={0,0,+1,-1};//vertical horizontal
//int dx[]={+1,+1,-1,-1,+2,-2,+2,-2};//knights move
//int dy[]={+2,-2,+2,-2,+1,+1,-1,-1};//knights move
//int dx[]={+1,-1,0,0,+1,+1,-1,-1};//vertical horizontal diagonal
//int dy[]={0,0,+1,-1,-1,+1,+1,-1};//vertical horizontal diagonal
using namespace std;
using namespace __gnu_pbds;
/*typedef tree<int, null_type,less<int>, rb_tree_tag,
             tree_order_statistics_node_update>indexed_set;
for set use above*/
typedef tree<pair<int,int>, null_type,less<pair<int, int>>, rb_tree_tag,
tree_order_statistics_node_update> indexed_multiset;
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
    return os << "(" << p.first << ", " << p.second << ")";
}
template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
    os << "{";
    typename vector< T > :: const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "}";
}
template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
    os << "[";
    typename set< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
    os << "[";
    typename multiset< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
    os << "[";
    typename map< F , S >::const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << it -> first << " = " << it -> second ;
    }
    return os << "]";
}
#define pr(x) cerr << #x << " = " << x << endl;
ll d,k;

ll binSearch()
{
    ll l=0,r=(d*d+(2*k*k)-1)/(2*k*k);
    while(l<r)
    {
        ll m=l+(r-l+1)/2;
        if((m*k)*(m*k)*2<=d*d)
        {
            l=m;
        }
        else
        {
            r=m-1;
        }
    }
    //pr(l);
    return l;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tt;
    cin>>tt;
    for(int cc=1;cc<=tt;++cc)
    {
        cin>>d>>k;
        ll res=binSearch();
        //pr((res*k)*(res*k)+(k*(res+1))*(k*(res+1)));
        //pr(d*d);
        if((res*k)*(res*k)+(k*(res+1))*(k*(res+1))<=d*d)
        {
            cout<<"Ashish"<<endl;
        }
        else
        {
            cout<<"Utkarsh"<<endl;
        }
    }
    return 0;
}


#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define Toggle(n,i) (n^((ll)1<<i))
#define Check(n,i) (n&((ll)1<<i))
#define Set(n,i) (n|((ll)1<<i))
#define Reset(n,i) (n&(~((ll)1<<i)))
#define fo(a,x,y) for(int i=(x);i<=(y);++i){cout<<a[i]<<" ";}cout<<endl;
#define me(arr,val) memset(arr,val,sizeof arr)
#define inf INT_MAX
#define infd DBL_MAX
#define infl LLONG_MAX
#define mod 1000000007ll
#define f first
#define s second
#define pra(a) for(auto i:a){cout<<i<<endl;}
#define all2(a,start,n) a.begin()+start,a.begin()+start+n
#define all(a) a.begin(),a.end()
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
//int dx[]={+1,-1,0,0};//vertical horizontal
//int dy[]={0,0,+1,-1};//vertical horizontal
//int dx[]={+1,+1,-1,-1,+2,-2,+2,-2};//knights move
//int dy[]={+2,-2,+2,-2,+1,+1,-1,-1};//knights move
//int dx[]={+1,-1,0,0,+1,+1,-1,-1};//vertical horizontal diagonal
//int dy[]={0,0,+1,-1,-1,+1,+1,-1};//vertical horizontal diagonal
using namespace std;
using namespace __gnu_pbds;
/*typedef tree<int, null_type,less<int>, rb_tree_tag,
             tree_order_statistics_node_update>indexed_set;
for set use above*/
typedef tree<pair<int,int>, null_type,less<pair<int, int>>, rb_tree_tag,
tree_order_statistics_node_update> indexed_multiset;
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
    return os << "(" << p.first << ", " << p.second << ")";
}
template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
    os << "{";
    typename vector< T > :: const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "}";
}
template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
    os << "[";
    typename set< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
    os << "[";
    typename multiset< T > :: const_iterator it;
    for ( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << *it;
    }
    return os << "]";
}
template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
    os << "[";
    typename map< F , S >::const_iterator it;
    for( it = v.begin(); it != v.end(); it++ ) {
        if( it != v.begin() ) os << ", ";
        os << it -> first << " = " << it -> second ;
    }
    return os << "]";
}
#define pr(x) cerr << #x << " = " << x << endl;

ll d,k;
map<pair<ll,ll>,ll>mp;
ll dp(ll x,ll y)
{
    //pr(x);
    //pr(y);
    if((x+k)*(x+k)+y*y>d*d&&x*x+(y+k)*(y+k)>d*d)
    {
        return 1;
    }
    if(mp.find({x,y})!=mp.end())
    {
        //pr(x);
        //pr(y);
        return mp[{x,y}];
    }
    ll ret1=2,ret2=2;
    if((x+k)*(x+k)+y*y<=d*d)
    {
        ret1=dp(x+k,y);
    }
    if(x*x+(y+k)*(y+k)<=d*d)
    {
        ret2=dp(x,y+k);
    }
    //pr("Here");
    //pr(x);
    //pr(y);
    //pr(ret1);
    //pr(ret2);
    if(ret1==1||ret2==1)
        return mp[{x,y}]=2;
    return mp[{x,y}]=1;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tt;
    cin>>tt;
    for(int cc=1;cc<=tt;++cc)
    {
        cin>>d>>k;
        ll res=dp(0,0);
        if(res==2)
        {
            cout<<"Ashish"<<endl;
        }
        else
        {
            cout<<"Utkarsh"<<endl;
        }
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int t;
   cin>>t;
   while(t--)
   {
     long int d,k,p=0,c=0,a=0;
      cin>>d>>k;
      d=d*d;
while(1)
{
    if(a%2==0)
    p=p+k;
    else
    c=c+k;
    a++;
    if(p*p+c*c>d)
    break;
}
      if(a%2==0)
      cout<<"Ashish\n";
      else
      cout<<"Utkarsh\n";
   }
   return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int t;
   cin>>t;
   while(t--)
   {
     long int d,k,p=0,c=0,a=0;
      cin>>d>>k;
      d=d*d;
while(p*p+c*c<d)
{
    if(a%2==0)
    p=p+k;
    else
    c=c+k;
    a++;
}
      if(a%2==0)
      cout<<"Ashish\n";
      else
      cout<<"Utkarsh\n";
   }
   return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int t;
   cin>>t;
   while(t--)
   {
     long int d,k,p=0,c=0,a=0;
      cin>>d>>k;
      d=d*d;
while(p*p+c*c<d)
{
    if(a%2==0)
    p=p+k;
    else
    c=c+k;
}
      if(p%2==0)
      cout<<"Ashish\n";
      else
      cout<<"Utkarsh\n";
   }
   return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int t;
   cin>>t;
   while(t--)
   {
     long long int d,k,p=0,c=0,a=0;
      cin>>d>>k;
      d=d*d;
while(1)
{
    if(a%2==0)
    p=p+k;
    else
    c=c+k;
    a++;
    if(p*p+c*c>d)
    break;
}
      if(a%2==0)
      cout<<"Ashish\n";
      else
      cout<<"Utkarsh\n";
   }
   return 0;
}


#include<bits/stdc++.h>
#include <complex>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace  std;

#define ll long long

map<pair<int,int>,int> dp;
ll d,k;
int calc(ll x,ll y){
    if(x*x + y*y > d*d) return 1;
    if(dp.find({x,y}) != dp.end()) return dp[{x,y}];
    int s1 = calc(x+k,y);
    int s2 = calc(x,y+k);
    if( s1 == 0 || s2 == 0) return dp[{x,y}]=1;
    else return dp[{x,y}]=0;
}
void solve(){
    string uu = "Utkarsh";
    string aa = "Ashish";
    dp.clear();
    cin >> d >> k;
    int w=calc(0,0);
    if(w) cout << aa << endl;
    else cout << uu << endl;

}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    //freopen("input.txt", "r", stdin);
    //freopen ("output.txt","w",stdout);

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

    return 0;
}


#include<bits/stdc++.h>
#include <complex>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace  std;

#define ll long long

map<pair<int,int>,int> dp;
ll d,k;
int calc(ll x,ll y){
    if(x*x + y*y > d) return 1;
    if(dp.find({x,y}) != dp.end()) return dp[{x,y}];
    int s1 = calc(x+k,y);
    int s2 = calc(x,y+k);
    if( s1 == 0 || s2 == 0) return dp[{x,y}]=1;
    else return dp[{x,y}]=0;
}
void solve(){
    string uu = "Utkarsh";
    string aa = "Ashish";
    dp.clear();
    cin >> d >> k;
    d = (d*d) / (k*k);
    //cout << d << endl;
    ll dd = sqrtl(d);
    k=1;
    ll x =0;
    for( ; x<=d; x++){
        if(2*x*x > d){
            break;
        }
    }
    --x;
    int w = calc(x,x);
    if(w) cout << aa << endl;
    else cout << uu << endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    //freopen("input.txt", "r", stdin);
    //freopen ("output.txt","w",stdout);

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

    return 0;
}


#include<bits/stdc++.h>
#include <complex>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace  std;

#define ll long long

map<pair<int,int>,int> dp;
ll d,k;
int calc(ll x,ll y){
    if(x*x + y*y > d) return 1;
    if(dp.find({x,y}) != dp.end()) return dp[{x,y}];
    int s1 = calc(x+k,y);
    int s2 = calc(x,y+k);
    if( s1 == 0 || s2 == 0) return dp[{x,y}]=1;
    else return dp[{x,y}]=0;
}
void solve(){
    string uu = "Utkarsh";
    string aa = "Ashish";
    dp.clear();
    cin >> d >> k;
    d = (d*d) / (k*k);
    //cout << d << endl;
    ll dd = sqrtl(d);
    k=1;
    int w;
    if(dd > 1000){
        int c = dd-1000;
        w = calc(d-1000,0);
        if( c % 2 == 1){
            w ^= 1;
        }
    }
    else{
        w = calc(0,0);
    }
    if(w) cout << aa << endl;
    else cout << uu << endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    //freopen("input.txt", "r", stdin);
    //freopen ("output.txt","w",stdout);

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

    return 0;
}


#include<bits/stdc++.h>
#include <complex>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace  std;

#define ll long long

map<pair<int,int>,int> dp;
ll d,k;
int calc(ll x,ll y){
    if(x*x + y*y > d) return 1;
    if(dp.find({x,y}) != dp.end()) return dp[{x,y}];
    int s1 = calc(x+k,y);
    int s2 = calc(x,y+k);
    if( s1 == 0 || s2 == 0) return dp[{x,y}]=1;
    else return dp[{x,y}]=0;
}
void solve(){
    string uu = "Utkarsh";
    string aa = "Ashish";
    dp.clear();
    cin >> d >> k;
    d = (d*d) / (k*k);
    //cout << d << endl;
    ll dd = sqrtl(d);
    k=1;
    ll x =0;
    for( ; x<=d; x++){
        if(2*x*x > d){
            break;
        }
    }
    --x;
    int w = calc(x,x);
    if(w) cout << aa << endl;
    else cout << uu << endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    /freopen("input.txt", "r", stdin);
    //freopen ("output.txt","w",stdout);

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

    return 0;
}


#include<bits/stdc++.h>
#include <complex>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace  std;

#define ll long long

map<pair<int,int>,int> dp;
ll d,k;
int calc(ll x,ll y){
    if(x*x + y*y > d) return 1;
    if(dp.find({x,y}) != dp.end()) return dp[{x,y}];
    int s1 = calc(x+k,y);
    int s2 = calc(x,y+k);
    if( s1 == 0 || s2 == 0) return dp[{x,y}]=1;
    else return dp[{x,y}]=0;
}
void solve(){
    string uu = "Utkarsh";
    string aa = "Ashish";
    dp.clear();
    cin >> d >> k;
    d = (d*d) / (k*k);
    //cout << d << endl;
    ll dd = sqrtl(d);
    k=1;
    int w;
    if(dd > 1000){
        int c = dd-1000;
        w = calc(dd-1000,0);
        if( c % 2 == 1){
            w ^= 1;
        }
    }
    else{
        w = calc(0,0);
    }
    if(w) cout << aa << endl;
    else cout << uu << endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
   // freopen("input.txt", "r", stdin);
    //freopen ("output.txt","w",stdout);

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

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int x,y,d,k;
        cin>>d>>k;
        int flg=0;
        int cnt=0;
        x=0,y=0;
        while(1)
        {
            if(cnt%2==0)
                x=x+k;
            else
            y=y+k;
            cnt++;
            if(x*x+y*y>d*d)
            break;
        }
        if(cnt%2)
        cout<<"Ashish"<<endl;
        else
        cout<<"Utkarsh"<<endl;
    }
}


#include<bits/stdc++.h>
using namespace std;
main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int x,y,d,k;
        cin>>d>>k;
        int flg=0;
        int cnt=0;
        x=0,y=0;
        while(x*x+y*y<=d*d)
        {
            if(cnt%2==0)
                x=x+k;
            else
            y=y+k;
            if(x*x+y*y<=d*d)
            cnt++;
        }
        if(cnt%2)
        cout<<"Ashish"<<endl;
        else
        cout<<"Utkarsh"<<endl;
    }
}


#include<bits/stdc++.h>
using namespace std;
main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int x,y,d,k;
        cin>>d>>k;
        int flg=1;
        int cnt=0;
        x=0,y=0;
        while(x*x+y*y<=d*d)
        {
            if(flg)
                x=x+k;
            else
            y=y+k;
            if(x*x+y*y<=d*d)
            cnt++;
            flg=!flg;
        }
        if(cnt%2)
        cout<<"Ashish"<<endl;
        else
        cout<<"Utkarsh"<<endl;
    }
}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
main()
{
    ll t;
    cin>>t;
    while(t--)
    {
        ll x,y,d,k;
        cin>>d>>k;
        ll flg=1;
        ll cnt=0;
        x=0,y=0;
        while(x*x+y*y<=d*d)
        {
            if(flg)
                x=x+k;
            else
            y=y+k;
            if(x*x+y*y<=d*d)
            cnt++;
            flg=!flg;
        }
        if(cnt%2)
        cout<<"Ashish"<<endl;
        else
        cout<<"Utkarsh"<<endl;
    }
}


#include<bits/stdc++.h>
using namespace std;
main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int x,y,d,k;
        cin>>d>>k;
        int flg=0;
        int cnt=0;
        x=0,y=0;
        while(1)
        {
            if(cnt%2==0)
                x=x+k;
            else
            y=y+k;
            cnt++;
            if(x*x+y*y>d*d)
            break;
        }
        if(cnt%2==0)
        cout<<"Ashish"<<endl;
        else
        cout<<"Utkarsh"<<endl;
    }
}


#include<bits/stdc++.h>
using namespace std;
main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int x,y,d,k;
        cin>>d>>k;
        int flg=0;
        int cnt=0;
        x=0,y=0;
        while(x*x+y*y<=d*d)
        {
            if(flg)
                x=x+k;
            else
            y=y+k;
            if(x*x+y*y<=d*d)
            cnt++;
            flg=!flg;
        }
        if(cnt%2)
        cout<<"Ashish"<<endl;
        else
        cout<<"Utkarsh"<<endl;
    }
}


#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define all(v) v.begin(),v.end()
#define inf 1000000000000000000//1e18
#define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
#define sz(cntainer) (int)cntainer.size()
#define tc int t;cin>>t;for(int i=0;i<t;++i)
#define ll long long
#define pii pair<int,int>
int ans;

//-----solve------//
void solve()
{
    ll d,k;cin>>d>>k;
    ll t1=d*d,z=0;
    while (2*z*z<=d*d)
    {
        z+=k;
    }
    z-=k;
    (z+k)*(z+k)+z*z<=d*d?cout<<"Ashish\n":cout<<"Utkarsh\n";
}
int main()
{
   ninpo;
   tc
    solve();
}


#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define all(v) v.begin(),v.end()
#define inf 1000000000000000000//1e18
#define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
#define sz(cntainer) (int)cntainer.size()
#define tc int t;cin>>t;for(int i=0;i<t;++i)
#define ll long long
#define pii pair<int,int>
int ans;

//-----solve------//
void solve()
{
    int d,k;cin>>d>>k;
    int alp=0,i;
    ll t1=d*d,z=0;
    while (2*z*z<=d*d)
    {
        z+=k;
    }
    z-=k;
    (z+k)*(z+k)+z*z<=d*d?cout<<"Ashish\n":cout<<"Utkarsh\n";
}
int main()
{
   ninpo;
   tc
    solve();
}


// #include <bits/stdc++.h>
// using namespace std;
// #define MOD 1000000007
// #define all(v) v.begin(),v.end()
// #define inf 1000000000000000000//1e18
// #define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
// #define sz(cntainer) (int)cntainer.size()
// #define tc int t;cin>>t;for(int i=0;i<t;++i)
// #define ll long long
// #define pii pair<int,int>
// int ans;

// //-----solve------//
// int iske(ll x)
// {
//     //2-sqrt(n) mei koi ni hai matlab smallest pf h. ans++; iske(x-1);
//     //else 1+ spf;
//     // cout<<x<<endl;
//     if(x==1)return 1;
//     if(x==2){ans++;return 1 ;}
//     for (int i = 2; i*i <= x; i++)
//     {
//         if(x%i==0)
//         {
//             ans++;
//             return iske(i);
//         }
//     }
//     ans++;
//     return iske(x-1);
// }
// void solve()
// {
//     ll n;;
//     cin>>n;
//     ans=0;
//     iske(n);
//     cout<<ans<<endl;
// }
// int main()
// {
//    ninpo;
//    tc
//     solve();
// }
#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define all(v) v.begin(),v.end()
#define inf 1000000000000000000//1e18
#define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
#define sz(cntainer) (int)cntainer.size()
#define tc int t;cin>>t;for(int i=0;i<t;++i)
#define ll long long
#define pii pair<int,int>
int ans;

//-----solve------//
void solve()//5-1
{
    ll d,k;cin>>d>>k;
    ll x=0,y=0;ans=1;
    while ("/* condition */")
    {
        if(x*x+ y*y > d*d)
        {
            break;
        }
        if(y>=x)x+=k;
        else y+k;
        ans=!ans;
        // cout<<x<<" & "<<y<<endl;
    }
}
int main()
{
   ninpo;
   tc
   {
       ans=0;
    solve();
    if(ans)cout<<"Ashish\n";
    else cout<<"Utkarsh\n";
   }
}


// #include <bits/stdc++.h>
// using namespace std;
// #define MOD 1000000007
// #define all(v) v.begin(),v.end()
// #define inf 1000000000000000000//1e18
// #define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
// #define sz(cntainer) (int)cntainer.size()
// #define tc int t;cin>>t;for(int i=0;i<t;++i)
// #define ll long long
// #define pii pair<int,int>
// int ans;

// //-----solve------//
// int iske(ll x)
// {
//     //2-sqrt(n) mei koi ni hai matlab smallest pf h. ans++; iske(x-1);
//     //else 1+ spf;
//     // cout<<x<<endl;
//     if(x==1)return 1;
//     if(x==2){ans++;return 1 ;}
//     for (int i = 2; i*i <= x; i++)
//     {
//         if(x%i==0)
//         {
//             ans++;
//             return iske(i);
//         }
//     }
//     ans++;
//     return iske(x-1);
// }
// void solve()
// {
//     ll n;;
//     cin>>n;
//     ans=0;
//     iske(n);
//     cout<<ans<<endl;
// }
// int main()
// {
//    ninpo;
//    tc
//     solve();
// }
#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define all(v) v.begin(),v.end()
#define inf 1000000000000000000//1e18
#define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
#define sz(cntainer) (int)cntainer.size()
#define tc int t;cin>>t;for(int i=0;i<t;++i)
#define ll long long
#define pii pair<int,int>
int ans;

//-----solve------//
void solve()//5-1
{
    ll d,k;cin>>d>>k;
    ll x=0,y=0;ans=1;
    while ("/* condition */")
    {
        if(x*x+ y*y > d*d)
        {
            break;
        }
        if(y>=x)x+=k;
        else y+=k;
        ans=!ans;
        // cout<<x<<" & "<<y<<endl;
    }
}
int main()
{
   ninpo;
   tc
   {
       ans=0;
    solve();
    if(ans)cout<<"Ashish\n";
    else cout<<"Utkarsh\n";
   }
}


// #include <bits/stdc++.h>
// using namespace std;
// #define MOD 1000000007
// #define all(v) v.begin(),v.end()
// #define inf 1000000000000000000//1e18
// #define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
// #define sz(cntainer) (int)cntainer.size()
// #define tc int t;cin>>t;for(int i=0;i<t;++i)
// #define ll long long
// #define pii pair<int,int>
// int ans;

// //-----solve------//
// int iske(ll x)
// {
//     //2-sqrt(n) mei koi ni hai matlab smallest pf h. ans++; iske(x-1);
//     //else 1+ spf;
//     // cout<<x<<endl;
//     if(x==1)return 1;
//     if(x==2){ans++;return 1 ;}
//     for (int i = 2; i*i <= x; i++)
//     {
//         if(x%i==0)
//         {
//             ans++;
//             return iske(i);
//         }
//     }
//     ans++;
//     return iske(x-1);
// }
// void solve()
// {
//     ll n;;
//     cin>>n;
//     ans=0;
//     iske(n);
//     cout<<ans<<endl;
// }
// int main()
// {
//    ninpo;
//    tc
//     solve();
// }
#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define all(v) v.begin(),v.end()
#define inf 1000000000000000000//1e18
#define ninpo ios_base::sync_with_stdio(false);cin.tie(NULL);
#define sz(cntainer) (int)cntainer.size()
#define tc int t;cin>>t;for(int i=0;i<t;++i)
#define ll long long
#define pii pair<int,int>
int ans;

//-----solve------//
void solve()
{
    int d,k;cin>>d>>k;
    int alp=0,i;
    ll t1=d*d/2;
    double rt2k=(double)sqrt(((double)2))*((double)k);
    i=1;
    for (;(double)i*rt2k<=d; i++)
    {
        "Sab Changa c";
    }
    i--;
    double p=(double)i*rt2k;
    // cout<<p<<" & "<<i<<endl;
    if (p + (double)k <= (double)d)ans=1;

}
int main()
{
   ninpo;
   tc
   {
       ans=0;
    solve();
    if(ans)cout<<"Ashish\n";
    else cout<<"Utkarsh\n";
   }
}


#include <bits/stdc++.h>

using namespace std;
//--------------------------------------Useful Macros------------------------------------

//-------Constants----------
#define MOD 1000000007
#define INF 1000000000000000001

//------Standard Input Output Tweaks------
#define fin freopen("D:/Programs/Competitive/input", "r", stdin);
#define fout freopen("D:/Programs/Competitive/output", "w", stdout);
#define sync ios_base::sync_with_stdio(false);
#define fastio sync cin.tie(NULL);
#define fileio fin fout

//--------Miscellaneous--------
#define F first
#define S second
#define pb push_back
#define sz(x) x.size()
#define isOdd(n) (n % 2)
#define isEven(n) (n % 2 == 0)
#define all(p) p.begin(), p.end()
#define notend(itr, s) (itr != s.end())
#define min3(a, b, c) min((a), min((b), (c)))
#define max3(a, b, c) max((a), max((b), (c)))
#define isPresent(x, s) (s.find(x) != s.end())
#define myfor(x, e) for (int i = x; i < e; i++)
#define deb(x) cout << #x << " : " << x << endl;
#define endl '\n'

//-------------------------------------End of Macros------------------------------------

typedef long long int lli;

typedef pair<lli, lli> pii;
typedef vector<lli> vi;
typedef set<lli> si;
typedef unordered_map<lli, lli> umii;
typedef unordered_set<lli> usi;

bool CustomCompare(const pii &, const pii &);

lli modmul(lli, lli);
lli modadd(lli, lli);
lli modsub(lli, lli);

//------------------------------Declaring Trace Functions----------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P);
template <class T>
ostream &operator<<(ostream &os, vector<T> V);
template <class T>
ostream &operator<<(ostream &os, set<T> S);
template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S);
template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S);
template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S);

//-----------------------------------End of Declarations------------------------------------

//---------------------------------------SOLVE HERE----------------------------------------

int isprime(lli n)
{
    for (int i = 2; i < sqrt(n) + 1; i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

void solve()
{
    lli d, k;
    cin >> d >> k;
    lli div2 = (d * d) / (k * k);
    lli curx = 0, cury = 0;
    lli i = 1;
    lli flag = 0;
    while (true)
    {
        curx = i * i;
        lli z = div2 - curx - cury;
        if (z < 0)
        {
            flag = 1;
        }
        cury = i * i;
        z = div2 - curx - cury;
        if (z < 0)
            break;
        i++;
    }
    if (flag)
    {
        cout << "Utkarsh\n";
    }
    else
    {
        cout << "Ashish\n";
    }
}
//----------------------------------------MAIN HERE----------------------------------------

int main()
{
#ifndef ONLINE_JUDGE
    fileio;
    // fin;
#endif
    fastio;
    vi a(1e5);
    for (int i = 0; i < 1e5; i++)
        ;
    int t = 1;
    cin >> t;
    int i = 1;
    while (i <= t)
    {
        // cout << "Case #" << i << ": ";
        solve();
        i++;
    }

    return 0;
}
//----------------------------------Defining Trace Functions------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P)
{
    return os << "(" << P.first << ", " << P.second << ")";
}

template <class T>
ostream &operator<<(ostream &os, vector<T> V)
{
    if (sz(V))
    {
        os << "[" << V[0];
        for (int i = 1; i < sz(V); i++)
            os << ", " << V[i];
        return os << "]";
    }
    return os << "[]";
}

template <class T>
ostream &operator<<(ostream &os, set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

//---------------------------------------End of Definitions--------------------------------

//stable sort by first then second both in increasing
bool CustomCompare(const pii &i, const pii &j)
{
    if (i.first == j.first)
        return i.second < j.second;
    return i.first < j.first;
}

//------------------------------------Modular Arithmetic-----------------------------------
lli modmul(lli a, lli b)
{
    lli ret = (a % MOD) * (b % MOD);
    ret %= MOD;
    return ret;
}
lli modadd(lli a, lli b)
{
    lli ret = (a % MOD) + (b % MOD);
    ret %= MOD;
    return ret;
}
lli modsub(lli a, lli b)
{
    a = a % MOD;
    b = b % MOD;
    if (a < b)
        a += MOD;
    lli ret = a - b;
    ret %= MOD;
    return ret;
}


#include <bits/stdc++.h>

using namespace std;
//--------------------------------------Useful Macros------------------------------------

//-------Constants----------
#define MOD 1000000007
#define INF 1000000000000000001

//------Standard Input Output Tweaks------
#define fin freopen("D:/Programs/Competitive/input", "r", stdin);
#define fout freopen("D:/Programs/Competitive/output", "w", stdout);
#define sync ios_base::sync_with_stdio(false);
#define fastio sync cin.tie(NULL);
#define fileio fin fout

//--------Miscellaneous--------
#define F first
#define S second
#define pb push_back
#define sz(x) x.size()
#define isOdd(n) (n % 2)
#define isEven(n) (n % 2 == 0)
#define all(p) p.begin(), p.end()
#define notend(itr, s) (itr != s.end())
#define min3(a, b, c) min((a), min((b), (c)))
#define max3(a, b, c) max((a), max((b), (c)))
#define isPresent(x, s) (s.find(x) != s.end())
#define myfor(x, e) for (int i = x; i < e; i++)
#define deb(x) cout << #x << " : " << x << endl;
#define endl '\n'

//-------------------------------------End of Macros------------------------------------

typedef long long int lli;

typedef pair<lli, lli> pii;
typedef vector<lli> vi;
typedef set<lli> si;
typedef unordered_map<lli, lli> umii;
typedef unordered_set<lli> usi;

bool CustomCompare(const pii &, const pii &);

lli modmul(lli, lli);
lli modadd(lli, lli);
lli modsub(lli, lli);

//------------------------------Declaring Trace Functions----------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P);
template <class T>
ostream &operator<<(ostream &os, vector<T> V);
template <class T>
ostream &operator<<(ostream &os, set<T> S);
template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S);
template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S);
template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S);

//-----------------------------------End of Declarations------------------------------------

//---------------------------------------SOLVE HERE----------------------------------------

int isprime(lli n)
{
    for (int i = 2; i < sqrt(n) + 1; i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

void solve()
{
    int d, k;
    cin >> d >> k;
    lli div2 = (d * d) / (k * k);
    lli curx = 0, cury = 0;
    lli i = 1;
    lli flag = 0;
    while (true)
    {
        curx = i * i;
        lli z = div2 - curx - cury;
        if (z < 0)
        {
            flag = 1;
        }
        cury = i * i;
        z = div2 - curx - cury;
        if (z < 0)
            break;
        i++;
    }
    if (flag)
    {
        cout << "Utkarsh\n";
    }
    else
    {
        cout << "Ashish\n";
    }
}
//----------------------------------------MAIN HERE----------------------------------------

int main()
{
#ifndef ONLINE_JUDGE
    fileio;
    // fin;
#endif
    fastio;
    vi a(1e5);
    for (int i = 0; i < 1e5; i++)
        ;
    int t = 1;
    cin >> t;
    int i = 1;
    while (i <= t)
    {
        // cout << "Case #" << i << ": ";
        solve();
        i++;
    }

    return 0;
}
//----------------------------------Defining Trace Functions------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P)
{
    return os << "(" << P.first << ", " << P.second << ")";
}

template <class T>
ostream &operator<<(ostream &os, vector<T> V)
{
    if (sz(V))
    {
        os << "[" << V[0];
        for (int i = 1; i < sz(V); i++)
            os << ", " << V[i];
        return os << "]";
    }
    return os << "[]";
}

template <class T>
ostream &operator<<(ostream &os, set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

//---------------------------------------End of Definitions--------------------------------

//stable sort by first then second both in increasing
bool CustomCompare(const pii &i, const pii &j)
{
    if (i.first == j.first)
        return i.second < j.second;
    return i.first < j.first;
}

//------------------------------------Modular Arithmetic-----------------------------------
lli modmul(lli a, lli b)
{
    lli ret = (a % MOD) * (b % MOD);
    ret %= MOD;
    return ret;
}
lli modadd(lli a, lli b)
{
    lli ret = (a % MOD) + (b % MOD);
    ret %= MOD;
    return ret;
}
lli modsub(lli a, lli b)
{
    a = a % MOD;
    b = b % MOD;
    if (a < b)
        a += MOD;
    lli ret = a - b;
    ret %= MOD;
    return ret;
}


#include <bits/stdc++.h>

using namespace std;
//--------------------------------------Useful Macros------------------------------------

//-------Constants----------
#define MOD 1000000007
#define INF 1000000000000000001

//------Standard Input Output Tweaks------
#define fin freopen("D:/Programs/Competitive/input", "r", stdin);
#define fout freopen("D:/Programs/Competitive/output", "w", stdout);
#define sync ios_base::sync_with_stdio(false);
#define fastio sync cin.tie(NULL);
#define fileio fin fout

//--------Miscellaneous--------
#define F first
#define S second
#define pb push_back
#define sz(x) x.size()
#define isOdd(n) (n % 2)
#define isEven(n) (n % 2 == 0)
#define all(p) p.begin(), p.end()
#define notend(itr, s) (itr != s.end())
#define min3(a, b, c) min((a), min((b), (c)))
#define max3(a, b, c) max((a), max((b), (c)))
#define isPresent(x, s) (s.find(x) != s.end())
#define myfor(x, e) for (int i = x; i < e; i++)
#define deb(x) cout << #x << " : " << x << endl;
#define endl '\n'

//-------------------------------------End of Macros------------------------------------

typedef long long int lli;

typedef pair<lli, lli> pii;
typedef vector<lli> vi;
typedef set<lli> si;
typedef unordered_map<lli, lli> umii;
typedef unordered_set<lli> usi;

bool CustomCompare(const pii &, const pii &);

lli modmul(lli, lli);
lli modadd(lli, lli);
lli modsub(lli, lli);

//------------------------------Declaring Trace Functions----------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P);
template <class T>
ostream &operator<<(ostream &os, vector<T> V);
template <class T>
ostream &operator<<(ostream &os, set<T> S);
template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S);
template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S);
template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S);

//-----------------------------------End of Declarations------------------------------------

//---------------------------------------SOLVE HERE----------------------------------------

int isprime(lli n)
{
    for (int i = 2; i < sqrt(n) + 1; i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

void solve()
{
    int d, k;
    cin >> d >> k;
    int div2 = (d * d) / (k * k);
    int curx = 0, cury = 0;
    int i = 1;
    int flag = 0;
    while (true)
    {
        curx = i * i;
        int z = div2 - curx - cury;
        if (z < 0)
        {
            flag = 1;
        }
        cury = i * i;
        z = div2 - curx - cury;
        if (z < 0)
            break;
        i++;
    }
    if (flag)
    {
        cout << "Utkarsh\n";
    }
    else
    {
        cout << "Ashish\n";
    }
}
//----------------------------------------MAIN HERE----------------------------------------

int main()
{
#ifndef ONLINE_JUDGE
    fileio;
    // fin;
#endif
    fastio;
    vi a(1e5);
    for (int i = 0; i < 1e5; i++)
        ;
    int t = 1;
    cin >> t;
    int i = 1;
    while (i <= t)
    {
        // cout << "Case #" << i << ": ";
        solve();
        i++;
    }

    return 0;
}
//----------------------------------Defining Trace Functions------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P)
{
    return os << "(" << P.first << ", " << P.second << ")";
}

template <class T>
ostream &operator<<(ostream &os, vector<T> V)
{
    if (sz(V))
    {
        os << "[" << V[0];
        for (int i = 1; i < sz(V); i++)
            os << ", " << V[i];
        return os << "]";
    }
    return os << "[]";
}

template <class T>
ostream &operator<<(ostream &os, set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

//---------------------------------------End of Definitions--------------------------------

//stable sort by first then second both in increasing
bool CustomCompare(const pii &i, const pii &j)
{
    if (i.first == j.first)
        return i.second < j.second;
    return i.first < j.first;
}

//------------------------------------Modular Arithmetic-----------------------------------
lli modmul(lli a, lli b)
{
    lli ret = (a % MOD) * (b % MOD);
    ret %= MOD;
    return ret;
}
lli modadd(lli a, lli b)
{
    lli ret = (a % MOD) + (b % MOD);
    ret %= MOD;
    return ret;
}
lli modsub(lli a, lli b)
{
    a = a % MOD;
    b = b % MOD;
    if (a < b)
        a += MOD;
    lli ret = a - b;
    ret %= MOD;
    return ret;
}


#include <bits/stdc++.h>

using namespace std;
//--------------------------------------Useful Macros------------------------------------

//-------Constants----------
#define MOD 1000000007
#define INF 1000000000000000001

//------Standard Input Output Tweaks------
#define fin freopen("D:/Programs/Competitive/input", "r", stdin);
#define fout freopen("D:/Programs/Competitive/output", "w", stdout);
#define sync ios_base::sync_with_stdio(false);
#define fastio sync cin.tie(NULL);
#define fileio fin fout

//--------Miscellaneous--------
#define F first
#define S second
#define pb push_back
#define sz(x) x.size()
#define isOdd(n) (n % 2)
#define isEven(n) (n % 2 == 0)
#define all(p) p.begin(), p.end()
#define notend(itr, s) (itr != s.end())
#define min3(a, b, c) min((a), min((b), (c)))
#define max3(a, b, c) max((a), max((b), (c)))
#define isPresent(x, s) (s.find(x) != s.end())
#define myfor(x, e) for (int i = x; i < e; i++)
#define deb(x) cout << #x << " : " << x << endl;
#define endl '\n'

//-------------------------------------End of Macros------------------------------------

typedef long long int lli;

typedef pair<lli, lli> pii;
typedef vector<lli> vi;
typedef set<lli> si;
typedef unordered_map<lli, lli> umii;
typedef unordered_set<lli> usi;

bool CustomCompare(const pii &, const pii &);

lli modmul(lli, lli);
lli modadd(lli, lli);
lli modsub(lli, lli);

//------------------------------Declaring Trace Functions----------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P);
template <class T>
ostream &operator<<(ostream &os, vector<T> V);
template <class T>
ostream &operator<<(ostream &os, set<T> S);
template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S);
template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S);
template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S);

//-----------------------------------End of Declarations------------------------------------

//---------------------------------------SOLVE HERE----------------------------------------

int isprime(lli n)
{
    for (int i = 2; i < sqrt(n) + 1; i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

void solve()
{
    int d, k;
    cin >> d >> k;
    int div2 = d * d / (k * k);
    int curx = 0, cury = 0;
    int i = 1;
    int flag = 0;
    while (true)
    {
        curx = i * i;
        int z = div2 - curx - cury;
        if (z < 0)
        {
            flag = 1;
        }
        cury = i * i;
        z = div2 - curx - cury;
        if (z < 0)
            break;
        i++;
    }
    if (flag)
    {
        cout << "Utkarsh\n";
    }
    else
    {
        cout << "Ashish\n";
    }
}
//----------------------------------------MAIN HERE----------------------------------------

int main()
{
#ifndef ONLINE_JUDGE
    fileio;
    // fin;
#endif
    fastio;
    vi a(1e5);
    for (int i = 0; i < 1e5; i++)
        ;
    int t = 1;
    cin >> t;
    int i = 1;
    while (i <= t)
    {
        // cout << "Case #" << i << ": ";
        solve();
        i++;
    }

    return 0;
}
//----------------------------------Defining Trace Functions------------------------------

template <class L, class R>
ostream &operator<<(ostream &os, pair<L, R> P)
{
    return os << "(" << P.first << ", " << P.second << ")";
}

template <class T>
ostream &operator<<(ostream &os, vector<T> V)
{
    if (sz(V))
    {
        os << "[" << V[0];
        for (int i = 1; i < sz(V); i++)
            os << ", " << V[i];
        return os << "]";
    }
    return os << "[]";
}

template <class T>
ostream &operator<<(ostream &os, set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T>
ostream &operator<<(ostream &os, unordered_set<T> S)
{
    os << "{";
    for (auto s : S)
        os << s << ", ";
    return os << "}";
}

template <class T, class T1>
ostream &operator<<(ostream &os, map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

template <class T, class T1>
ostream &operator<<(ostream &os, unordered_map<T, T1> S)
{
    os << "{" << endl;
    for (auto s : S)
        os << "\t" << s.first << " : " << s.second << "," << endl;
    return os << "}" << endl;
}

//---------------------------------------End of Definitions--------------------------------

//stable sort by first then second both in increasing
bool CustomCompare(const pii &i, const pii &j)
{
    if (i.first == j.first)
        return i.second < j.second;
    return i.first < j.first;
}

//------------------------------------Modular Arithmetic-----------------------------------
lli modmul(lli a, lli b)
{
    lli ret = (a % MOD) * (b % MOD);
    ret %= MOD;
    return ret;
}
lli modadd(lli a, lli b)
{
    lli ret = (a % MOD) + (b % MOD);
    ret %= MOD;
    return ret;
}
lli modsub(lli a, lli b)
{
    a = a % MOD;
    b = b % MOD;
    if (a < b)
        a += MOD;
    lli ret = a - b;
    ret %= MOD;
    return ret;
}


#include<bits/stdc++.h>
using namespace std;
#define OPTIMIZE() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define MAX 100000
#define ll long long
#define pb push_back
#define ff first
#define ss second
const int  mod  = 1000000007;
#define INF INT_MAX
//void swap(int *x,int *y){int temp=*x;*x=*y;*y=temp; }
//ll int binpow(ll int a, ll int b) {ll int ans = 1; while (b > 0) {if (b & 1) {ans = ans * a;} a = a * a; b >>= 1;} return ans;}
//ll power(ll a, ll b, ll m) { ll ans = 1; a = a % m; while (b) { if (b & 1) ans = (ans * a) % m; b /= 2; a = (a * a) % m; } return ans; }
//ll modInverse(ll a, ll m) {return power(a, m-2, m);}
//bool is_prime(ll n) { if (n < 2)return false; for (ll i = 2; i * i <= n; i++) {if (n % i == 0) return false;} return true;}
//void sieve(int n){ bool prime[n+1]; memset(prime,true,sizeof(prime));prime[0]=false;prime[1]=false; for(int i=2;i*i<=n;i++){ if(prime[i]){for(int j=i*i;j<=n;j=j+i)prime[j]=false;}}for(int i=0;i<=n;i++){if(prime[i])cout<<i<<endl;}}

bool check(ll p, ll q, ll d) {
	if ((p * p + q * q) <= d * d)
		return true;
	else
		return false;
}
int main() {
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	OPTIMIZE()
	int t;
	cin >> t;
	while (t--) {
		ll d, k;
		cin >> d >> k;
		ll ans = 0, x = 0;
		ll y = 0;
		x += k;
		while (check(x, y, d)) {
			ans++;
			if ((x + k) * (x + k) + y * y <= d * d)
			{
				if ((y + k) * (y + k) + x * x <= d * d)
				{
					if (((x + k) * (x + k) + y * y) < ((y + k) * (y + k) + x * x ))
						x += k;
					else
						y += k;
				}
				else
					x += k;
			}
			else if ((y + k) * (y + k) + x * x <= d * d)
				y += k;
			else
			break;
		}
		if (ans % 2 == 1)
			cout << "Ashish";
		else
			cout << "Utkarsh";
		cout << endl;
	}
}


#include<bits/stdc++.h>
using namespace std;
#define OPTIMIZE() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define MAX 100000
#define ll long long
#define pb push_back
#define ff first
#define ss second
const int  mod  = 1000000007;
#define INF INT_MAX
//void swap(int *x,int *y){int temp=*x;*x=*y;*y=temp; }
//ll int binpow(ll int a, ll int b) {ll int ans = 1; while (b > 0) {if (b & 1) {ans = ans * a;} a = a * a; b >>= 1;} return ans;}
//ll power(ll a, ll b, ll m) { ll ans = 1; a = a % m; while (b) { if (b & 1) ans = (ans * a) % m; b /= 2; a = (a * a) % m; } return ans; }
//ll modInverse(ll a, ll m) {return power(a, m-2, m);}
//bool is_prime(ll n) { if (n < 2)return false; for (ll i = 2; i * i <= n; i++) {if (n % i == 0) return false;} return true;}
//void sieve(int n){ bool prime[n+1]; memset(prime,true,sizeof(prime));prime[0]=false;prime[1]=false; for(int i=2;i*i<=n;i++){ if(prime[i]){for(int j=i*i;j<=n;j=j+i)prime[j]=false;}}for(int i=0;i<=n;i++){if(prime[i])cout<<i<<endl;}}

bool check(ll p, ll q, ll d) {
	if ((p * p + q * q) <= d * d)
		return true;
	else
		return false;
}
int main() {
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	OPTIMIZE()
	int t;
	cin >> t;
	while (t--) {
		ll d, k;
		cin >> d >> k;
		ll ans = 0, x = 0;
		ll y = 0;
		x += k;
		while (check(x, y, d)) {
			ans++;
			if ((x + k) * (x + k) + y * y <= d * d)
			{
				if ((y + k) * (y + k) + x * x <= d * d)
				{
					if (((x + k) * (x + k) + y * y) < ((y + k) * (y + k) + x * x ))
						x += k;
					else
						y += k;
				}
				else
					x += k;
			}
			else if ((y + k) * (y + k) + x * x <= d * d)
				y += k;
		}
		if (ans % 2 == 1)
			cout << "Ashish";
		else
			cout << "Utkarsh";
		cout << endl;
	}
}


#include<bits/stdc++.h>
using namespace std;
#define OPTIMIZE() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define MAX 100000
#define ll long long
#define pb push_back
#define ff first
#define ss second
const int  mod  = 1000000007;
#define INF INT_MAX
//void swap(int *x,int *y){int temp=*x;*x=*y;*y=temp; }
//ll int binpow(ll int a, ll int b) {ll int ans = 1; while (b > 0) {if (b & 1) {ans = ans * a;} a = a * a; b >>= 1;} return ans;}
//ll power(ll a, ll b, ll m) { ll ans = 1; a = a % m; while (b) { if (b & 1) ans = (ans * a) % m; b /= 2; a = (a * a) % m; } return ans; }
//ll modInverse(ll a, ll m) {return power(a, m-2, m);}
//bool is_prime(ll n) { if (n < 2)return false; for (ll i = 2; i * i <= n; i++) {if (n % i == 0) return false;} return true;}
//void sieve(int n){ bool prime[n+1]; memset(prime,true,sizeof(prime));prime[0]=false;prime[1]=false; for(int i=2;i*i<=n;i++){ if(prime[i]){for(int j=i*i;j<=n;j=j+i)prime[j]=false;}}for(int i=0;i<=n;i++){if(prime[i])cout<<i<<endl;}}

bool check(int p, int q, int d) {
	if ((p * p + q * q) <= d * d)
		return true;
	else
		return false;
}
int main() {

	OPTIMIZE()
	int t;
	cin >> t;
	while (t--) {
		int d, k;
		cin >> d >> k;
		int ans = 0, x = 0;
		int y = 0;
		x += k;
		while (check(x, y, d)) {
			ans++;
			if ((x + k) * (x + k) + y * y <= d * d)
			{
				if ((y + k) * (y + k) + x * x <= d * d)
				{
					if (((x + k) * (x + k) + y * y) < ((y + k) * (y + k) + x * x))
						y += k;
					else
						x += k;
				}
				else
					x += k;
			}
			else if ((y + k) * (y + k) + x * x <= d * d)
				y += k;
			else
			break;
		}
		if (ans % 2 == 1)
			cout << "Ashish";
		else
			cout << "Utkarsh";
		cout << endl;
	}
}


#include<bits/stdc++.h>
using namespace std;
#define OPTIMIZE() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'
#define MAX 100000
#define ll long long
#define pb push_back
#define ff first
#define ss second
const int  mod  = 1000000007;
#define INF INT_MAX
//void swap(int *x,int *y){int temp=*x;*x=*y;*y=temp; }
//ll int binpow(ll int a, ll int b) {ll int ans = 1; while (b > 0) {if (b & 1) {ans = ans * a;} a = a * a; b >>= 1;} return ans;}
//ll power(ll a, ll b, ll m) { ll ans = 1; a = a % m; while (b) { if (b & 1) ans = (ans * a) % m; b /= 2; a = (a * a) % m; } return ans; }
//ll modInverse(ll a, ll m) {return power(a, m-2, m);}
//bool is_prime(ll n) { if (n < 2)return false; for (ll i = 2; i * i <= n; i++) {if (n % i == 0) return false;} return true;}
//void sieve(int n){ bool prime[n+1]; memset(prime,true,sizeof(prime));prime[0]=false;prime[1]=false; for(int i=2;i*i<=n;i++){ if(prime[i]){for(int j=i*i;j<=n;j=j+i)prime[j]=false;}}for(int i=0;i<=n;i++){if(prime[i])cout<<i<<endl;}}

bool check(int p, int q, int d) {
	if ((p * p + q * q) <= d * d)
		return true;
	else
		return false;
}
int main() {

	OPTIMIZE()
	int t;
	cin >> t;
	while (t--) {
		int d, k;
		cin >> d >> k;
		int ans = 0, x = 0;
		int y = 0;
		x += k;
		while (check(x, y, d)) {
			ans++;
			if ((x + k) * (x + k) + y * y <= d * d)
			{
				if ((y + k) * (y + k) + x * x <= d * d)
				{
					if (((x + k) * (x + k) + y * y) < ((y + k) * (y + k) + x * x))
						x += k;
					else
						y += k;
				}
				else
					x += k;
			}
			else if ((y + k) * (y + k) + x * x <= d * d)
				y += k;
			else
			break;
		}
		if (ans % 2 == 1)
			cout << "Ashish";
		else
			cout << "Utkarsh";
		cout << endl;
	}
}


#include<bits/stdc++.h>
using namespace std;

typedef long long int lli;
typedef vector<int> vi;
typedef vector<lli> vlli;
typedef vector<pair<int,int>> vii;
typedef vector<pair<lli,lli>> vllii;
typedef vector<vector<int>> vvi;

#define v2d(a,n,m) vector<vector<int>> a( n , vector<int> (m))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define IO freopen("in.txt","r",stdin); freopen("out.txt","w",stdout)
#define pb push_back
#define pf push_front
#define ub upper_bound
#define lb lower_bound
#define bs binary_search
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define all(a) (a).begin(),(a).end()
#define PI 3.141592653589793238
#define countset(x) __builtin_popcountll(x)
#define frr(i, a, b) for (int i = a; i <= b; i++)
#define frrd(i, a, b) for (int i = b; i >= a; i--)
#define trav(a,x) for (auto a : x)
char nn = '\n';
char ss = ' ';
const lli mod = 1e7;
lli n,m;

//*************************************************************************************************************

int main()
{
    IOS;
    #ifndef  ONLINE_JUDGE
    IO;
    #endif

    lli t = 1, i, h, j;
    bool f = true;
    string s;

    cin>>t;
    while(t--)
    {
        lli d,k;
        lli e=0,o=0;
        lli temp;
        cin>>d>>k;
        temp=(d*pow(2,0.5))/(2*k);
        //cout<<temp<<ss;
        temp=pow((temp+1)*k,2)+pow(temp*k,2);
        if(temp>d*d) cout<<"Utkarsh"<<nn;
        else cout<<"Ashish"<<nn;
    }
}


#include<bits/stdc++.h>
using namespace std;

typedef long long int lli;
typedef vector<int> vi;
typedef vector<lli> vlli;
typedef vector<pair<int,int>> vii;
typedef vector<pair<lli,lli>> vllii;
typedef vector<vector<int>> vvi;

#define v2d(a,n,m) vector<vector<int>> a( n , vector<int> (m))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define IO freopen("in.txt","r",stdin); freopen("out.txt","w",stdout)
#define pb push_back
#define pf push_front
#define ub upper_bound
#define lb lower_bound
#define bs binary_search
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define all(a) (a).begin(),(a).end()
#define PI 3.141592653589793238
#define countset(x) __builtin_popcountll(x)
#define frr(i, a, b) for (int i = a; i <= b; i++)
#define frrd(i, a, b) for (int i = b; i >= a; i--)
#define trav(a,x) for (auto a : x)
char nn = '\n';
char ss = ' ';
const lli mod = 1e7;
lli n,m;

//*************************************************************************************************************

int main()
{
    IOS;
    #ifndef  ONLINE_JUDGE
    IO;
    #endif

    lli t = 1, i, h, j;
    bool f = true;
    string s;

    cin>>t;
    while(t--)
    {
        int d,k;
        lli temp;
        cin>>d>>k;
        for(i=0;i<=d;i+=k)
        {
            temp=pow(d*d-i*i,0.5);
            temp=(temp)/k + i/k;
            n=max(n,temp);
            //cout<<i<<ss<<temp<<nn;
        }
        //cout<<n<<ss;
        if(n%2==0) cout<<"Utkarsh"<<nn;
        else cout<<"Ashish"<<nn;
    }
}


#include<bits/stdc++.h>
using namespace std;

typedef long long int lli;
typedef vector<int> vi;
typedef vector<lli> vlli;
typedef vector<pair<int,int>> vii;
typedef vector<pair<lli,lli>> vllii;
typedef vector<vector<int>> vvi;

#define v2d(a,n,m) vector<vector<int>> a( n , vector<int> (m))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define IO freopen("in.txt","r",stdin); freopen("out.txt","w",stdout)
#define pb push_back
#define pf push_front
#define ub upper_bound
#define lb lower_bound
#define bs binary_search
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define all(a) (a).begin(),(a).end()
#define PI 3.141592653589793238
#define countset(x) __builtin_popcountll(x)
#define frr(i, a, b) for (int i = a; i <= b; i++)
#define frrd(i, a, b) for (int i = b; i >= a; i--)
#define trav(a,x) for (auto a : x)
char nn = '\n';
char ss = ' ';
const lli mod = 1e7;
lli n,m;

//*************************************************************************************************************

int main()
{
    IOS;
    #ifndef  ONLINE_JUDGE
    IO;
    #endif

    lli t = 1, i, h, j;
    bool f = true;
    string s;

    cin>>t;
    while(t--)
    {
        int d,k;
        int e=0,o=0;
        lli temp;
        cin>>d>>k;
        temp=(d*pow(2,0.5))/(2*k);
        //cout<<temp<<ss;
        temp=pow((temp+1)*k,2)+pow(temp*k,2);
        if(temp>d*d) cout<<"Utkarsh"<<nn;
        else cout<<"Ashish"<<nn;
    }
}


#include<bits/stdc++.h>
using namespace std;

typedef long long int lli;
typedef vector<int> vi;
typedef vector<lli> vlli;
typedef vector<pair<int,int>> vii;
typedef vector<pair<lli,lli>> vllii;
typedef vector<vector<int>> vvi;

#define v2d(a,n,m) vector<vector<int>> a( n , vector<int> (m))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define IO freopen("in.txt","r",stdin); freopen("out.txt","w",stdout)
#define pb push_back
#define pf push_front
#define ub upper_bound
#define lb lower_bound
#define bs binary_search
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define all(a) (a).begin(),(a).end()
#define PI 3.141592653589793238
#define countset(x) __builtin_popcountll(x)
#define frr(i, a, b) for (int i = a; i <= b; i++)
#define frrd(i, a, b) for (int i = b; i >= a; i--)
#define trav(a,x) for (auto a : x)
char nn = '\n';
char ss = ' ';
const lli mod = 1e7;
lli n,m;

//*************************************************************************************************************

int main()
{
    IOS;
    #ifndef  ONLINE_JUDGE
    IO;
    #endif

    lli t = 1, i, h, j;
    bool f = true;
    string s;

    cin>>t;
    while(t--)
    {
        int d,k;
        int e=0,o=0;
        lli temp;
        cin>>d>>k;
        for(i=0;i<=d;i+=k)
        {
            temp=pow(d*d-i*i,0.5);
            temp=(temp)/k + i/k;
            if(temp%2==0) e++;
            else o++;
        }
        if(e>o) cout<<"Utkarsh"<<nn;
        else cout<<"Ashish"<<nn;
    }
}


#include <algorithm>
#include <vector>
#include <bits/stdc++.h>
#include <string.h>
#define pb push_back
#define mp make_pair
#define endl "\n"
//#define v(x) vector<x>
#define s(x) set<x>
#define a(x, n) array<x, n>
#define fi(s) for(auto itr = s.begin(); itr != s.end(); itr++)
#define ri(s) for(auto itr = s.rbegin(); itr != s.rend(); itr++)
typedef long long int ll ;
using namespace std;
inline void io(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
int main(){
    //io();
    ios_base::sync_with_stdio(false);
    cin.tie();
    cout.tie();
    cout << fixed << setprecision(8);
    ll t, n, m, s;
    cin>>t;
    while(t--) {
        int d, k;
        cin >> d >> k;
        int x = 0, y = 0;
        while(true) {
            if(x <= y && (x + k) * (x + k) + y * y <= d * d)
                x += k;
            else if(x > y && (y + k) * (y + k) + x * x <= d * d)
                y += k;
            else
                break;
        }
        if(x == y)
            cout << "Utkarsh" << endl;
        else
            cout << "Ashish" << endl;
    }
    return 0;
}


#include <algorithm>
#include <vector>
#include <bits/stdc++.h>
#include <string.h>
#define pb push_back
#define mp make_pair
#define endl "\n"
//#define v(x) vector<x>
#define s(x) set<x>
#define a(x, n) array<x, n>
#define fi(s) for(auto itr = s.begin(); itr != s.end(); itr++)
#define ri(s) for(auto itr = s.rbegin(); itr != s.rend(); itr++)
typedef long long int ll ;
using namespace std;
inline void io(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
int main(){
    //io();
    ios_base::sync_with_stdio(false);
    cin.tie();
    cout.tie();
    cout << fixed << setprecision(8);
    ll t, n, m, s;
    cin>>t;
    while(t--) {
        ll d, k;
        cin >> d >> k;
        ll x = 0, y = 0;
        while(true) {
            if(x <= y && (x + k) * (x + k) + y * y <= d * d)
                x += k;
            else if(x > y && (y + k) * (y + k) + x * x <= d * d)
                y += k;
            else
                break;
        }
        if(x == y)
            cout << "Utkarsh" << endl;
        else
            cout << "Ashish" << endl;
    }
    return 0;
}


#include <algorithm>
#include <vector>
#include <bits/stdc++.h>
#include <string.h>
#define pb push_back
#define mp make_pair
#define endl "\n"
//#define v(x) vector<x>
#define s(x) set<x>
#define a(x, n) array<x, n>
#define fi(s) for(auto itr = s.begin(); itr != s.end(); itr++)
#define ri(s) for(auto itr = s.rbegin(); itr != s.rend(); itr++)
typedef long long int ll ;
using namespace std;
inline void io(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
int main(){
    //io();
    ios_base::sync_with_stdio(false);
    cin.tie();
    cout.tie();
    cout << fixed << setprecision(8);
    ll t, n, m, s;
    cin>>t;
    while(t--) {
        int d, k;
        cin >> d >> k;
        ll x = 0, y = 0;
        while(true) {
            if(x <= y && (x + k) * (x + k) + y * y <= d * d)
                x += k;
            else if(x > y && (y + k) * (y + k) + x * x <= d * d)
                y += k;
            else
                break;
        }
        if(x == y)
            cout << "Utkarsh" << endl;
        else
            cout << "Ashish" << endl;
    }
    return 0;
}


#include <algorithm>
#include <vector>
#include <bits/stdc++.h>
#include <string.h>
#define pb push_back
#define mp make_pair
#define endl "\n"
//#define v(x) vector<x>
#define s(x) set<x>
#define a(x, n) array<x, n>
#define fi(s) for(auto itr = s.begin(); itr != s.end(); itr++)
#define ri(s) for(auto itr = s.rbegin(); itr != s.rend(); itr++)
typedef long long int ll ;
using namespace std;
inline void io(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
int main(){
    //io();
    ios_base::sync_with_stdio(false);
    cin.tie();
    cout.tie();
    cout << fixed << setprecision(8);
    ll t, n, m, s;
    cin>>t;
    while(t--) {
        ll d, k;
        cin >> d >> k;
        int x = 0, y = 0;
        while(true) {
            if(x <= y && (x + k) * (x + k) + y * y <= d * d)
                x += k;
            else if(x > y && (y + k) * (y + k) + x * x <= d * d)
                y += k;
            else
                break;
        }
        if(x == y)
            cout << "Utkarsh" << endl;
        else
            cout << "Ashish" << endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        ll temp=d*d;
        temp/=(k*k);
        ll curr=0;
        int ans;
        while(curr*curr<=temp)
        {
            ll y=sqrtl(temp-curr*curr);
            if((curr+y)%2==0)ans=1;
            if(curr==y){ans=1;break;}
            if(abs(curr-y)==1){ans=0;break;}
            ++curr;
        }

        if(ans==1)cout<<"Utkarsh"<<endl;
        else cout<<"Ashish"<<endl;
    }
    return 0;
}


//have fun
#include <bits/stdc++.h>
using namespace std;
#define ll 		long long
#define mod 	1000000007//998244353
#define mp 		make_pair
#define pb 		push_back
#define vi 		vector<int>
#define vl 		vector<ll>
#define pii 		pair<int,int>
#define pll 		pair<ll,ll>
#define vpi 		vector<pair<int,int> >
#define vpl		vector<pair<ll,ll> >
#define vvi 		vector<vector<int> >
#define vvl 		vector<vector<ll> >
#define ff 		first
#define ss 		second
#define FOREACH(i,t) 	for (auto i=t.begin(); i!=t.end(); i++)
#define all(x)		(x).begin(),(x).end()
#define forn(x,n) for(int x=0;x<n;x++)
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int zz=1;
    cin>>zz;
    for(int zzz=1;zzz<=zz;zzz++)
    {
        //cout<<"Case #"<<zzz<<": ";
        ll d,k;cin>>d>>k;
        ll temp=d*d;
        temp/=(k*k);
        ll curr=0;
        while((curr+1)*(curr+1)*2<=temp)
        {
            ++curr;
        }
        if((curr*curr)+((curr+1)*(curr+1))<=temp)
        {
            cout<<"Ashish"<<endl;
        }
        else cout<<"Utkarsh"<<endl;
    }
    return 0;
}