a, b = map(int, input().split())
ans = -1
a = str(a)
def go(l):
global ans
if len(l) == len(a):
if int(l) < b:
ans = max(ans, int(l))
return
for i in a:
if i not in l:
go(l + i)
for i in a:
if i != '0':
go(i)
print(ans)
다른 인덱스를 가진 같은 숫자가 있을 수 있음 -> 인덱스로 접근해줌
a, b = map(int, input().split())
ans = -1
a = str(a)
def go(l, used):
global ans
if len(l) == len(a):
if int(l) < b:
ans = max(ans, int(l))
return
for i in range(len(a)):
if i not in used:
go(l + a[i], used+[i])
# 처음에 0이 들어갈 수 없음
for i in range(len(a)):
if a[i] != '0':
go(a[i], [i])
print(ans)