using namespace std;
char x[1000], y[1000];
int a[1000], b[1000], c[1000];
// 把s中的大整数倒序存储到a数组中,个位在下标为1的位置
void zhuanhuan(char s[], int a[]) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
a[len - i] = s[i] - '0';
}
a[0] = len;
}
void output(int e[]) {
for (int i = e[0]; i > 0; i--) {
cout << e[i];
}
cout << endl;
}
void jia(int d[], int e[], int f[]) {
int i = 1, x = 0;
while (i <= d[0] || i <= e[0]) {
f[i] = d[i] + e[i] + x;
x = f[i] / 10;
f[i] %= 10;
i++;
}
f[0] = max(d[0], e[0]);
if (x > 0) {
f[0]++;
f[f[0]] = x;
}
}
int bijiao(int d[], int e[]) {
if (d[0] > e[0]) return 1;
if (d[0] < e[0]) return -1;
// d[0] == e[0]
for (int i = d[0]; i > 0; i--) {
if (d[i] > e[i]) return 1;
if (d[i] < e[i]) return -1;
}
return 0;
}
void jian(int d[], int e[], int f[]) {
for (int i = 1; i <= d[0]; i++) {
if (d[i] < e[i]) {
d[i+1]--;
d[i] += 10;
}
f[i] = d[i] - e[i];
}
// 处理前导0
f[0] = d[0];
while (f[0] > 1 && f[f[0]] == 0) {
f[0]--;
}
}
int main() {
cin >> x >> y;
zhuanhuan(x, a);
zhuanhuan(y, b);
if (bijiao(a, b) >= 0) {
jian(a, b, c);
} else {
cout <<"-";
jian(b, a, c);
}
output(c);
return 0;
}