import
java.util.*;
class
GFG{
public
static
char
[] reverse(
char
[]str)
{
char
[] temp =
new
char
[str.length];
for
(
int
i =
0
; i < str.length; i++)
temp[str.length - i -
1
] = str[i];
return
temp;
}
static
char
[] subtract(
char
[] str1,
char
[] str2)
{
String res =
""
;
int
n1 = str1.length;
int
n2 = str2.length;
str1 = reverse(str1);
str2 = reverse(str2);
int
carry =
0
;
for
(
int
i =
0
; i < n2; i++)
{
int
subst = ((str1[i] -
'0'
) -
(str2[i] -
'0'
) - carry);
if
(subst <
0
)
{
subst = subst +
10
;
carry =
1
;
}
else
carry =
0
;
res = res + (subst);
}
for
(
int
i = n2; i < n1; i++)
{
int
subst = ((str1[i] -
'0'
) - carry);
if
(subst <
0
)
{
subst = subst +
10
;
carry =
1
;
}
else
carry =
0
;
res += (subst);
}
char
[] Res = res.toCharArray();
Res = reverse(Res);
return
Res;
}
static
char
[] NumberOfBishops(
char
[] a)
{
if
(
new
String(a) ==
"1"
)
return
a;
else
{
a = subtract(a,
"1"
.toCharArray());
a = reverse(a);
int
carry =
0
;
for
(
int
i =
0
; i < a.length; i++)
{
int
tmp = a[i] -
'0'
;
tmp *=
2
;
tmp += carry;
a[i] = (
char
)(
'0'
+ (tmp %
10
));
carry = tmp /
10
;
}
String A =
new
String(a);
if
(carry >
0
)
A += (
'0'
+ carry);
char
[] a1 = A.toCharArray();
a1 = reverse(a1);
return
a1;
}
}
public
static
void
main(String []args)
{
char
[] a =
"12345678901234567890"
.toCharArray();
System.out.println(
new
String(NumberOfBishops(a)));
}
}