Go: package main

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

func sliceAtoi(sa []string) ([]int, error) {
	si := make([]int, 0, len(sa))
	for _, a := range sa {
		i, err := strconv.Atoi(a)
		if err != nil {
			return si, err
		}
		si = append(si, i)
	}
	return si, nil
}

func getDigits(ary []int) (digits int) {
	sum := 0
	for _, v := range ary {
		sum += v
	}

	for sum != 0 {
		sum /= 10
		digits++
	}
	return
}

func getsTwoNumAsArray() (nums [][]int) {
	scanner := bufio.NewScanner(os.Stdin)

	for scanner.Scan() {
		str := scanner.Text()
		if str == "" {
			break
		}

		ary, _ := sliceAtoi(strings.Split(str, " "))
		nums = append(nums, ary)
	}

	return
}

func main() {
	ary := getsTwoNumAsArray()

	for _, v := range ary {
		fmt.Println(getDigits(v))
	}
}

C++: #include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <typeinfo>

using namespace std;

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

C++: #include <stdio.h>

int main(){

	int a=0,b=0;

	while (scanf("%d%d", &a, &b) !=EOF){
		
		if (a + b < 10){
			printf("1\n");
		}else if(a + b < 100){
			printf("2\n");
		}else if (a + b < 1000){
			printf("3\n");
		}else if (a + b < 10000){
			printf("4\n");
		}else if (a + b < 100000){
			printf("5\n");
		}else if (a + b < 1000000){
			printf("6\n");
		}else{
			printf("7\n");
		}
	}
	return 0;
}

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

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

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

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

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i,o,b=0,f;
    for(int p=0;p<200;p++){
        cin>>i>>o;
        b=0;
        f=i+o;
        if(f<=0){
            break;
        }
        for(int j=1;j<=1000000;j=j*10){
            if(i+o>=j){
                b++;
            }else{
                break;
            }
        }
        cout<<b<<endl;
        }
}

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

template<class T>
T input()
{
	T val;
	std::cin >> val;
	return val;
}

int main()
{
	while (true)
	{
		int hoge = input<int>() + input<int>();
		std::cout << static_cast<int>(log10(hoge)) + 1 << std::endl;
	}

	return 0;
}

C++: 
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <algorithm>
#include <math.h>
#include <utility>
#include <set>
#include <map>
#define INF 100000
using namespace std;

int dig(int n){
    int ans =0;
    while (n>0) {
        n/=10;
        ans++;
    }
    return ans;
}

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

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

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

	while(1){
		cin >> a >> b;
		if(cin.eof()){
			break;
		}

		sum = a + b;

		for(int i=1; ; ++i){
			if(sum<10){
				cout << i << endl;
				break;
			}else{
				sum /= 10;
			}
		}
	}

	return 0;
}

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

using namespace std;

static int count_digit(const int a, const int b) {
	return to_string(a + b).length();
}

int main(void) {
	int a, b;
	while(cin >> a){
		cin >> b;
		cout << count_digit(a, b) << endl;
	}
	return 0;
}

C++: #include <stdio.h>

int main()
{
	int a,b;

	while(1)
	{
		int kai;
		int i = 1;
		int j = scanf("%d %d" , &a,&b);
		if(j==EOF) break;

		kai = a+b;

		while(kai > 9)
		{
			kai /= 10;
			i++;
		}

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

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

int main() {
	int a,b,c;
	while(cin>>a>>b){
		c=a+b;
			if(c<10){
				cout<<"1\n";
			}
			else if(c>9&&c<100){
				cout<<"2\n";
			}
			else if(c>99&&c<1000){
				cout<<"3\n";
			}
			else if(c>999&&c<10000){
				cout<<"4\n";
			}
			else if(c>9999&&c<100000){
				cout<<"5\n";
			}
			else if(c>99999&&c<1000000){
				cout<<"6\n";
			}
			else{
				cout<<"7\n";
			}
	}
}

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

#define add push_back
#define inf 2147000000

#define rep(i,n) for(int i=0;i<n;i++)

using namespace std;

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

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

using namespace std;

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

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

C++: #include "bits/stdc++.h"
using namespace std;
int main(){
    int a, b;
    int sum;
    string ans;
    while(cin >> a >> b){
        sum = a + b;
        ans = to_string(sum);
        cout << ans.size() << endl;
    }     
    return 0;
}

C++: #include <iostream>

using namespace std;
int main(){
	int a, b, i = 1, s;
	
	cin >> a >> b;
	s = a + b;
	
	while(s > 10){
		s = s / 10;
		i++;
	}
	
	cout << i;
	return 0;
}

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

int main() {
	int a,b;
	while(scanf("%d %d", &a, &b) != EOF) {
		int total=a+b,ans=1;
		while(total>10) {
			total/=10;
			++ans;
		}
		printf("%d\n",ans);
	}
}

C++: #include<cstdio>

int main(){
int a,b;
 while(scanf("%d%d",&a,&b)){
 printf("%d\n",a+b);
}
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<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;
}