Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

var (
	sc = bufio.NewScanner(os.Stdin)
)

func main() {
	for sc.Scan() {
		chunks := strings.Split(sc.Text(), " ")
		a, _ := strconv.Atoi(chunks[0])
		b, _ := strconv.Atoi(chunks[1])
		fmt.Println(len(fmt.Sprint(a + b)))
	}
}

C++: #include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <array>
#include <queue>
#include <deque>
#include <set>
#include <list>
#include <map>
#include <stack>
#include <utility>
#include <algorithm>
#include <numeric>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <climits>
#include <bitset>
#include <random>
#include <functional>
#include <sstream>
#include <iomanip>

using namespace std;

#define _CRT_SECURE_NO_WARNINGS
#define rep(i, n) for(int i=0; i<(n); i++)
#define FOR(i, m, n) for(int i=(m);i<(n);i++)
#define SZ(x) ((int)(x).size())
#define all(x) (x).begin(),(x).end()
#define SORT(x) sort((x).begin(),(x).end())
#define REVE(x) reverse((x).begin(),(x).end())
#define mp make_pair
#define pb push_back

typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int>> VVI;
typedef pair<int, int> PII;
typedef long long LL;

int keta(int n) {
	int k = 0;
	for (int i = n; i > 0; i /= 10)k++;
	return k;
}

int main() {
	int a, b;
	while (cin >> a >> b) {
		cout << keta(a + b) << endl;
	}
}

C++: #include <iostream>
using namespace std;

int main(){
	int a,b,c;
	int ans;
	bool flg;
	int cnt=-1;
	
	while(cin>>a>>b){
		cnt++;flg=false;
		//-----test-----
		if(cnt==104) break;
		//--------------
		c=a+b;
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: #include <stdio.h>
int main(){
	int a = 0,b = 0;
	int c = 0;
	int count = 1;
	while(scanf("%d %d",&a,&b)){
		if(a == 0 && b == 0){
			break;
		}
		c = a + b;
		while(1){
			if(c / 10 < 10){
				count++;
				break;
			}
			else{
				c /= 10;
				count++;
			}
		}
		printf("%d\n",count);
		count = 1;
	}
	return 0;
}

C++: #include<iostream>
int main(){
	int a,b,c,d;
	while(1){
		std::cin>>a>>b;
		if(std::cin.eof())break;
		c=a+b;
		     if(c>=1000000)d=7;
		else if(c>=100000)d=6;
		else if(c>=10000)d=5;
		else if(c>=1000)d=4;
		else if(c>=100)d=3;
		else if(c>=10)d=2;
		else if(c>=0)d=1;
		std::cout<<d<<std::endl;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

int main()
{
	while(true)
	{
		int a,b;
		cin >> a >> b;
		a += b;
		int count = 0;
		while(true)
		{
			count++;
			if(a / 10 == 0)
			{
				break;
			}
			a = a / 10;
		}
		cout << count << endl;
	}
}

C++: #include<iostream>
using namespace std;
int main(){
int a=0,b=0,c=0;
while(cin>>a>>b){
	for(int x=1;x<=a+b;x=x*10){
		c=c+1;	
	}
	cout<<c;
	c=0;
}
}

C++: #include <cstdio>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main(void) {
    string str;
    vector<string> v;
    while (getline(cin, str)) {
        v.push_back(str);
    }

    for (vector<string>::iterator itr = v.begin(); itr != v.end(); itr++) {
        int a, b;
        sscanf((*itr).c_str(), "%d %d", &a, &b);

        int sum = a + b;

        int c = 1;
        int d = 10;
        int z = sum / d;

        while (z != 0) {
            d = d * 10;
            z = sum / d;
            c++;
        }
        printf("%d\n", c);
    }
    return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
	int x,y;
	int tmp;
	int count = 0;
	while(cin >> x >> y){
		tmp = x + y;
		count = 0;
		while(tmp != 0){
			tmp /= 10;
			count++;
		}
		cout << count << endl;
	}
	return 0;
}

C++: #include<iostream>
#include<cmath>
using namespace std;
 
int main(){
    int a,b;
    while(cin>>a>>b){
        a=log10(a+b)+1;
        cout<<a<<endl;
    }
    return 0;
}

C++: //c++11
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    long int x, y;
    int ans;
    vector<long int> vx, vy;
    
    while(cin >> x >> y){
        vx.push_back(x);
        vy.push_back(y);
    }

    for(int i=0; i < vx.size(); i++ ){
        long int div = 1, sum = vx[i]+vy[i];
        for(int j = 1; ; j++){
            if(sum % div < 1){
                ans = j;
                break;
            }else{
                div *= 10;
            }
        }
        cout << ans << endl;
    }

}

C++: #include <iostream>
#include <string>
using namespace std;
int main() {
    int a, b;
    while(cin >> a >> b) {
        cout << to_string(a+b).size() << endl;
    }
}

C++: #include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<vector>

using namespace std;

int main()
{
	int a[200], b[200], n, ans=0;
	for (int i = 0; i < 200; i++) 
	{
		cin >> a[i] >> b[i];
		n = a[i] + b[i];
		while (n >= 1) 
		{
			n /= 10;
			ans++;
		}
		cout << ans << endl;
		ans = 0;
	}
}

C++: #include <iostream>
#include <cmath>

using namespace std;

int main(int argc, char **argv) {
    int a, b;

    while(cin >> a >> b) {
       cout << (int)log10(a + b) + 1 << endl;  
    }                                                

    return 0;
}

C++: #include <stdio.h>
int main(){
int a,b,temp,i;
while(scanf("%d%d",&a,&b)!=EOF){
temp=a+b;
i=0;
while(temp){
i++;
temp/=10;
}
printf("%d\n",i);
}
}

C++: #include <iostream>
#include <algorithm>
using namespace std;

int main(){
	int a, b, c, i=0, count=0, data[200];
	while(cin>>a>>b){
		c=a+b;
		while(c!=0){
			c/=10;
			count++;
		}
		
		data[i]=count;
		count=0;
		i++;
	}
	i=0;
	while(data[i]!=0){
		cout<<data[i]<<endl;
		i++;
	}
	return 0;
}

C++: #include <iostream>
#include <sstream>
int main()
{
        for(uint8_t i=0;i<=200;i++)
        {
                std::string str;
                getline(std::cin, str);
                std::stringstream s(str);
                uint32_t a,b;
                s>>a>>b;
                uint32_t sum=a+b;
                uint8_t count;
                for(count=0;sum>0;count++)
                        sum=sum/10;
                printf("%u\n",count);
        }

        return 0;
}

C++: #include <iostream>
int main(){
	int a,b,c;
	std::cin>>a>>b>>c;
	if(a*a==b*b+c*c){
		std::cout<<"YES"<<std::endl;
		}
	else if(b*b==a*a+c*c){
		std::cout<<"YES"<<std::endl;
		}
	else if(c*c==a*a+b*b){
		std::cout<<"YES"<<std::endl;
		}
	else std::cout<<"NO"<<std::endl;

	
		
	 return 0;
	}

C++: #include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int a,b;
    for(int i=1;i>0;)
    {
        cin>>a>>b;
        if(a!=EOF)
        {
        cout<<(int)log10(a+b)+1<<endl;
        }
        else return 0;
    }
    return 0;
}

C++: #include<iostream>

using namespace std;

int main(){
	
	int i;

	int a[3],b[3],sum[3],figure;
	
	for(i=0;i<3;i++){
		do{
			cin >> a[i] >> b[i];
		}while((a[i]<0||a[i]>100000)&&(b[i]<0||b[i]>100000));
		
		sum[i] = a[i] + b[i];
	}
	
	for(i=0;i<3;i++){
		figure = 1;
		while(sum[i]/10!=0){
			sum[i] = sum[i]/10;
			figure++;
		}
		cout << figure << "\n";
	}
	
	return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
	int a,b,c;
	int ans;
	int cnt=-1;
	
	while(cin>>a>>b){
		cnt++;
		//-----test-----
		if(a<10000) break;
		
		//--------------
		c=a+b;
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: 
#include <cstdio>
#include <cstring>
#include <sstream>
#include <iostream>
#include <string>

int main(void)
{
    int a, b;
    char res[256];

    std::string str;

    while (getline(std::cin, str)) {
        std::istringstream str_s(str);
        str_s >> a >> b;

        sprintf(res, "%d", a+b);

        std::cout << strlen(res) << std::endl;
    }

    return 0;
}

C++: #include <iostream>
#include <cmath>
 
using namespace std;
 
int main(){
    int a, b;
    int sum=0;
 
    while(cin >> a >> b){
 
    sum = log10(a+b) +1;
     
 
        cout << sum << endl;
    }
}