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 <stdio.h>
#include <string.h>
#include <math.h>
#include <cstdlib>
#include <stack>
#include <queue>
#include <list>
#include <vector>
#include <sstream>

using namespace std;

class c_main
{
private:
    
public:
    c_main();
    void f_input();
    int f_digit(int sum);
};

int c_main::f_digit(int sum){
    int digit=0;
    while(sum!=0){
        sum /= 10;
        digit++;
    }
    return digit;
}

c_main::c_main()
{
    int a,b;
    int cnt;
    
    cnt = 0;
    
    for (;cin >> a >> b;){
        cout << f_digit(a+b) << endl;
    }
}

void c_main::f_input()
{
    
}

int main(){
    c_main main01;
    main01.f_input();
    
    return 0;
}

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

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

        cout << ans << endl;
    }

    return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int x,y;
    for(;;){
        cin >> x >> y;
        if(cin.eof())   break;
        cout << to_string(x+y).length() << "\n";
    }
}

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

int main(){
	int a,b,keta[300] = {0},kcor = 0;
	while(cin >> a){
		cin >> b;
		keta[kcor] = log10(double(a+b))+1.000001;
		kcor++;
	}
	for(int i = 0;i < kcor;i++){
		cout << keta[i] << endl;
	}
	return 0;
}

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

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

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

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

C++: #include <iostream>
using namespace std;
int i,a,b;
string s;

int main() {
	while(cin>>a>>b){
		a = a+b;
		s = to_string(a);
		cout << s.size() << endl;
	}
	return 0;
}

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

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

  return 0;
}

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

int main()
{
	int a, b, sum, ans;
	while(cin >> a >> b)
	{
		sum = a + b;
		ans = (int)log10 ((double)sum)+ 1;
	    cout << ans << endl;
	}
	
	return 0;
}

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

int main(void)
{
	int a,b,digit;
	while(1){
		if(scanf("%d %d",&a,&b) ==EOF) break;
		digit = log10((double)(a+b));
		printf("%d\n",digit+1);
	}
	return 0;
}

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

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

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

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

C++: #include <stdio.h>
#include<iostream>
#include<math.h>
int uncoo(int n){
 return (int)(logf((float)n)/logf(10.0))+1;
}
int main(){
	using namespace std;
	int unco[200],temp,i;
	for(i=0;i<200;i++){
		if(!(cin>>unco[i]))break;
		cin>>temp;
		unco[i]+=temp;
	}
	for(int j=0;j<i;j++){
		cout<<uncoo(unco[j])<<endl;
	}
	return 0;
}

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

using namespace std;

int main(void){

 int a,b;
 int ans;

 while(1){
  cin >> a >> b;

  if(a==b==0)
   break;

  ans=log10(a+b)+1;
  cout << ans << endl;
 }
}

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

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

C++: #include <iostream>
using namespace std;
int main(){

	int a,b;
	int i=0;
	while(i<200){
		cin>>a>>b;
		int c = a+b;
		int d = 1;
		int e = 10;
		for(int j=0;j<10;j++){
			if(c == 0){
				cout<<1<<endl;
			}else if(c >= d && c < e){
				cout<<j+1<<endl;
			}
			d = d * 10;
			e = e * 10;
		}
		i++;
	}	
	return 0;
}

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

using namespace std;

int main(){

	int a, b;
	cin >> a >> b;
	cout << a + b << endl;

	system("pause");
	return 0;
}

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

using namespace std;

int digit(int n); 
int main()
{
    int a[200],b[200];
    int len=0;

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

    for (int i=0; i < len; i++) {
        cout << digit(a[i]+b[i]) << endl;
    }   

    return 0;
}

int digit(int n) {
    int digit=1;
    while ((n /= 10) != 0)  
        digit++;
    return digit;
}

C++: #include<stdio.h>

 int main(void){
   int div;
   int i,s,sum,count;
   while(fscanf(stdin,"%d %d",&i,&s) != EOF){
     sum = i + s;
     div = 1;
     count = 0;
     while(1){
       if(sum/div == 0){
         break;
       }
       div *= 10;
       count++;
     }

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

   return 0;
 }

C++: #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<cmath>
#include<map>
#include<list>
#include<set>
using namespace std;
int main() {
  int a, b;
  while (cin >> a >> b) {
    if (a + b < 10){
      cout << 1 << endl;
    }
    else if (a + b < 100){
      cout << 2 << endl;
    }
    else if (a + b < 1000) {
      cout << 3 << endl;
    }
    else if (a + b < 10000) {
      cout << 4 << endl;
    }
    else if (a + b < 100000) {
      cout << 5 << endl;
    }
    else if (a + b < 1000000) {
      cout << 6 << endl;
    }
    else if (a + b < 10000000) {
      cout << 7 << endl;
    }
  }

  return 0;
}

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

int unsignedGeddigit(int a){
	return log10(a)+1;
}

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

	return 0;
}

C++: #include <iostream>

using namespace std;
int a,b;
int sum;
int digit;
int main()
{
    while(cin>>a>>b)
    {
        sum = a+b;
        while(sum>0)
        {
            sum/=10;
            digit++;
        }
        cout << digit;
        cout << endl;
        digit = 0;
    }
}

C++: #include <iostream>

using namespace std;

void solve()
{
	while(true)
	{
		int a, b;
		cin >> a >> b;
		int sum = a + b;
		int count = 0;
		while(sum)
		{
			sum /= 10;
			++count;
		}
		cout << count << endl;
	}
}

int main()
{
	solve();
	return(0);
}