// Overloaded max() functions
#include <iostream>
using namespace std;

int max(int x, int y) {
  return (x>y ? x:y);
}

int max(int x, int y, int z) {
  int m = (x>y ? x:y);
  return (z>m ? z:m);
}

double max(double x, double y) {
  return (x>y ? x:y);
}

double max(double x, double y, double z) {
  double m = (x>y ? x:y);
  return (z>m ? z:m);
}

int main()
{
  cout << "max(9,7) = " << max(9,7) << endl;
  cout << "max(3,6,2) = " << max(3,6,2) << endl;
  cout << "max(3.1,4.7) = " << max(3.1,4.7) << endl;
  cout << "max(3.1,9.3,4.7) = " << max(3.1,9.3,4.7) << endl;

  return 0;
}
