“Проход из левого нижнего угла в правый верхний”

Доска 8*8 раскрашена в два цвета: белый и черный. Необходимо пройти из левого нижнего угла в правый верхний так, чтобы цвета клеток перемежались. За один ход разрешается перемещаться на одну клетку по вертикали или горизонтали.
Программа должна (если путь существует):
• находить хотя бы один путь;
• находить путь минимальной длины.

“Неотрицательные суммы”

Дана матрица N*N(N<=10), состоящая из целых чисел. За одну операцию разрешается изменить знаки всех чисел произвольно выбранной строки или столбца на противоположные. Требуется сделать суммы чисел во всех строках и столбцах неотрицательными.
Программа должна ввести матрицу и вывести в качестве результата последовательность операций. Количество операций должно быть минимальным.