//indicimax.cpp

#include <iostream.h>

// legge Nr * Nc valori e li memorizza nell'array m
void LeggiArray(int** m, Int Nr, int Nc)
{ cout << "Inserisci " << Nr * Nc << " numeri interi >" << endl;
  for (int i = 0; i < Nr; i++)
     for (int j = 0; j < Nc; j++)
 	 cin >> m[i][j];
}

// calcola gli indici dell'elemento con valore massimo memorizzato in m;
// se ci sono piu' elementi con lo stesso valore massimo, restituisce gli
// indici di quello nella riga di indice piu' basso e, nell'ambito della 
// stessa riga, nella colonna di indice piu' basso
void IndiciDelMassimo(int** m, int Nr, int Nc, int& i_max, int& j_max)
{ i_max = 0;
  j_max = 0;
  for (int i = 0; i < Nr; i++)
     for (int j = 0; j < Nc; j++)
        if (m[i][j] > m[i_max][j_max]) 
	{ i_max = i; j_max = j; }
}

void main()
{ int NumRighe, NunColonne;
  // Lettura del numero di righe e colonne della matrice
  cin >> NumRighe >> NumColonne;
  // Allocazione della matrice
  int** mat = new int*[NumRighe];
  for (int i = 0; i < NumRighe; i = i +1)
     m[i] = new int[NumColonne];
  // Lettura della matrice
  LeggiArray(mat, NumRighe, NumColonne);
  int RigMax, ColMax;
  // Calcolo degli indici del massimo
  IndiciDelMassimo(mat, NumRighe, NumColonne, RigMax, ColMax);
  // Stampa degli indici del massimo
  cout >> RigMax >> Colmax >> endl;
}
