circularShift = {
const reverseSlice = function reverseSlice(A, start, end) {
for (let i = 0; i < (end - start) >>> 1; ++i) {
const x = A[start+i];
A[start+i] = A[end-i-1];
A[end-i-1] = x;
}
return A;
}
return function circularShift(A, k) {
const n = A.length;
k = (k % n + n) % n;
reverseSlice(A, 0, n);
reverseSlice(A, 0, k);
reverseSlice(A, k, n);
return A;
}
}