Go: package main

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

func main() {
        sc := bufio.NewScanner(os.Stdin)

        for sc.Scan() {
                digits := 0
                num := 0
                for _, s := range strings.Fields(sc.Text()) {
                        i, _ := strconv.Atoi(s)
                        num += i
                }
                for num > 0 {
                        digits += 1
                        num /= 10
                }
                fmt.Printf("%d\n", digits)
        }
}

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

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

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

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

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

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

using namespace std;

int main(void)
{

	for(int i = 0; i < 3; i++){
		int a, b;
		cin >> a >> b;
		a+=b;
		int d;
		for(d = 1; a > 0; d++){
			a /= 10;
		}
		cout << d;
	}

	return 0;
}

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

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

C++: import java.util.Scanner;

public class Main
{
	public static void main(String[] args)
	{
		Scanner cin = new Scanner(System.in);
		
		int a,b;

		while(true)
		{
			a=cin.nextInt();
			b=cin.nextInt();
			if(a==0 && b==0) break;
		
			String s = ((Integer)(a+b)).toString();		
			System.out.println(s.length());
		}
	}
}

C++: #include<stdio.h>
int main(){
	int x,y,i;
	for(;;){
	scanf("%d %d",&x,&y);
	if((x+y)<10) printf("1\n");
	else if((x+y)<100) printf("2\n");
	else if((x+y)<1000) printf("3\n");
	else if((x+y)<10000) printf("4\n");
	else if((x+y)<100000) printf("5\n");
	else if((x+y)<1000000) printf("6\n");
	else printf("7\n");
	}
	return 0;
}

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

int main(){
  int a, b, c;
  int i = 10;
  int num = 1;
  
  while(scanf("%d", &a)!=EOF){
    scanf("%d", &b);
    
    c = a + b;
    while(1){
      if(c/i!=0){
        num++;
        i *= 10;
      }else{
        break;
      }
    }
    std::cout << num << std::endl;
  }
  
}

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

using namespace std;

int main() {
  int a, b;
  cin >> a >> b;
  a += b;
  int dig_num = 1;
  while ((a /= 10) != 0) {
    ++dig_num;
  }
  cout << dig_num << "\n";
}

C++: #include<iostream>
using namespace std;
int main(){
  int a,b,c;
  int i;
  while(cin >> a >> b){
    c=a+b;
    i=0;
    while(c){
      c=c/10;
      i++;
    }
    cout << i << 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-----
		switch(cnt){
		case 0:
			if(!(900000<a)) flg=true; 
			break;
		}
		
		if(flg) break;
		
		//--------------
		c=a+b;
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

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

int a;
int b;

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

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

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

C++: #include <stdio.h>
#include <math.h>
int main(void){
    int a,b;
    while(scanf("%d%d",&a,&b)>0)printf("%d\n",a=log10(a+b)+1);
    return 0;
}

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

C++: #include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
    ll a,b,sum,z;
    while(cin>>a>>b)
    {
        sum=a+b;
        z=floor(log10(sum))+1;
        cout<<(ll)z<<endl;
    }
    return 0;
}

C++: #include<cstdio>
int main(){for(int a,b;~scanf("%d%d",&a,&b);printf("%d\n",sprintf((char*)&a,"%d",a+b)));}

C++: #include <iostream>
using namespace std;
int digit(int num){
	int cnt=0;
	while(num>0){
		num/=10;
		cnt++;
	}
	return cnt;
}

int main(){
	int A[210],B[210];
	int N;
	for(int i=1;i<=200;i++){
		cin>>A[i]>>B[i];
		if(cin.eof()){
			N=i-1;
			break;
		}
	}
	for(int i=1;i<=N;i++){
		cout<<digit(A[i]+B[i])<<endl;
	}
	return 0;
}

C++: 
#include "cstdio"


int main()
{
	int a,b,i=0;
	scanf("%d%d\n",&a,&b);

	a += b;
	while(a/10 == 0){
		a/=10;
		i++;
	}
	printf("%d",i);

	return 0;
}

C++: #include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
#include<math.h>
#include<iomanip>
#include<set>
#include<numeric>
#include<cstring>
#include<cstdio>
#include<functional>
#include<bitset>
#include<limits.h>
#include<cassert>
#include<iterator>
#include<complex>
#include<stack>
#include<sstream>
#include<iterator>
using namespace std;
typedef  long long int lint;
typedef pair<int, int> IP;
typedef pair<lint, lint> LLP;
typedef pair<char, char>CP;
#define rep(i, n) for (int i = 0; i < n; i++)
#define repr(i, n) for (int i = n; i >= 0; i--)
#define sort(v) sort((v).begin(), (v).end())
#define reverse(v) reverse((v).begin(), (v).end())
#define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge)
#define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge)
#define llower(v,hoge) *lower_bound(v.begin(), v.end(), hoge)
#define lupper(v,hoge) *upper_bound(v.begin(), v.end(), hoge)

string bigsum(string A, string B) {
	//A+Bを返す
	vector<char>num(10);
	num = { '0','1','2','3','4','5','6','7','8','9' };
	if (A.size() > B.size()) {
		swap(A, B);
	}
	int a = A.size();
	int b = B.size();
	int size = b + 1;
	reverse(A);
	reverse(B);
	vector<int>V(size, 0);
	rep(i, a) {
		V[i] = (A[i] - '0') + (B[i] - '0');
	}
	for (int i = a; i < b; i++) {
		V[i] = (B[i] - '0');
	}
	rep(i, size - 1) {
		V[i + 1] += (V[i] / 10);
		V[i] %= 10;
	}
	reverse(V);
	int flag = false;
	string ret;
	rep(i, size) {
		if (V[i] == 0 && flag == false)continue;
		else {
			ret.push_back(num[V[i]]);
			flag = true;
		}
	}
	return ret;
}

int main() {
	string A, B;
	while (cin >> A >> B) {
		cout << bigsum(A, B).size() << endl;
	}
}

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

int main()
{
        int a, b, i;
        int sum;        

        while(scanf("%d %d", &a, &b) != EOF){
                sum = a + b;
                for(i=0; sum>0; i++){
                        sum /= 10;
                }

                cout << i << endl;
        }

        return 0;
}

C++: import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        while(true) {
            try{
            String[] line = br.readLine().split(" ");
            int length = String.valueOf(Integer.parseInt(line[0]) + Integer.parseInt(line[1])).length(); 
            System.out.println(length);
            }catch(NullPointerException e) {
                break;
            }
        }
    }
}