D - Dos cadenas

Languages: C, C++, Java, Tiger, Python, Pascal, JavaScript, Haskell, C#
Time & Memory limits: (details)

Un corrimiento cíclico de la cadena s = s 0 s 1 …s n - 1 por k posiciones es la cadena s = s k s k+1 …s n-1 s 0 s 1 s k-1 . Por ejemplo, el corimiento cíclico de la cadena "abcde" por 2 posiciones es la cadena "cdeab". En este problema vamos a considerar solamente cadenas compuestas por dígitos [0-9]. Si una cadena s tiene el primer caracter diferente de 0, entonces ella representa al número cuya representación decimal es igual a ella. Una cadena que comienza en 0 no represenata a ningún número. Por ejemplo, la cadena "123" representa al número 123 mientras que la cadena "0123" no representa ningún número.

Sean s y t dos cadenas, denotemos por S al conjunto de todos los corrimientos cíclicos de s, y por T al conjunto de todos los corrimientos cíclicos de t. For ejemplo, if s = "1234" entonces S continene las cadenas "1234", "2341", "3412", "4123". Denotemos como NUM(A) al conjunto de los números que corresponden a las cadenas del conjunto A.

Tu tarea consiste en escribir un programa que dadas s y t, determine el máximo valor que es puede representar como la diferencia x - y, donde x pertenece a NUM(S) y y pertencece a NUM(T).

Por ejemplo, si s = "25" y t = "12", NUM(S) contiene los números 25 y 52, y NUM(T) contiene los números 12 y 21, todos los pares que se pueden formar son 25 - 12 = 13, 25 - 21 = 4, 52 - 12 = 40 y 52 - 21 = 31. De todas estas, la mayor diferencia es 40.

Input

La primera línea contiene la cadena s y la segunda contiene la cadena t. Ambas son cadenas no vacías, contienen solamente números de los cuales al menos uno es diferente de 0, y tienen un tamaño máximo de 3000 caracteres.

Output

La salida debe contener el número deseado sin zeros innecesarios al principio.

Sample test(s)

Input
25 12
Output
40
Input
100 1
Output
99