# Codeforces Round #104 (Div.2)补题报告

Petya loves lucky numbers very much. Everybody knows that lucky numbers are positive integers whose decimal record contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Petya calls a mask of a positive integer n the number that is obtained after successive writing of all lucky digits of number n from the left to the right. For example, the mask of number 72174994 is number 7744, the mask of 7 is 7, the mask of 9999047 is 47. Obviously, mask of any number is always a lucky number.

Petya has two numbers — an arbitrary integer a and a lucky number b. Help him find the minimum number c (c?>?a) such that the mask of number c equals b.

Input

The only line contains two integers a and b (1?≤?a,?b?≤?105). It is guaranteed that number b is lucky.

Output

In the only line print a single number — the number c that is sought by Petya.

Examples

Input
`1 7`

Output
`7`

Input
`100 47`

Output
`147解题思路：从a开始遍历直到找到c，使c从左读到右的幸运数的组合数等于b，利用string的begin和end函数和reverse函数反转string.`
`ac代码：`  ```#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string ret;
while(a){
if(a%10==4||a%10==7) {
ret+=((a%10)+‘0‘);
}
a/=10;
}
reverse(ret.begin(),ret.end());
return ret;
}
int main()
{
int a;
string b;
cin>>a>> b;
int res= a + 1;
res++;
}
cout<<res<<endl;
return 0;
}```

View Code

## D - Lucky Number 2

Petya loves lucky numbers very much. Everybody knows that lucky numbers are positive integers whose decimal record contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

Petya loves long lucky numbers very much. He is interested in the minimum lucky number d that meets some condition. Let cnt(x) be the number of occurrences of number x in number d as a substring. For example, if d?=?747747, then cnt(4)?=?2, cnt(7)?=?4, cnt(47)?=?2, cnt(74)?=?2. Petya wants the following condition to fulfil simultaneously: cnt(4)?=?a1cnt(7)?=?a2cnt(47)?=?a3cnt(74)?=?a4. Petya is not interested in the occurrences of other numbers. Help him cope with this task.

Input

The single line contains four integers a1a2a3 and a4 (1?≤?a1,?a2,?a3,?a4?≤?106).

Output

On the single line print without leading zeroes the answer to the problem — the minimum lucky number d such, that cnt(4)?=?a1cnt(7)?=?a2cnt(47)?=?a3cnt(74)?=?a4. If such number does not exist, print the single number "-1" (without the quotes).

Examples

Input
`2 2 1 1`

Output
`4774`

Input
`4 7 3 1`

Output
`-1解题思路：`

`ac代码：`  ```#pragma comment(linker,"/STACK:1024000000,1024000000")
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<map>
#include<cmath>
#include<vector>
using namespace std;
#define pf printf
#define sf scanf
#define for1(i,a) for(int (i)=1;(i)<=(a);(i)++)
int a,b,c,d;

int main()
{
cin>>a>>b>>c>>d;
if(abs(c-d)>1||a+b<=c+d||a<c||b<d||a<d||b<c)
{
puts("-1");
}
else if(c>d)
{
a=a-d,b=b-d;
for1(i,a)pf("4");
for1(i,d)pf("74");
for1(i,b)pf("7");
puts("");
}
else if(c==d)
{
if(a>c)
{
a-=1+c;
b-=c;
for1(i,a)pf("4");
for1(i,c)pf("47");
for1(i,b)pf("7");
pf("4");
puts("");
}
else
{
b-=1+c;
pf("7");
for1(i,c)pf("47");
for1(i,b)pf("7");
puts("");
}
}
else
{
a-=c+1,b-=c+1;
pf("7");
for1(i,a)pf("4");
for1(i,c)pf("47");
for1(i,b)pf("7");
pf("4");
puts("");
}
return 0;
}```

View Code

Codeforces Round #104 (Div.2)补题报告