import
java.util.*;
public
class
MapPr {
static
char
[] next_permutation(
char
[] arr)
{
int
n = arr.length;
int
k = n -
2
;
while
(k >=
0
) {
if
(arr[k] < arr[k +
1
])
break
;
k -=
1
;
}
int
l;
if
(k <
0
)
Collections.reverse(Arrays.asList(arr));
else
{
for
(l = n -
1
; l > k; l--) {
if
(arr[l] > arr[k])
break
;
}
char
temp = arr[l];
arr[l] = arr[k];
arr[k] = temp;
}
int
mid = (k +
1
) + (arr.length - k -
1
) /
2
;
int
pos = arr.length -
1
;
for
(
int
i = k +
1
; i < mid; i++) {
char
temp = arr[i];
arr[i] = arr[pos];
arr[pos--] = temp;
}
return
arr;
}
static
int
CountSteps(
char
[] s1,
char
[] s2,
int
size)
{
int
i =
0
;
int
j =
0
;
int
result =
0
;
while
(i < size) {
j = i;
while
(s1[j] != s2[i])
j +=
1
;
while
(i < j) {
char
temp = s1[j];
s1[j] = s1[j -
1
];
s1[j -
1
] = temp;
j -=
1
;
result +=
1
;
}
i +=
1
;
}
return
result;
}
static
int
swapDigits(
int
N,
int
K)
{
char
[] st = (String.valueOf(N)).toCharArray();
char
[] st2 = (String.valueOf(N)).toCharArray();
Arrays.sort(st);
Arrays.sort(st2);
String st2s =
new
String(st2);
int
ans = Integer.MAX_VALUE;
while
(
true
) {
st = next_permutation(st);
String sts =
new
String(st);
int
sti = Integer.parseInt(sts);
if
(sti % K ==
0
) {
ans = Math.min(
ans,
CountSteps(
(String.valueOf(N)).toCharArray(),
st, st.length));
}
if
(sts.equals(st2s))
break
;
}
return
ans;
}
public
static
void
main(String[] args)
{
int
N =
10203456
;
int
K =
100
;
System.out.println(swapDigits(N, K));
}
}