import
java.util.Arrays;
public
class
MinimalReplacements {
static
int
charVal(String s,
int
i) {
if
(s.charAt(i) ==
'0'
)
return
0
;
else
if
(s.charAt(i) ==
'1'
)
return
1
;
else
return
2
;
}
static
int
countMinimalReplacements(String s,
int
n) {
int
[][] dp =
new
int
[n][
3
];
for
(
int
i =
0
; i < n; i++) {
Arrays.fill(dp[i], -
1
);
}
int
val = charVal(s,
0
);
dp[
0
][val] =
0
;
for
(
int
i =
1
; i < n; i++) {
int
curVal = charVal(s, i);
for
(
int
prev =
0
; prev <=
2
; prev++) {
if
(dp[i-
1
][prev] == -
1
)
continue
;
if
(curVal == prev) {
for
(
int
cur =
0
; cur <=
2
; cur++) {
if
(cur == prev)
continue
;
int
newVal = dp[i-
1
][prev] +
1
;
if
(dp[i][cur] == -
1
|| newVal < dp[i][cur]) {
dp[i][cur] = newVal;
}
}
}
else
{
int
newVal = dp[i-
1
][prev];
if
(dp[i][curVal] == -
1
|| newVal < dp[i][curVal]) {
dp[i][curVal] = newVal;
}
}
}
}
int
ans = Integer.MAX_VALUE;
for
(
int
cur =
0
; cur <=
2
; cur++) {
if
(dp[n-
1
][cur] == -
1
)
continue
;
ans = Math.min(ans, dp[n-
1
][cur]);
}
return
ans;
}
public
static
void
main(String[] args) {
String s =
"201220211"
;
int
n = s.length();
System.out.println(countMinimalReplacements(s, n));
}
}