#include<iostream>
using namespace std;
int main()
{
int a;
int b;
while (cin >> a >> b)
{
cout << a + b << endl;
}
return 0;
}
#include<iostream>
#include<vector>
#include<string>
#include<sstream>
#include<map>
using namespace std;
int main()
{
int a;
int b;
while (1)
{
string ee;
getline(cin, ee);
stringstream ss1;
int t;
int flag = 0;
ss1 << ee;
ss1 >> t;
if (t == 0)
{
break;
}
else
{
a = t;
ss1 >> t;
b = t;
vector<vector<unsigned int> >v1(a, vector<unsigned int>(b, 0));
vector<vector<unsigned int> >v2(a, vector<unsigned int>(b, 0));
map<int, int> hang;
map<int, int> lie;
for (int i = 0; i < a; i++)
{
string a1;
unsigned int n;
stringstream ss;
getline(cin, a1);
ss << a1;
for (int j = 0; ss >> n; j++)
{
v1[i][j] = n;
lie[j] = 0;
}
hang[i] = 0;
}
for (int i = 0; i < a; i++)
{
string a1;
stringstream ss;
unsigned int n;
getline(cin, a1);
ss << a1;
for (int j = 0; ss >> n; j++)
{
v2[i][j] = v1[i][j] + n;
if (v2[i][j] != 0)
{
hang[i] = 1;
lie[j] = 1;
}
}
}
int out = 0;
for (int i = 0; i < a; i++)
{
if (hang[i] == 0)
{
out = out + 1;
}
}
for (int j = 0; j < b; j++)
{
if (lie[j] == 0)
{
out = out + 1;
}
}
cout << out << endl;
}
}
return 0;
}