var grid = require("fs").readFileSync("input.txt").toString().split("\n").map((a)=>(a.split(""))); var x = 163; var y = 0; var dirs = [[0, 1], [1, 0], [-1, 0], [0, -1]]; var dir = 0; var visited = []; var end = false; var letters = []; while(!end){ if(grid[y][x].match("[A-Z]")){ letters.push(grid[y][x]); } visited.push((y*201) + x); if(grid[y][x] == "+"){ var changed = false; var i = 0; while(!changed){ if(visited.indexOf(((y + dirs[i][1]) * 201) + (x + dirs[i][0])) == -1){ //not visited before if(grid[y+dirs[i][1]][x+dirs[i][0]] != " "){ //not empty changed = true; dir = i; } } i++; } } x += dirs[dir][0]; y += dirs[dir][1]; if(grid[y][x] == " "){ end = true; } } console.log(letters.join(""));