class
GFG {
static
void
MinimumSwapOperations(String s)
{
boolean
zero_exist =
false
;
boolean
multiple_of_2 =
false
;
int
sum =
0
;
int
index_of_zero =
0
;
boolean
more_zero =
false
;
for
(
int
i =
0
; i < s.length(); i++) {
int
val = s.charAt(i) -
'0'
;
if
(zero_exist ==
true
)
more_zero =
true
;
if
(val ==
0
) {
zero_exist =
true
;
index_of_zero = i;
}
sum += val;
}
if
(zero_exist ==
false
|| sum %
3
!=
0
) {
System.out.println(
"-1"
);
return
;
}
for
(
int
i =
0
; i < s.length(); i++) {
int
val = s.charAt(i) -
'0'
;
if
(val %
2
==
0
&& i != index_of_zero)
multiple_of_2 =
true
;
}
if
(multiple_of_2 ==
false
) {
System.out.println(
"-1"
);
return
;
}
int
last_val = s.charAt(s.length() -
1
)-
'0'
;
int
second_last_val = s.charAt(s.length() -
2
)-
'0'
;
if
(last_val ==
0
&& second_last_val %
2
==
0
)
System.out.println(
0
);
else
if
((last_val ==
0
&& second_last_val %
2
!=
0
)
|| (last_val %
2
==
0
&& second_last_val ==
0
))
System.out.println(
1
);
else
if
(more_zero ==
true
&& (last_val ==
0
&& second_last_val %
2
!=
0
))
System.out.println(
1
) ;
else
System.out.println(
2
) ;
}
public
static
void
main (String[] args)
{
String N =
"20"
;
MinimumSwapOperations(N);
}
}