Consider the infinite x$x$ axis. There are N$N$ impacts on this X-axis at integral points (X1$X_1$,X2$X_2$,....XN$X_N$)  (all distinct) . An impact at a point X$X$i propagates such that at a point X$X$0, the effect of the impact is K|Xi−X0|$K^{|X_i - X_0|}$. Given the point X0$X_0$, N$N$ and K$K$. Assume the total impact on X0$X_0$ is M$M$, find if it is possible to do so.Note: You are not required to find the set X

Formally print "yes" if this is possible and "no" if not possible.

-----Input:-----
- First line will contain T$T$, number of testcases. Then the testcases follow. 
-  Each testcase contains of a single line of input, four integers N$N$,K$K$,M$M$,X$X$0 

-----Output:-----
-  The output of each test case is either "yes" or "no"

-----Constraints -----
-  1≤T≤1000$1\leq T \leq 1000$
-  1≤N≤100$1\leq N \leq 100$
-  1≤K≤1000$1\leq K \leq 1000$
-  1≤M≤1018$1\leq M \leq 10^{18}$
-  −109≤X0≤109$-10^9 \leq X_0 \leq 10^9$ 

-----Sample Input:-----
	2

4 3 10 10

2 3 10 10

-----Sample Output:-----
	no

yes

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = 'from math import log\ntry:\n    for i in range (int(input())):\n        a = input().split(" ")\n        n,k,x,m = map(int,a)\n        ans = "no"\n        u = 0\n    \n        if k != 2 and k != 1:\n            if x%k == 0:\n                x //= k\n                u = -1\n            elif x%k == 1:\n                n -= 1\n                x //= k\n                u = -1\n    \n            if u == -1:     \n                while x != 0:\n                    if x%k == 0:\n                        x //= k\n                    elif x%k == 1:\n                        x //= k\n                        n -= 1\n                    elif x%k == 2:\n                        x //= k\n                        n -= 2\n                    else:\n                        break\n    \n            if n == 0 and x == 0:\n                ans = "yes"\n    \n        elif k == 1:\n            if x == n:\n                ans = "yes"\n    \n        else:\n            lst = []\n            p = 0\n            N = n\n            while x != 0:\n                if x%2 == 0:\n                    x //= 2\n                    p += 1\n                elif x%2 == 1:\n                    x //= 2\n                    n -= 1\n                    p += 1\n                    lst.append(2**(p-1))\n    \n            if len(lst) == N:\n                ans = "yes"\n                \n            if len(lst) < N:\n                k = 0\n                g = len(lst)\n                if lst[0] > 2:\n                    g += int(log(lst[0])//log(2))-1\n                    k = 1\n                for i in range(1,len(lst)):\n                    if k == 1:\n                        g += int(log(lst[i]//lst[i-1],2))\n                    elif lst[i] > 2*lst[i-1]:\n                        g += int(log(lst[i]//lst[i-1],2))-1\n                        k = 1\n                    else:\n                        k = 0\n                if g >= N:\n                    ans = "yes"\n    \n        print(ans)\nexcept EOFError as e : pass\n    '
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 14009