namespace std { template inline const T& min (const T& a, const T& b, Compare comp) { return comp(b,a) ? b : a; } template inline const T& max (const T& a, const T& b, Compare comp) { return comp(a,b) ? b : a; } }