using
System;
using
System.Collections.Generic;
class
GFG
{
public
static
string
Sub(
string
s)
{
int
n = s.Length;
char
[] new_s =
new
char
[n];
for
(
int
i = n - 1; i >= 0; i--)
{
if
(s[i] ==
'0'
) {
new_s[i] =
'1'
;
}
else
{
new_s[i] =
'0'
;
break
;
}
}
return
new
string
(new_s);
}
public
static
string
Ad(
string
s)
{
int
n = s.Length;
char
[] new_s =
new
char
[n];
int
carry = 0;
for
(
int
i = n - 1; i >= 0; i--)
{
if
(s[i] ==
'1'
) {
carry = 1;
new_s[i] =
'0'
;
}
else
{
carry = 0;
new_s[i] =
'1'
;
break
;
}
}
if
(carry != 0) {
s =
'1'
+ (
new
string
(new_s));
}
return
s;
}
public
static
string
XorFinder(
string
s)
{
int
n = s.Length - 1;
int
val = s[n] -
'0'
;
val = val + (s[n - 1] -
'0'
) * 2;
if
(val == 0) {
return
s;
}
else
if
(val == 1) {
s =
"1"
;
return
s;
}
else
if
(val == 2) {
return
(Ad(s));
}
else
{
s =
"0"
;
return
s;
}
}
private
static
string
final_xor(
string
L,
string
R)
{
while
(L.Length != R.Length) {
L =
'0'
+ L;
}
string
ans =
""
;
for
(
int
i = 0; i < L.Length; i++) {
if
(L[i] ==
'0'
&& R[i] ==
'0'
) {
ans +=
'0'
;
}
else
if
(L[i] ==
'0'
&& R[i] ==
'1'
|| L[i] ==
'1'
&& R[i] ==
'0'
) {
ans +=
'1'
;
}
else
{
ans +=
'0'
;
}
}
return
ans;
}
private
static
string
xorr(
string
L,
string
R)
{
L = Sub(L);
L = XorFinder(L);
R = XorFinder(R);
string
ans = final_xor(L, R);
return
ans;
}
public
static
void
Main(
string
[] args)
{
string
L =
"10"
, R =
"10000"
;
Console.WriteLine(xorr(L, R));
}
}