#include <iostream>
#include <string>
using namespace std;
#define BUF_SIZE 1024
static bool Add(const char& ch1, const char& ch2, bool currentFlag)
{
int num1 = ch1 - '0';
int num2 = ch2 - '0';
int flag = currentFlag ? 1 : 0;
return ((num1 + num2 + flag) >= 10);
}
static void Calc(const string& num1, const string& num2)
{
int len1 = num1.length(), len2 = num2.length();
int max = len1;
if (len2 > len1)
max = len2;
int i = 1;
int flagTimes = 0;
bool flag = false;
while(true)
{
if ((i > len1) && (i > len2))
break;
const char& ch1 = (i <= len1) ? num1[len1 - i] : '0';
const char& ch2 = (i <= len2) ? num2[len2 - i] : '0';
flag = Add(ch1, ch2, flag);
if (flag)
++flagTimes;
++i;
}
if (flagTimes > 0)
cout << flagTimes;
else
cout << "No";
cout << " carry operation";
if (flagTimes > 1)
cout << 's';
cout << '.' << endl;
}
static void Test()
{
string num1, num2;
char buf1[BUF_SIZE], buf2[BUF_SIZE];
while (true)
{
cin >> buf1 >> buf2;
if ((buf1[0] == '\0') || (buf2[0] == '\0') ||
((buf1[0] == '0') && (buf2[0] == '0') && (buf1[1] == '\0') && (buf2[1] == '\0')))
return;
num1 = buf1;
num2 = buf2;
Calc(num1, num2);
}
}
int main(int argc, char* argv[])
{
Test();
return 0;
}