# Работа с элементами матрицы.

# На вход программе подаётся матрица D(M,N), где M<=9 и N<=8, а затем в каждой
# строке находится минимальное число и записывается в массив G. После в массиве
# G меняются местами 1-й и последний положительные элементы, а если таких нет,
# то выводит сообщение.

# Переменные:
#           m,n   - Количество строк и столбцов;
#           D     - Исходная матрица;
#           G     - Массив состоящий из минимальных элементов матрицы;
#           min   - Минимальный элемент в каждой строке;
#           i,j   - Счётчики для циклов for;
#           p1,p2 - Первый и последний положительный элемент соответственно;

m,n=map(int,input('Введите количество строк и столбцов в матрице: ').split())
D=[[float(j) for j in input('Введите элементы {}-й строки: '.format(i+1))
    .split()] for i in range(m)]

G=[];  f=0
p1=-1; p2=-1

for i in range(m):
    if len(D[i])!=n:
        print('\nВведено неправильное количество элементов.')
        f=1
        break
    else:
        min=D[i][0]
        for j in range(n):
            if D[i][j]<min:
                min=D[i][j]
        G.append(min)
        if G[len(G)-1]>0:       # Поиск последнего положительного элемента.
            p2=len(G)-1

if f==0:        
    for i in range(len(G)):         # Поиск первого положительного элемента.
        if G[i]>0:
            p1=i
            break
    
    if p1!=-1 and p2!=-1:
        G[p1],G[p2]=G[p2],G[p1]
    elif p1!=-1 or p2!=-1:
        print('\nВ массиве G только один положительный элемент.')
    else:
        print('\nВ массиве G нет ни одного положительного элемента.')
    print('\nСформированный массив G:',G)

    for i in range(len(D)):
        print('\t'.join(map(str,D[i])))
input('\nНажмите Enter для завершения.')


