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 <functional>
using namespace std;

int main(){

	int i=0,n;
	int a[10000];


	while(cin >> n){
		a[i]=n;
		i++;
	}
	sort(a, a + i, greater<int>());
	for(i=0;i<3;i++)
		cout << a[i] << endl;

    return 0;
}

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

using namespace std;

int main() {
    int a, b;
    while(cin >> a >> b) {
        int c = a+b;
        ostringstream os;
        os << c;
        cout << os.str().length() << endl;
    }
    return 0;
}

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

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

using namespace std;

int main()
{
	int a[2];
	int a_keta,b_keta;

	while(1)
	{
		if(scanf("%d %d", &a[0],&a[1])==EOF)break;
		a_keta=(int)log10(a[0]+a[1])+1;

		cout<<a_keta<<"\n";				 
	}
	return 0;
}

C++: //
// Created by tac on 2016/10/27.
//

#include <cstdlib>
#include <iostream>
#include <cmath>

namespace {
int digit(long n) {
    return static_cast<int>(std::floor(std::log10(n)) + 1);
}
}

int main() {
    long a, b;
    while (std::cin >> a >> b) {
        std::cout << digit(a + b) << std::endl;
    }
    return EXIT_SUCCESS;
}

C++: #include<stdio.h>

int main()
{
    long long int n,x,y,a,b;
    while((scanf("%lld%lld",&a,&b))!=EOF)
    {
        long long int ca=0,cb=0;
        while(a!=0)
        {
            x=a/10;
            y=a%10;
            if(y!=0)
                ca++;
            a=x;
        }
        while(b!=0)
        {
            x=b/10;
            y=b%10;
            if(y!=0)
                cb++;
            b=x;
        }
        printf("%lld\n",ca+cb);
    }
    return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>

using namespace std;

int main(){
	int a;
	int b;
	

	for (int i = 0; i < 200; i++){
		cin >> a >> b;
		int  c = a + b;
		if (c <= 0 && c < 10){
			cout << "1" << endl;
		}
		else if (c <= 10 && c < 100){
			cout << "2" << endl;
		}
		else if (c <= 100 && c < 1000){
			cout << "3" << endl;
		}
		else if (c <= 1000 && c < 10000){
			cout << "4" << endl;
		}
		else if (c <= 10000 && c < 100000){
			cout << "5" << endl;
		}
		else if (c <= 100000 && c < 1000000){
			cout << "6" << endl;
		}
	}
	
	return 0;
}

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

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

#define world main
#define fate cin
#define reinforce cout
#define moratorium return
#define zero 0
#define nostalgia endl
#define eternal while
#define de >>
#define the <<
#define key )
#define night (
#define destiny 1
#define lost =
#define as +
#define secret 10
#define get ()
#define down {
#define death }
#define have /=
#define done ;
typedef int dark;


dark world get down
	dark vais, leon done
	eternal night fate de vais de leon key down
		dark god lost destiny done
		dark ex lost vais as leon done
		eternal night ex have secret key god++ done
		reinforce the god the nostalgia done
	death
	moratorium zero done
death

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

template<class T>
T input()
{
	T val, val1;
	std::cin >> val >> val1;
	if (val == '\0')return EOF;
	else			return val+val1;
}

int main()
{
	std::vector<int> x;
	int hoge;
	while ((hoge = input<int>()) != EOF)
	{
		x.push_back(hoge);
	}

	for (int i = 0; i < x.size(); ++i)
		std::cout << static_cast<int>(log10(x[i])) + 1 << std::endl;
	return 0;
}

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

using namespace std;

int main (void) {
    int a, b, sum;
    while (1) {
        cin >> a;
        cin >> b;
        if (cin.eof()) break;
        sum = a + b;
        if (sum == 0) cout << 1;
        else cout << (int)(log10(sum) + 1);
    }
    return 0;
}

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

int main() {
/*	int a[3];
	cin >> a[0] ;
	a[1] = 3;
	a[2] = a[0] * 10;

	cout << a[0] <<" " << a[1] <<" "<< a[2] << endl;
	
	for (int i = 0; i < 3; i++) {
		cout << a[i] << endl;
	}


	sort(a,a+5);
*//*
	int a[10];
	for (int i = 0; i < 10; i++) {
		cin >> a[i];
	}
	
	sort(a,a+10,greater<int>());

	for (int i = 0; i < 3; i++) {
		cout << a[i]<<endl;
	}
*/
	int ans = 0;
	int a, b,c;
	while (true) {
		ans = 0;
		cin >> a >> b;
		c = a + b;

		while (c > 0) {
			c /= 10;
			ans++;
		}cout << ans << endl;
	}
	
	return 0;;
}

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

int main()
{
	int a[200],b[200],sum[200],keta[200],cnt=0,set=3,i=0;

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

	for(i=0;i<set;i++){
		sum[i]=a[i]+b[i];
		while(sum[i]!=0){
			sum[i]=sum[i]/10;
			cnt++;
		}
		cout << cnt << endl;
		cnt=0;
	}

	return 0;
}

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

int main() {
	long long a, b;

	while (cin >> a >> b) {
		long long N = a + b;
		int digit = 0;

		while (N) {
			digit++;
			N /= 10;
		}
		cout << digit << endl;
	}
}

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

int get_digit(int num);

int main() {
	int first;
	int second;
	int data_cnt = 0;
	std::vector<int> inputs;

	while ((cin >> first >> second) || (data_cnt < 200)) {
		data_cnt++;
		inputs.push_back(first + second);
	}

	for (int i = 0; i < data_cnt; i++) {
		cout << get_digit(inputs[i]) << endl;
	}

	return 0;
}

int get_digit(int num) {
	return std::to_string(num).length();
}

C++: #include<stdio.h>
#include<string.h>
int main(void){
    int a,b;
    char str[10];
    while(scanf("%d%d",&a,&b) !=EOF){
        sprintf(str,"%d",a+b);
        printf("%d\n",strlen(str));
    }
    return 0;
}

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

using namespace std;

int main()
{
	int a, b;

	while(cin >> a >> b){
		a = a+b; b=0;
		while(true){
			if(a==0){cout << b << endl; break;}
			a=a/10; b++;
		}
	}

	return 0;
}

C++: /*
C++ ???????????????????????????????????¬??????
??????AOJ-ITP1??????????????????
*/
#define _USE_MATH_DEFINES

#include <iostream> // ?¨??????\??????
#include <fstream>  // ??????????????\??????
#include <string>   // ???????????¢???
#include <vector>   // ???????????????
#include <cmath>    // ??°??????
#include <iomanip>  // stream???????????¢???
#include <algorithm>// max??¢??°??????

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;        // ????´???°????????????????????????
using std::fixed;         // ???????????????????¨???????????????????????????????
using std::setprecision;  // ?????°????°???°?????\???????????°????????????????????¨????????\???

int main() {
	int a, b, c;
	int count;
	while (cin >> a >> b)
	{
		// ??\???
		c = a + b;
		count = 0;

		// ?????°??????
		do
		{
			c = c / 10;
			count++;
			cout << c << endl;
		} while (c > 0);
		cout << count << endl;
	}

	return 0;
}