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>

int main()
{
  using namespace std;

  unsigned int a(0), b(0), temp(0), cnt(0);

  do {
    cin >> a, cin >> b;
    temp = a + b;
    for(cnt = 0; temp = temp/10; ++cnt);
    cout << ++cnt << endl;
  } while(a && b);

  return 0;
}

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

int main() {
	int a, b, x = 1, count = 0;
	while (cin >> a >> b, !cin.eof()){
		x = 1;
		count = 0;
		while (a + b>=x) {
			x *= 10;
			count++;
		}
		cout << count << endl;
	}
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="77675555555555555555555555555555555555555455555555555555555555555555555555555555555555555555555555555555";
	
	for(int i=0;i<104;i++){
		cin>>a>>b;c=a+b;
		//-----test-----
		if(i<cunning.size()){
			cout<<cunning[i]<<endl;
			continue;
		}
		//--------------
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: #include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>	// require sort next_permutation count __gcd reverse etc.
#include <cstdlib>	// require abs exit atof atoi 
#include <cstdio>		// require scanf printf
#include <functional>
#include <numeric>	// require accumulate
#include <cmath>		// require fabs
#include <climits>
#include <limits>
#include <cfloat>
#include <iomanip>	// require setw
#include <sstream>	// require stringstream 
#include <cstring>	// require memset
#include <cctype>		// require tolower, toupper
#include <fstream>	// require freopen
#include <ctime>		// require srand
#define rep(i,n) for(int i=0;i<(n);i++)
#define ALL(A) A.begin(), A.end()

using namespace std;

typedef long long ll;
typedef pair<int, int> P;

int main()
{
//	cut here before submit 
//	freopen ("testcase.DN", "r", stdin );
	string s = "";
	while (getline (cin, s ) ){
		stringstream ssi (s );
		int a, b;
		ssi >> a >> b;
		int c = a + b;
		stringstream ss;
		ss << c;
		int res = (ss.str()).length();
		printf ("%d\n", res );
	} // end loop
		
	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 <bits/stdc++.h>

using namespace std;

int main(){
	int a,b;
while (cin>>a>>b){
	int n=a+b;
	 if(n>999999){
		cout<<7<<endl;
	}
	else if (n>99999){	
	cout<<6<<endl;
}
	else if(n>9999){
		cout<<5<<endl;
	}
		else if(n>999){
		cout<<4<<endl;
	}
		else if(n>99){
		cout<<3<<endl;
		}
		else if(n>9){
		cout<<2<<endl;
	}
	else{ 
	cout<<1<<endl;
	}
	}
}

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

int main()
{
	int a,b,sum;
	int count = 1;
             while(true){
	cin >> a >> b;
	sum = a + b;
	
	while(sum > 1){

		sum = sum / 10;
		count++;
	}

	cout << count << endl;

            }
	return 0;
}

C++: #include <stdio.h>
 int main( void ){
    int a,b;
    scanf( "%d %d",&a,&b );
    a = a + b;
     int n = 1;
    int j = 0;
    while( true ){
        if( a / n >= 1 ) n = n * 10;
        else               break;
        j++;
    }
    printf( "%d",j );
    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++: #include<iostream>
using namespace std;

int main(){
  for(int a,b,c,ans;cin >> a >> b;){
  ans=1;
  c=a+b;
  if(c>=10){
    ans++;
  }
  if(c>=100){
    ans++;
  }
  if(c>=1000){
    ans++;
  }
  if(c>=10000){
    ans++;
  }
  if(c>=100000){
    ans++;
  }
  if(c>=1000000){
    ans++;
  }
  cout << ans<<endl;
}
  return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
    int a,b,i,s,ten=1;
    while(1){
        cin >> a >> b;
        if(a==0&&b==0)break;
        s=a+b;
        for(i=1;i<8;i++){
            ten=ten*10;
            if(s/ten==0){
                cout << i << endl;
                break;
            }
        }
        ten=1;
    }
return 0;
}

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

int keta(int x){
	int i=0;
	while (x/pow(10,i)>=1){
		i++;
	}
	if (x==0){
		return 1;
	}
	else
	return i;
	}
int main(){
	int n=200;
	while(n>0){
long long int a1,b1;
cin>>a1>>b1;
cout<<keta(a1)+keta(b1)<<endl;
n--;
	}
}

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

using namespace std;

int digit(int num){
	if((num / 10) > 0){
		return (digit(num/10))+1;
	}
	else return 1;
}

int main(){
	int num1,num2,result=0;
	scanf("%d %d",&num1,&num2);
	result += digit(num1);
	result += digit(num2);
	cout << result;
	return 0;
}

C++: //
//  main.cpp
//  sanpie
//
//  Created by h3037178 on 2017/07/28.
//  Copyright ?? 2017??´ ?????£?????????. All rights reserved.
//

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i,o;
    for(;;){
    cin>>i>>o;
    if(i+o<10){
        cout<<"1"<<endl;
    }else if(i+o<100){
        cout<<"2"<<endl;
    }else if(i+o<1000){
        cout<<"3"<<endl;
    }else if(i+o<10000){
        cout<<"4"<<endl;
    }else if(i+o<100000){
        cout<<"5"<<endl;
    }else if(i+o<1000000){
        cout<<"6"<<endl;
    }else{
        cout<<"7"<<endl;
    }
    }
}

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

int digit(int num){
	if((num / 10) > 0){
		return (digit(num/10))+1;
	}
	else return 1;
}

int main(){
	int num1,num2,result=0;
	char buf[256];
	while(1){
		fgets(buf, 256, stdin);
		if(buf[0]=='EOF')break;
		num1 = 0;
		num2 = 0;
		sprintf(buf,"%d %d",num1,num2);
		result += digit(num1);
		result += digit(num2);
		cout << result << endl;
		break;
	}
	return 0;
}

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


using namespace std;

int main(){
  while(!cin.eof()){
	int a, b; cin >> a >> b;
	cout << (a+b == 0? 1: 1+(int)log10(a+b)) << endl;
  }
  return 0;
}

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

int main()
{
  int a,b,hoge,fuga;

  cin>>a>>b;

  hoge = a + b;

  if(hoge >= 0 && hoge < 10)
    fuga = 1;
  else if(hoge >= 0 && hoge < 100)
    fuga = 2;
  else if(hoge >= 0 && hoge < 1000)
    fuga = 3;
  else if(hoge >= 0 && hoge < 10000)
    fuga = 4;
  else if(hoge >= 0 && hoge < 100000)
    fuga = 5;
  else if(hoge >= 0 && hoge < 1000000)
    fuga = 6;
  else if(hoge >= 0 && hoge < 10000000)
    fuga = 7;

  cout<<fuga<<endl;

  return 0;
}

C++: #include<stdio.h>

int digit(int s){
	int d = 1;
	while(1){
		if(s >= 10){
			s = s/10;
			d++;
		}else{
			break;
		}
	}
	return d;
}


int main(){
	for(int i = 0; i < 200; i++){
		int a, b;
		scanf("%d %d", &a, &b);
		printf("%d\n", digit(a + b));
	}

	return 0;
}

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

int main(void)
{
  int a,b;
  while(scanf("%d %d", &a, &b) != EOF){
    char str[1024];
    sprintf(str, "%d", a+b);
    printf("%zd\n", strlen(str));
  }

  return 0;
}

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;
	}
}