template<typename T> T Max(T x, T y, T z) { return x > y ? (x > z ? x : z) : (y > z ? y : z); } template<typename T> T Min(T x, T y, T z) { return x < y ? (x < z ? x : z) : (y < z ? y : z); }