var items = "abcdefghijklmnop".split(""); s = (i) => {items = items.splice(-i).concat(items);} x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]} p = (a,b) => {x(items.indexOf(a), items.indexOf(b))} var input = require("fs").readFileSync("input.txt").toString().replace("\n", ""); var input = "," + input + ","; var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ","); expr = expr.substring(2); var state = ""; var states = []; while(states.indexOf(state) == -1){ states.push(state); eval(expr); state = items.join(""); } states = states.filter((a)=>(a)); var num = 1000000000; console.log(states[(num-1)%states.length]);