// 分からないので解説を見た #include using namespace std; using ll = long long; template istream& operator >> (istream& is, vector& vec) { for(T& x : vec) is >> x; return is; } bool solve(){ int n, k, x; cin >> n >> k >> x; vector h(n); vector sv(k); cin >> h; for(int i = 0; i + 1 < n; i++){ int d = h[i + 1] - h[i]; if(d % x != 0) return false; sv[(i + 1) % k] += d; } sv[0] = min(0ll, sv[0]), sv[n % k] = max(0ll, sv[n % k]); return count(sv.begin(), sv.end(), 0) == k; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int T; cin >> T; while(T--) cout << (solve() ? "Yes" : "No") << '\n'; }