335. Self Crossing (Hard)