Let the numerical record be defined by the following rules:
<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>
Write a program that determines whether a given string is a numerical record. If it is not a numerical record, identify the position of the first violation of the given rules.
The length of the input string does not exceed .
A single string that needs to be checked.
If the string is a numerical record, output a single line with the text Correct; otherwise, output the text The first mistake in position, followed by the number of the first position where the string fails to be a numerical expression (positions are numbered from left to right starting with ).
Example 1
Example 2
Example 3
Example 4