Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
	"unicode/utf8"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	var strs []string
	var a, b, sum int64
	var digits int
	for scanner.Scan() {
		strs = strings.Split(scanner.Text(), " ")
		a, _ = strconv.ParseInt(strs[0], 10, 64)
		b, _ = strconv.ParseInt(strs[1], 10, 64)

		sum = a + b
		// goでlen(string)はbyte数が返る
		digits = utf8.RuneCountInString(strconv.FormatInt(sum, 10))

		fmt.Printf("%d\n", digits)
	}
}

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++: #include<cstdio>
#include<iostream>
using namespace std;
int main()
{
	int a,b,c,k,s;
	while(cin>>a>>b)
	{
		k=a+b;
		s=0;
		while(k!=0)
		{
			k=k/10;
			s++;
		}
		cout<<s<<endl;
	}
	return 0;
}

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

int main(){
	int a, b;
	while(true){
		cin >> a >> b;
		stringstream ss;
		ss << a+b;
		cout << ss.str().size() << endl;
	}
}

C++: #include<stdio.h>
int main(){
    int a,b,c,d;
    int i;

    while(1){
            scanf("%d %d",&a,&b);
    c = a + b;
        for(i = 1;i < 6546;i++){
            c = c / 10;
            i++;
            if(c < 10)break;
        }
    printf("%d\n",i);
    }
    return 0;

}

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

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

C++: #include<string>
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a,b;
	cin >> a>>b;
string ss="";
  ss >> a+b;
cout<<ss.str().size()<<endl;
return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define REP(i,N) for(int i = 0; i < (int)N; i++)

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

C++: #include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <cstdlib>
#include <stack>
#include <queue>
#include <list>
#include <vector>
#include <sstream>

using namespace std;

class c_main
{
private:
    
public:
    c_main();
    void f_input();
    int f_digit(int sum);
};

int c_main::f_digit(int sum){
    int digit=0;
    while(sum!=0){
        sum /= 10;
        digit++;
    }
    return digit;
}

c_main::c_main()
{
    int a,b;
    int cnt;
    
    cnt = 0;
    
    for (;cin >> a >> b;){
        cout << f_digit(a+b) << endl;
    }
}

void c_main::f_input()
{
    
}

int main(){
    c_main main01;
    main01.f_input();
    
    return 0;
}

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

int main(){
    int a, b;
    while(cin >> a >> b){
        int v = a + b;
        int ans = 0;
        while(v){
            v /= 10;
            ++ans;
        }

        cout << ans << endl;
    }

    return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int x,y;
    for(;;){
        cin >> x >> y;
        if(cin.eof())   break;
        cout << to_string(x+y).length() << "\n";
    }
}

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

int main(){
	int a,b,keta[300] = {0},kcor = 0;
	while(cin >> a){
		cin >> b;
		keta[kcor] = log10(double(a+b))+1.000001;
		kcor++;
	}
	for(int i = 0;i < kcor;i++){
		cout << keta[i] << endl;
	}
	return 0;
}

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

int main()
{ 
	int i1, i2;
	cin >> i1 >> i2;
	i1 += i2;
	i2 = 0;
	while (i1) {
		i2++;
		i1 /= 10;
	}
	cout << i2 << endl;
    return 0;
}

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

int main()
{
	unsigned int a, b, c;
//	while (1) {
		cin >> a >> b;
		a += b;
		c = 0;
		do{
			a /= 10;
			c++;
		} while (a);
		cout << c << endl;
//	}
    return 0;
}

C++: #include <iostream>
using namespace std;
int i,a,b;
string s;

int main() {
	while(cin>>a>>b){
		a = a+b;
		s = to_string(a);
		cout << s.size() << endl;
	}
	return 0;
}

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

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

  return 0;
}

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

int main()
{
	int a, b, sum, ans;
	while(cin >> a >> b)
	{
		sum = a + b;
		ans = (int)log10 ((double)sum)+ 1;
	    cout << ans << endl;
	}
	
	return 0;
}

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

int main(void)
{
	int a,b,digit;
	while(1){
		if(scanf("%d %d",&a,&b) ==EOF) break;
		digit = log10((double)(a+b));
		printf("%d\n",digit+1);
	}
	return 0;
}

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

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

int main()
{
  int a=0,b=0,x=0;
  cin>>a>>b;
  x=a+b;
  x=(x/10)+1;
  cout<<x<<endl;
  
  
}

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

C++: #include <stdio.h>
#include<iostream>
#include<math.h>
int uncoo(int n){
 return (int)(logf((float)n)/logf(10.0))+1;
}
int main(){
	using namespace std;
	int unco[200],temp,i;
	for(i=0;i<200;i++){
		if(!(cin>>unco[i]))break;
		cin>>temp;
		unco[i]+=temp;
	}
	for(int j=0;j<i;j++){
		cout<<uncoo(unco[j])<<endl;
	}
	return 0;
}

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

using namespace std;

int main(void){

 int a,b;
 int ans;

 while(1){
  cin >> a >> b;

  if(a==b==0)
   break;

  ans=log10(a+b)+1;
  cout << ans << endl;
 }
}

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

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

C++: #include <iostream>
using namespace std;
int main(){

	int a,b;
	int i=0;
	while(i<200){
		cin>>a>>b;
		int c = a+b;
		int d = 1;
		int e = 10;
		for(int j=0;j<10;j++){
			if(c == 0){
				cout<<1<<endl;
			}else if(c >= d && c < e){
				cout<<j+1<<endl;
			}
			d = d * 10;
			e = e * 10;
		}
		i++;
	}	
	return 0;
}

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

using namespace std;

int main(){

	int a, b;
	cin >> a >> b;
	cout << a + b << endl;

	system("pause");
	return 0;
}

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

using namespace std;

int digit(int n); 
int main()
{
    int a[200],b[200];
    int len=0;

    while (cin >> a[len] >>  b[len])
        len++;

    for (int i=0; i < len; i++) {
        cout << digit(a[i]+b[i]) << endl;
    }   

    return 0;
}

int digit(int n) {
    int digit=1;
    while ((n /= 10) != 0)  
        digit++;
    return digit;
}

C++: #include<stdio.h>

 int main(void){
   int div;
   int i,s,sum,count;
   while(fscanf(stdin,"%d %d",&i,&s) != EOF){
     sum = i + s;
     div = 1;
     count = 0;
     while(1){
       if(sum/div == 0){
         break;
       }
       div *= 10;
       count++;
     }

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

   return 0;
 }