import
java.util.*;
public
class
GFG {
public
static
void
main(String[] args)
{
int
A[] = {
3
,
4
,
5
,
2
,
1
};
int
N = A.length;
int
X =
5
;
int
odd =
0
;
int
even =
0
;
for
(
int
i =
0
; i < N; i++) {
if
((A[i] &
1
) ==
1
)
odd++;
else
even++;
}
int
a = OddByFunction1(odd, even, N, X);
int
b = EvenByFunction1(odd, even, N, X);
int
c = EvenByFunction2(odd, even, N, X);
int
d = OddByFunction2(odd, even, N, X);
if
(a == Integer.MAX_VALUE && b == Integer.MAX_VALUE
&& c == Integer.MAX_VALUE
&& d == Integer.MAX_VALUE)
System.out.println(
"Not Possible"
);
else
System.out.print(
Math.min(a, Math.min(b, Math.min(c, d))));
}
static
int
OddByFunction1(
int
odd,
int
even,
int
N,
int
X)
{
if
(odd == N)
return
0
;
else
if
(even == N)
return
(X %
2
==
1
? (even %
2
==
0
? even /
2
: Integer.MAX_VALUE)
: Integer.MAX_VALUE);
else
return
(X %
2
==
1
? (even %
2
==
0
? even /
2
: Integer.MAX_VALUE)
: even);
}
static
int
EvenByFunction1(
int
odd,
int
even,
int
N,
int
X)
{
if
(even == N)
return
0
;
else
if
(odd == N)
return
(X %
2
==
1
? (odd %
2
==
0
? (odd /
2
)
: +(odd /
2
) +
1
)
: Integer.MAX_VALUE);
else
return
(X %
2
==
1
? (odd %
2
==
0
? (odd /
2
)
: +(odd /
2
) +
1
)
: Integer.MAX_VALUE);
}
static
int
EvenByFunction2(
int
odd,
int
even,
int
N,
int
X)
{
if
(even == N)
return
0
;
else
if
(odd == N)
return
(X %
2
==
1
? Integer.MAX_VALUE
: (odd %
2
==
0
? odd /
2
: Integer.MAX_VALUE));
else
return
(X %
2
==
1
? Integer.MAX_VALUE
: (odd %
2
==
0
? odd /
2
: Integer.MAX_VALUE));
}
static
int
OddByFunction2(
int
odd,
int
even,
int
N,
int
X)
{
if
(odd == N)
return
0
;
else
if
(even == N)
return
(X %
2
==
1
? (even %
2
==
0
? (even /
2
)
: (even /
2
) +
1
)
: Integer.MAX_VALUE);
else
return
(X %
2
==
1
? (even %
2
==
0
? (even /
2
)
: (even /
2
) +
1
)
: even);
}
}