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 <functional>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <iomanip>
#include <fstream>
#include <climits>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <bitset>
#include <queue>
#include <stack>
#include <cmath>
#include <ctime>
#include <deque>
#include <list>
#include <map>
#include <set>
using namespace std;

typedef long long LL;
typedef unsigned int ui;
typedef unsigned long long ULL;

typedef pair < int , int > ii;
typedef pair < LL  , LL  > ll;

typedef vector <int>  vint;
typedef vector <bool> vbool;
typedef vector <long> vlong;

#define sz(x)			((int)x.size())
#define tin(x)			scanf("%d",&x)
#define all(x)			x.begin(),x.end()
#define Set(b,a)		memset(b,a,sizeof b)
#define print1(x)		printf("Case %d:",x++)
#define tin2(x,y)		scanf("%d%d",&x,&y)
#define tin3(x,y,z)		scanf("%d%d%d",&x,&y,&z)
#define loop(i,i0,in)	for(int i=i0 ; i<in ; i++)
#define rep(i,n)		for(int i=0 ; i<(n) ; i++)
#define _rep(i,n)		for(int i=n-1 ; i>=0 ; i--)
#define _loop(i,in,i0)	for(int i=in-1 ; i>=i0 ; i--)
#define Fore(it, x)		for(typeof (x.begin()) it = x.begin(); it != x.end (); it++)
     
int main()  
{  
#ifdef Online_Judge
	freopen("a.in","r",stdin);
#endif
	int x,y;
	int ans=0;
	while(tin2(x,y)==2)
	{
		ans=0;
		x=x+y;
		while(x!=0)
		{
			x/=10;
			ans++;
		}
		printf("%d\n",ans);
	}
	return 0;
}

C++: #include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<queue>
#include<cstdio>
#include<climits>
#include<cmath>
#include<cstring>
#include<string>

#define f first
#define s second
#define mp make_pair

#define REP(i,n) for(int i=0; i<(int)(n); i++)
#define FOR(i,c) for(__typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++)
#define ALL(c) (c).begin(), (c).end()

using namespace std;

typedef unsigned int uint;
typedef long long ll;

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

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

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

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

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

int main() {
	int a, b;
	int D[200] = { 0 };
	for (int i = 0; i < 200; ++i) {
		int digits = 1;
		cin >> a >> b;
		int n = a + b;
		n /= 10;
		while (n) {
			++digits;
			n /= 10;
		}
		cout << digits << endl;
	}

	
}

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


int main(){

	int a, b;
	
	while( cin >> a >> b){
		double x = 0;
		for(; a+b >= pow(10,x);x += 1){
		}
		cout << x << '\n';

	}
	return 0;
}

C++: #include <cstdio>
using namespace std;
int main(){
        long a,b,i;
        while(scanf("%ld %ld",&a,&b)!=EOF){
                i=1;a+=b;
                while(i>a) i*=10;
                printf("%ld",i-1);
        }
        return 0;
}

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

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

C++: #include <iostream>

using namespace std;

int main() {
    int a, b;
    while(true) {
        cin >> a;
        if(cin.eof()) break;
        cin >> b;
        if(cin.eof()) break;
        int ans=0;
        int temp=a+b;
        while(temp>0) {
            temp/=10;
            ++ans;
        }
        cout << ans << endl;
    }

    return 0;
}

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

	return 0;
}

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

int main(){

	int a = 0;
	int b = 0;
	int c = 0;
	int e = 0;

	for (int i = 0; i < 3; i++)
	{
		scanf("%d", &a);
		scanf("%d", &b);

		c = a + b;

		for (e = 0; c != 0; e++)
		{
			c /= 10;
		}

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

	return 0;
}

C++: #include <iostream>
using namespace std;
  
int main()
{
    int sum, a, b, i,t;
      
    while(cin >> a >> b)
   {
  
      sum = a + b;
      i = 1;
      while(1)
      {
          sum = sum / 10;
  
          if(sum == 0)
             break;
  
          i++;
      }
  
      cout << i << endl;
   }
  
   return 0;
}

C++: #include<iostream>
#include<math.h>
using namespace std;
int main(){
int a,b,ans;
while(cin>>a>>b){
ans=0;
a=a+b;
for(a;a>10;a/10){
ans++;
}
cout<<ans+1<<endl;

}
return 0;
}

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

 int digit(int a)
 {
  int count=0;
  while (a)
  {
    a/=10 ;
    count++;
  }
  return count;
}

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

C++: include<bits/stdc++.h>
#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 <iostream>
#include <cmath>
#include <vector>
#include <limits>
#include <algorithm>
#include <functional>
#include <cstdio>
using namespace std;

#define REP( i, n )	for( int (i) = 0; (i) < (n); (i)++ )
#define ALL( x )	(x).begin(), (x).end()

int main() {
	int a, b;
	while( ( scanf( "%d %d", &a, &b ) ) != EOF ) {
		
		int sum = a + b;

		int count = 1;
		while( 1 ) {
			sum /= 10;
			if( sum < 1 ) break;
			count++;
		}

		cout << count << endl;
	}

}

C++: #include <iostream>

int main()
{
    for (int i = 0; i < 200; i++) {
        int a;
        int b;
        std::cin >> a;
        std::cin >> b;

        int c = a + b;
        int digit = 1;
        bool loop = true;
        while (loop) {
            if (c / 10 >= 1) {
                digit += 1;
                c = (c - (c % 10)) / 10;
            } else {
                loop = false;
                break;
            }
        }
        std::cout << digit << std::endl;
    }
}

C++: #include<iostream>
using namespace std;
int keta(int a,int b)
{
	return (a+b)/10-(a+b)%10;
}
int main()
{
	int a[200],b[200];
	int i=0;
	while(cin){
		cin>>a[i],b[i];
		i++;
	}
	int j = 0;
	while(i<j){
		cout<<a[j],b[j];
		cout<<"\n";
		j++;
	}
	getchar();
	getchar();
	return 0;
}

C++: #include <iostream>

using namespace std;

int main(int argc, char const* argv[])
{
	int hoge,a,b;

	cin >> a >> b;

	hoge = a + b;

	int i;
	for( i = 0;(hoge /= 10) != 0 ; i++ );

	cout << ++i;

}

C++: #include<iostream>

using namespace std;

int main()
{
	int n1,n2;
	int ans;
	int sum;
	
	for(;cin >> n1;)
	{
		cin >> n2;
		
		ans=1;
		sum=n1+n2;
		
		for(;sum/10>0;sum/=10)
			ans++;
		
		cout << ans << endl;
	}
}