import
java.util.*;
class
GFG{
static
int
minDifference(
int
X,
int
Y)
{
int
minDiff = Integer.MAX_VALUE;
String x = String.valueOf(X);
String y = String.valueOf(Y);
int
n = x.length();
int
[][]a =
new
int
[
2
][n];
for
(
int
i =
0
; i <
2
; i++) {
for
(
int
j =
0
; j < n; j++) {
if
(i ==
0
)
a[i][j] = x.charAt(j) -
'0'
;
else
a[i][j] = y.charAt(j) -
'0'
;
}
}
int
[]p =
new
int
[n];
for
(
int
i =
0
; i < n; i++)
p[i] = i;
do
{
int
xx = Integer.MIN_VALUE;
int
yy = Integer.MAX_VALUE;
for
(
int
i =
0
; i <
2
; i++) {
int
num =
0
;
for
(
int
j =
0
; j < n; j++)
num = num *
10
+ a[i][p[j]];
xx = Math.max(xx, num);
yy = Math.min(yy, num);
}
minDiff = Math.min(minDiff, xx - yy);
}
while
(next_permutation(p));
return
minDiff;
}
static
boolean
next_permutation(
int
[] p) {
for
(
int
a = p.length -
2
; a >=
0
; --a)
if
(p[a] < p[a +
1
])
for
(
int
b = p.length -
1
;; --b)
if
(p[b] > p[a]) {
int
t = p[a];
p[a] = p[b];
p[b] = t;
for
(++a, b = p.length -
1
; a < b; ++a, --b) {
t = p[a];
p[a] = p[b];
p[b] = t;
}
return
true
;
}
return
false
;
}
public
static
void
main(String[] args)
{
int
X =
37198
, Y =
44911
;
System.out.print(minDifference(X, Y));
}
}