import
java.io.*;
import
java.util.*;
public
class
GFG {
public
static
int
cnt =
0
;
public
static
String asc(String str)
{
char
temp;
char
[] charArray = str.toCharArray();
for
(
int
i =
1
; i < charArray.length; i++) {
for
(
int
j =
0
; j < charArray.length -
1
; j++) {
if
(charArray[j] > charArray[j +
1
]) {
temp = charArray[j];
charArray[j] = charArray[j +
1
];
charArray[j +
1
] = temp;
}
}
}
return
new
String(charArray);
}
public
static
String desc(String str)
{
char
temp;
char
[] charArray = str.toCharArray();
for
(
int
i =
1
; i < charArray.length; i++) {
for
(
int
j =
0
; j < charArray.length -
1
; j++) {
if
(charArray[j] < charArray[j +
1
]) {
temp = charArray[j];
charArray[j] = charArray[j +
1
];
charArray[j +
1
] = temp;
}
}
}
return
new
String(charArray);
}
public
static
boolean
isValid(String number,
int
n)
{
Set<Character> freq =
new
HashSet<Character>();
for
(
int
i =
0
; i < n; i++)
freq.add(number.charAt(i));
return
freq.size() >=
2
?
true
:
false
;
}
public
static
int
noofRoutines(String number,
int
n)
{
if
((!isValid(number, n) || n >
4
) && cnt ==
0
)
return
-
1
;
else
if
(Integer.parseInt(number) ==
6174
)
return
cnt;
cnt++;
while
(n++ <
4
)
number =
'0'
+ number.substring(
1
);
String number2 = number;
number = asc(number);
number2 = desc(number2);
int
increasing = Integer.parseInt(number);
int
decreasing = Integer.parseInt(number2);
String resstr = Integer.toString(Math.abs(increasing - decreasing));
return
noofRoutines(resstr, resstr.length());
}
public
static
void
main (String[] args) {
String number =
"9831"
;
int
n = number.length();
System.out.println(noofRoutines(number, n));
}
}