#include <algorithm>

using namespace std;

template<typename T>
T median(T a, T b, T c) {
    return max(max(min(a,b), min(a,c)), min(b,c));
}



int mediana(int a, int b, int c) {
    if(a > b) {
        if(b > c)
            return b;
        else if(a > c)
            return c;
        else
            return a;
    } else {
        if(b < c)
            return b;
        else if (a > c)
            return a;
        else
            return c;
    }
}

#include <iostream>



int main() {
    cout << mediana(1,2,3) << endl;
    cout << mediana(1,3,2) << endl;
    cout << mediana(2,1,3) << endl;
    cout << mediana(2,3,1) << endl;
    cout << mediana(3,1,2) << endl;
    cout << mediana(3,2,1) << endl;
    cout << endl;

    cout << median(1,2,3) << endl;
    cout << median(1,3,2) << endl;
    cout << median(2,1,3) << endl;
    cout << median(2,3,1) << endl;
    cout << median(3,1,2) << endl;
    cout << median(3,2,1) << endl;
    return 0;
}
