exercise on xor swap