function dance(progText) {
let programs = [...progText];
for (let [cmd, args] of moves) {
switch (cmd) {
case "s":
const offset = 16 - Number(args[0]);
programs = [...programs.slice(offset), ...programs.slice(0, offset)];
break;
case "x":
const [posA, posB] = args.map(Number);
[programs[posA], programs[posB]] = [programs[posB], programs[posA]];
break;
case "p":
const [progA, progB] = args;
const [iA, iB] = [programs.indexOf(progA), programs.indexOf(progB)];
[programs[iA], programs[iB]] = [programs[iB], programs[iA]];
break;
}
}
return programs.join("");
}