Нехай числовий запис визначається за такими правилами.
<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>
Напишіть програму, яка визначить, чи є заданий рядок числовим записом. Якщо це не числовий запис, програма повинна визначити номер першої позиції, де порушені наведені правила.
Довжина вхідного рядка не перевищує .
Єдиний рядок, який потрібно перевірити.
Якщо рядок є числовим записом, виведіть рядок Correct. Інакше виведіть текст The first mistake in position, після якого через пробіл вкажіть номер першої позиції, де рядок не відповідає числовому запису (позиції нумеруються зліва направо, починаючи з ).
Приклад 1
Приклад 2
Приклад 3
Приклад 4