#define SWAP(x, y) do { x^=y; y^=x; x^=y; } while (0)