function move(cmd, rope, tailPositions) {
const magnitude = Number(cmd.slice(2));
const dirVector = {
U: [0, 1],
D: [0, -1],
L: [-1, 0],
R: [1, 0]
};
const step = dirVector[cmd[0]];
for (let i = 0; i < magnitude; i++) {
AOC.overwrite(rope, AOC.vAdd(rope, step));
for (let j = 2; j < rope.length; j += 2) {
const v = offset(rope.slice(j - 2, j + 2));
AOC.overwrite(rope, AOC.vAdd([rope[j], rope[j + 1]], v), j);
}
tailPositions.add(rope[rope.length - 2] + "," + rope[rope.length - 1]);
}
return tailPositions;
}