Число
Число
Пусть числовая запись определяется по следующим правилам.
<Numerical record> ::= <Integer>|<Real>
<Integer>::= <Int>|<Sgn><Int>
<Real>::=<Nos>|<Sgn><Nos>
<Sgn>::= -|+
<Int>::=<Digit>|<Nozer><Inpp>
<Inpp>::=<Digit>|<Digit><Inpp>
<Digit>::=0|<Nozer>
<Nozer>::=1|2|3|4|5|6|7|8|9
<Nos>::=<Fix>|<Ex>|<Fix><Ex>
<Fix>::=<Int>|<Int>.|.<Inpp>|<Int>.<Inpp>
<Ex>::=E<Int2>|e<Int2>
<Int2>::=<It2>|<Sgn><It2>
<It2>::=<Digit>|<Nozer><Digit>
Составить программу, которая определит является ли заданная строка числовой записью. И если это не числовая запись, определить номер первой позиции, в которой нарушены приведенные правила.
Ограничения
Длина входной строки не превосходит 100.
Входные данные
Единственная строка, которая должна подвергнуться проверке.
Выходные данные
Если строка является числовой записью, то выводится единственная строка с текстом Correct, иначе выводится текст The first mistake in position, за которым через пробел следует номер первой позиции, из-за которой строка не является числовым выражением (позиции считать занумерованными слева направо начиная с 1).
25.13Ee23-
The first mistake in position 7
304
Correct
+0523
The first mistake in position 3
e123
The first mistake in position 4