2 test cases failed and I don,t get why?

#include<bits/stdc++.h>
#include
using namespace std;

int main() {
int m,n;
cin>>m;
vectora;
for(int i=0; i<m; i++)
{
int x1;
cin>>x1;
a.push_back(x1);

}
cin>>n;
vector<int>b;
for(int i=0; i<n; i++)
{
	int x2;
	cin>>x2;
	b.push_back(x2);
}
int Max=max(m,n);
int Min= min(m,n);
int arr[Max];
int carry=0;
for(int i=Max-1; i>=0; i--)
{
if(a.empty())
{
	arr[i]=b.back()+carry;
	carry=arr[i]/10;
	b.pop_back();
}
else if(b.empty())
{
	arr[i]=a.back()+carry;
	carry=arr[i]/10;
	a.pop_back();
}
else{
	arr[i]=carry+a.back()+b.back();
	carry=arr[i]/10;
	a.pop_back();
	b.pop_back();
}
}
for(int i=0; i<Max; i++)
{
	cout<<arr[i]%10<<", ";
}
cout<<"END"<<endl;
return 0;

}