#include #define MAX 100000 int N[ MAX ]; int main( void ) { int pocet; int i; int j, k, tmp; while ( 1 ) { scanf( "%d", &pocet ); if ( !pocet ) return 0; for ( i = 0; i < pocet; i++ ) { scanf( "%d", N + i ); } for ( i = 0; i < (pocet - 2 ) ; i++ ) { if ( N[ i ] != ( i + 1 ) ) { j = i + 1; while ( N[ j ] != ( i + 1 ) ) j++; if ( j == ( N[ i ] - 1 ) ) { if ( i == ( pocet - 3 ) ) { N[ pocet - 1 ] = 0; break; } if ( j != ( pocet - 1 ) ) k = j + 1; else k = j - 1; tmp = N[ i ]; N[ i ] = N[ j ]; N[ j ] = N[ k ]; N[ k ] = tmp; } else { k = N[ i ] - 1; tmp = N[ i ]; N[ i ] = N[ j ]; N[ j ] = N[ k ]; N[ k ] = tmp; } } } if ( N[ pocet - 1 ] != pocet ) { printf( "Matfyzacci maji smulu.\n" ); } else { printf( "Permutaci lze provest.\n" ); } } }