Package for this problem was not updated by the problem writer or Codeforces administration after we’ve upgraded the judging servers. To adjust the time limit constraint, solution execution time will be multiplied by 2. For example, if your solution works for 400 ms on judging servers, then value 800 ms will be displayed and used to determine the verdict.

No tag edit access

E. Polo the Penguin and Lucky Numbers

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputEverybody knows that lucky numbers are positive integers that contain only lucky digits 4 and 7 in their decimal representation. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Polo the Penguin have two positive integers *l* and *r* (*l* < *r*), both of them are lucky numbers. Moreover, their lengths (that is, the number of digits in the decimal representation without the leading zeroes) are equal to each other.

Let's assume that *n* is the number of distinct lucky numbers, each of them cannot be greater than *r* or less than *l*, and *a*_{i} is the *i*-th (in increasing order) number of them. Find *a*_{1}·*a*_{2} + *a*_{2}·*a*_{3} + ... + *a*_{n - 1}·*a*_{n}. As the answer can be rather large, print the remainder after dividing it by 1000000007 (10^{9} + 7).

Input

The first line contains a positive integer *l*, and the second line contains a positive integer *r* (1 ≤ *l* < *r* ≤ 10^{100000}). The numbers are given without any leading zeroes.

It is guaranteed that the lengths of the given numbers are equal to each other and that both of them are lucky numbers.

Output

In the single line print a single integer — the answer to the problem modulo 1000000007 (10^{9} + 7).

Examples

Input

4

7

Output

28

Input

474

777

Output

2316330

Codeforces (c) Copyright 2010-2019 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Oct/18/2019 18:09:01 (f2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|