#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *A=NULL,*B=NULL,*rev;
size_t n=0,m=0;
size_t a=getline(&A,&n,stdin), b=getline(&B,&m,stdin);
if (a<=0 || b<=0) return 0;
if (A[a-1]=='\n') A[--a]=0;
if (B[b-1]=='\n') B[--b]=0;
size_t k = (a>b?a:b);
rev = malloc(k+1);
const char *pa=A+a-1, *pb=B+b-1;
size_t first = k; // leftmost non-zero index
for (size_t i=0;i<k;i++) { // (a+b)%10 and place in final order
int da = (pa>=A) ? *pa-- - '0' : 0;
int db = (pb>=B) ? *pb-- - '0' : 0;
char ch = ((da+db)%10) + '0';
size_t pos = k-1-i;
rev[pos] = ch;
if (ch!='0' && pos<first) first = pos;
}
rev[k]=0;
puts(first==k ? "0" : rev+first); // print without leading zeros
free(A); free(B); free(rev);
}
#牛客AI配图神器#