import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws FileNotFoundException
{
// Scanner scanner = new Scanner(new File("d://1.txt"));
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine())
{
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
System.out.println(sub(str1, str2));
}
scanner.close();
}
public static String sub(String str1, String str2)
{
int minLength = -1;
int maxLength = -1;
if (str1.length() > str2.length())
{
minLength = str2.length();
maxLength = str1.length();
}
else
{
minLength = str1.length();
maxLength = str2.length();
String temp = str1;
str1 = str2;
str2 = temp;
}
// 俩个数相减后剩下的最大长度
char cc[] = new char[maxLength];
// 大数减小数,好像负号和减法并没有关系
int dx = 0;
int cIndex = 0;
int dl = maxLength - minLength;
for (int i = minLength - 1; i >= 0; i--)
{
int s = str1.charAt(i + dl) - str2.charAt(i) - dx;
dx = 0;
if (s < 0)
{
dx = 1;
s += 10;
}
cc[cIndex++] = (char) (s + '0');
}
for (int i = maxLength - cIndex-1; i >= 0; i--)
{
int s = str1.charAt(i) - '0' - dx;
dx = 0;
if (s < 0)
{
dx = 1;
s += 10;
}
cc[cIndex++] = (char) (s + '0');
}
if(cc[cIndex - 1] == '0')
{
return "0";
}
StringBuilder sb = new StringBuilder();
for (int i = cIndex - 1; i >= 0; i--)
{
sb.append(cc[i]);
}
return sb.toString();
}
public static String mul(String str1, String str2)
{
int minLength = -1;
int maxLength = -1;
if (str1.length() > str2.length())
{
minLength = str2.length();
maxLength = str1.length();
}
else
{
minLength = str1.length();
maxLength = str2.length();
String temp = str1;
str1 = str2;
str2 = temp;
}
int[] cc = new int[maxLength + minLength];
int maxIndex = -1;
for (int i = minLength - 1; i >= 0; i--)
{
char c2 = str2.charAt(i);
int cIndex = minLength - 1 - i;
int dx = 0;
for (int j = maxLength - 1; j >= 0; j--)
{
cc[cIndex] = (str1.charAt(j) - '0') * (c2 - '0') + dx
+ cc[cIndex];
dx = cc[cIndex] / 10;
cc[cIndex] = cc[cIndex] % 10;
cIndex++;
}
if (maxIndex < cIndex)
{
maxIndex = cIndex;
}
cIndex = maxIndex;
if (dx != 0)
{
while (dx != 0)
{
cc[cIndex] = cc[cIndex] + dx;
dx = cc[cIndex] / 10;
cc[cIndex] = cc[cIndex] % 10;
cIndex++;
}
maxIndex = cIndex;
}
}
StringBuilder sb = new StringBuilder();
for (int i = maxIndex - 1; i >= 0; i--)
{
if (cc[i] == 0 && i == maxIndex - 1)
{
return "0";
}
sb.append((char) (cc[i] + '0'));
}
return sb.toString();
}
}