Data una lista di n interi, si richiede di rimuoverne uno in modo che il prodotto della sequenza risultante, preso modulo m, sia uguale a p. Più formalmente, se l’indice dell’elemento rimosso è r:
Il programma deve trovare l’indice di tale elemento oppure stampare Impossible se non esiste alcun valore che soddisfi la condizione.
Input (Dati in ingresso)
La prima riga dell’input contiene 3 interi n (1 ≤ n ≤ ), m (1 ≤ m ≤ ) e p (0 ≤ s < m).
La seconda riga contiene n interi separati da spazio, ( ≤ ≤ ).
Output (Dati in uscita)
Se non esiste alcun numero che soddisfi la condizione, il programma deve stampare Impossible; in caso contrario, deve stampare il più piccolo indice di un numero del genere nella lista. L’indicizzazione inizia da 1.
Esempi
Input
Output
3 8 5
5 0 9
2
3 8 5
5 10 7
Impossible
Spiegazione
5 * 9 = 45 ⇒ 45 mod 8 = 5 ⇒ è possibile rimuovere l’elemento con valore 0 in posizione 2.
Non è possibile rimuovere alcun elemento per far sì che il prodotto dell’array risultante modulo 8 sia 5.