579 SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE SWAP MOVE MOVE SWAP MOVE MOVE