Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func Sliceconvtoi() []int {
	strs := strings.Split(sc.Text(), " ")

	var ints []int
	var x int

	for _, s := range strs {
		x, _ = strconv.Atoi(s)
		ints = append(ints, x)
	}

	return ints
}

func main() {
	for sc.Scan() {
		i := Sliceconvtoi()
		fmt.Println(int(math.Log10(float64(i[0]+i[1]))) + 1)
	}

}

C++: #include <iostream>
using namespace std;
int main(void){
    // Here your code !
    int a;
    int b;
    int num;
    
    cin>>a;
    cin>>b;
    cout<<a; cout<<" "; cout<<b<<endl;
      while(a<=0 && b<=0){
        a=a/10;b=b/10;
       a++;b++;
       cout<<num<<a+b;
    }
    
    



}

C++: #include<bits/stdc++.h>

using namespace std;

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

C++: #include <iostream>
#include <sstream>
int main()
{
        for(uint8_t i=0;i<200;i++)
        {
                std::string str;
                getline(std::cin, str);
                std::stringstream s(str);
                uint16_t a,b;
                s>>a>>b;
                uint16_t sum=a+b;
                uint8_t count;
                for(count=0;sum>0;count++)
                        sum=sum/10;
                printf("%u\n",count);
        }

        return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
    int a,b,sum=0,count;
    while(cin>>a>>b){
        count++;
        sum=a+b;
        if(sum<10)cout<<"1"<<endl;
        else if(sum<100)cout<<"2"<<endl;
        else if(sum<1000)cout<<"3"<<endl;
        else if(sum<10000)cout<<"4"<<endl;
        else if(sum<100000)cout<<"5"<<endl;
        else if(sum<1000000)cout<<"6"<<endl;
        else if(sum<10000000)cout<<"7"<<endl;
        else if(sum<100000000)cout<<"8"<<endl;
        
        if(count==200)break;
        
    }
    return 0;
}

C++: #include<iostream>

using namespace std;

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

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