“Натуральные числа”

Найти все натуральные числа, не превосходящие заданного N, десятичная запись которых есть строго возрастающая или строго убывающая последовательность цифр.

“Преобразование матрицы”

Дана матрица (таблица) А из N строк и M столбцов (2<N,M<12). Элементы матрицы равны 0 или 1. Разрешенная операция - перестановка столбцов. Преобразовать матрицу А так, чтобы первыми в ней были столбцы с единицей в первой строке, затем столбцы с единицей во второй строке (если такие есть) и т. д.
Дополнительную матрицу вводить не разрешается
Пример.
0 1 0 1 0 0    1 1 0 0 0 0
1 0 0 1 0 0    1 0 1 0 0 0
1 1 1 1 0 0    1 1 1 1 0 0
1 0 0 0 1 1    0 0 1 0 1 1
0 0 1 0 0 1    0 0 0 1 0 1

“Скобочные выражения”

Исходные данные - строка (не более 254 символов) из круглых скобок и знаков вопроса. Данные корректны. Составьте программу, печатающую все правильные скобочные выражения, которые можно восстановить из входной строки заменой знаков вопроса на скобки, либо сообщающую, что решения нет.
Пример 1. Исходная строка: ((??)?
Вывод программы: ((()))
(()())
Пример 2. Исходная строка: )?
Вывод программы: восстановить невозможно.