#define min(a, b) (a < b ? a : b)
#define max(a, b) (a > b ? a : b)
#define sgn(x) (x > 0 ? 1 : -1)
#define abs(x) (x > 0 ? x : -x)
#define minmod(x, y) (sgn(x) * max(0, min(abs(x), y * sgn(x))))
