Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func nextInt() (int, error) {
	return strconv.Atoi(nextString())

}

func main() {
	scanner.Split(bufio.ScanWords)

	for {
		a, err := nextInt()
		if err != nil {
			break
		}
		b, _ := nextInt()

		s := a + b
		nDigits := int(math.Log10(float64(s))) + 1
		fmt.Println(nDigits)
	}
}

C++: #include <stdio.h>
#define N 200
int main()
{
    int i, a[N],b[N],dig[N];
    while(scanf("%d %d",&a[i], &b[i])!=EOF){
        int c[N];
        c[i]=a[i]+b[i];
        dig[i]=0;
        do{
            dig[i]++;
            c[i]/=10;
        }while(c[i]>=1);

        i++;
    }
    int sum=i;
    for(i=0;i<sum;i++){
        printf("%d\n",dig[i]);
    }
    //改行コード必要では？
    }

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

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

C++: #include<iostream>
#include<cstdio>
#include<math.h>

using namespace std;

int a,b;
int sum;
int ans = 0;
int digit;

int main(){
	while(cin >> a >> b){
		sum = a + b;
		digit = sum / 10;

		printf("%d\n",(int)log10(sum) + 1);
	}
    return 0;
}

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

int main()
{
 int a,b;
 int count;
 int wa;
 while(cin >> a&&cin >> b){
  count = 1;
  wa = a + b;
  while((wa/=10) != 0){
   count++;
  }
  cout << count << endl;
 }
 return 0;
}

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

int main(void){
	unsigned int a,b,sum;
	while(cin >> a >> b){
		sum = a + b;
		unsigned int ans = 0;
		while(sum > 0){
			sum = sum / 10;
			ans++;
		}
		cout << ans << endl;
	}
	return 0;
}

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

using namespace std;

int main(){
	int i,j,k,ans=0;

	
	while(cin >> i >>j ){
	k=i+j;
	while(k!=0){ k/=10; ans++;}
        printf("%d\n",ans);
		ans=0;

}
}

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

int main(){
  int a,b,ans;
  string fig;
  while(cin >> a >> b){
    ans=a+b;
    fig=to_string(ans);
    cout << fig.size() << endl;
  }
}

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

int main()
{
	int a, b, i;
	int sum;
	
	while(cin >> a)
	{
		cin >> b;
	
		sum = a + b;
	
		i = 0;
		while(sum != 0)
		{
			sum = sum / 10;
			
			i = i + 1;
		}
		
		cout << i << endl;
		
	}
	
	return 0;
}

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

int main(){
  vector<int> sum;
  vector<string> truss;
  int a,b;
    while(cin >> a >> b){
        int num = a + b;
        int count = 0;
        while(num){
            count++;
            num /= 10;
        }
        cout << count << endl;
    }
/*
sum.push_back(a+b);
  }
  for(int i=0;i<(int)sum.size();i++) { 
    truss.push_back(to_string(sum[i]));
  cout<<truss[i].size()<<endl;
*/
  }
  return 0;
}

C++: #include <iostream>

int main(int argc, char const *argv[])
{
	int a = 0;
	int b = 0;
	while(std::cin >> a >> b){
		int p = 10;
		int i = 1;
		while((a+b)/p != 0){
			i ++;
			p *= 10;
		}
		std::cout << i << std::endl;
	}
	return 0;
}

C++: #include <cstdio>

using namespace std;

int main()
{
  int a, b;
  
  while (scanf("%d%d", &a, &b)){
    int cnt = 1;
    for (int i = a + b; i >= 10; cnt++) i /= 10;
    
    printf("%d\n", cnt);
  }

  return (0);
}

C++: #include<cstdio>
using namespace std;
int main(){
	int a,b;
	while(scanf("%d %d",&a,&b)!=EOF){
		char c[255];
		printf("%d\n",sprintf(c,"%d",a+b));
	}
	return 0;
}

C++: #include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
  int a, b, cnt;
  string s;
  getline(cin, s, ' ');
  a = stoi(s);
  getline(cin, s);
  b = stoi(s);
  a += b;
  cnt = 0;
  if (c == 0) {
    cnt = 1;
  } else {
    while (c) {
      cnt++;
      c /= 10;
    }
  }
  cout << cnt << endl;
}

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

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

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

int keta(int a) {
  if ( a == 0 ) {
    return 1;
  }
  int rec = 0;
  while ( a != 10 ) {
    a /= 10;
    rec++;
  }
  return rec;
}

main()
{
  int a, b;

  while( scanf("%d %d", &a, &b) != EOF ) {
    a += b;
    cout << keta(a) << endl;
  }
  
  return (0);
}

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

int a,b;

int main() {
  while (scanf("%d %d" ,&a ,&b) != EOF) {
    int i  = 0;
    a = a + b;
    while(a > 0) {
      a = a / 10;
      ++i;
    }
    
    cout << i << endl;
    
  }
}

C++: #include "stdio.h"

int main()
{
	int a, b, x, p;

	p = 1;

	for(int i = 0; i < 200; i++){
		scanf("%d %d", &a, &b);

		x = a + b;

		while(x >= 10){
			x /= 10;

			p++;
		}

		printf("%d\n", p);
	}
}

C++: #include <iostream>
#include <vector>
using namespace std;
vector<int> ans;
int main(){
	int a, b;
	while(cin >> a >> b){
		int res = a + b;
		ans.push_back(res);
		cout << ans.size() + 1 << endl;
		res = 0;
	}
	return 0;
}

C++: 
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <stack>
#include <cctype>
#include <complex>
#include <vector>
#include <algorithm>

using namespace std;


bool solve(int &a, int &b){

	//cout<< a<< " "<< b<<endl;
	int c = a+b;
	int d = 0;
	while(c){
		c /= 10;
		d++;
	}
	cout<< d<< endl;
	
	return true;
}

int main(){
	cout.setf(ios::fixed);
	cout.precision(10);
	int a=0,b=0;
	while(cin>>a>>b){
		solve(a,b);
	}

	return 0;
}

C++: #include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,sum;
    while(scanf("%d%d",&a,&b)==2)
  {
         sum=a+b;

    if (sum<10)
    {
        printf("1");
    }
    else if (sum<100)
    {
        printf("2");

    }

    else if (sum<1000)
    {
        printf("3");

    }
    else if (sum<10000)
    {
        printf("4");

    }
    else if (sum<100000)
    {
        printf("5");

    }
    else if (sum<1000000)
    {
        printf("6");

    }
    else
    printf("7");
  }
}

C++: #include <iostream>
#include <vector>
#include <utility>

using namespace std;

int digit(int);

int main(){
	int a,b;
	vector<pair<int,int> > out;
	while (cin>>a>>b){
		pair<int,int> p=make_pair(a,b);
		out.push_back(p);
	}
	for (int i=0;i<out.size();i++){
		cout<<digit(out[i].first+out[i].second)<<endl;
	}
	return 0;
}

int digit(int x){
	//x????????°?????????
	int i;
	for (i=0;x>0;i++){
		x/=10;
	}
	return i;
}

C++: #include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <utility>
#include <ctime>
#define INF 999999999
#define mod 1000000007

#define rep(i,n) for(int i=0;i<int(n);i++)
#define rrep(i,n) for(int i=(n);i>=0;i--)
#define REP(i,a,b) for(int i=(a);i<int(b);i++)
#define all(x) (x).begin(),x.end()
#define pb push_back
#define MOD(x) (x%(mod))
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef pair<int,int> pi;

bool debug=false;
/*---------------------------------------------------*/

int main(){
    int a,b,sum,keta;
    while(cin>>a>>b){
        sum=a+b;
        for(keta=1;;keta++){
            sum=sum/10;
            if(sum==0)break;
        }
        cout<<keta<<endl;
    }
    return 0;
}

C++: #include<stdio.h>

int main(void){
	int a,b,sum,keta,count,answer[200]={'0'};
	
	for(count=0;count<200;count++){
		keta=1;
		scanf("%d %d",&a,&b);
		sum=a+b;
		if(sum/10!=0){
			keta++;
			if(sum/100!=0){
				keta++;
				if(sum/1000!=0){
					keta++;
					if(sum/10000!=0){
						keta++;
						if(sum/100000!=0){
							keta++;
							if(sum/1000000!=0){
								keta++;
							}
						}
					}
				}
			}
		}
		answer[count]=keta;
	}
	for(sum=0;sum<count;sum++){
		printf("%d\n",answer[sum]);
	}
	return 0;
}