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>

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

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

 int main() {
	 
	 int a;
	 int b;
	 int k;
	 int n;

	 while (std::cin >> a >> b) {

		 k = 1;

		 n = a + b;

		 while (n >= 10) {
			 
			 n /= 10;
			 k += 1;

		 }
		 std::cout << k << std::endl;
	 }

}

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

	return 0;
}

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

C++: #include<stdio.h>

using namespace std;

int main(){
 int a, b, i;
 while(scanf("%d%d", &a, &b)!=EOF){
  a += b;
  for(i=0;i<201;i++){
   if(a/10==0){
    printf("%d\n", i+1);
    break;
   }
   else{
    a = a/10;
   }
  }
 }

 return 0;
}

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

C++: #include <algorithm>
#include <bitset>
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
#define FOR(x,a,b) for(int x=a;x<b;x++)
#define REP(x,b) for(int x=0;x<b;x++)
#define FORSIZE(x,A) for(int x=0;x<A.size();x++)
#define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)
#define SORT(x) sort(x.begin(),x.end())
#define RSORT(x) sort(x.rbegin(),x.rend())
#define rsort(x,n) sort(x, x+n, greater<int>())
#define REV(x) reverse(x.begin(),x.end())
using namespace std;
typedef long long ll;
inline int toInt(std::string s) {int v; std::istringstream sin(s);sin>>v;return v;}
template<class T> inline std::string toString(T x) {std::ostringstream sout;sout<<x;return sout.str();}

int main( int argc, const char* argv[] )
{
    string line;
    int a, b;
    while (cin >> a >> b) {
        cout << toString(a+b).size() << endl;
    }
    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 <iostream>
//using namespace std;

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

C++: #include<iostream>
using namespace std;
   
int main(){
   int a[200],b[200],c[200],digit[200];
   int i,imax,j;
   i = 0;
   j = 1;
   while(j){
     cin >> a[i] >> b[i];
     i++;
     if(a[i]==NULL||b[i]==NULL)
       break;
   }
   
   imax = i;
   for(i=0;i<imax+1;i++){
     digit[i] = 1;
     c[i] = a[i] + b[i];
   }   

   for(i=0;i<imax+1;i++){
     while(c[i]>=10){
       c[i] /= 10;
       digit[i]++;
     }
   }
   
   for(i=0;i<imax+1;i++)cout << digit[i] << endl;
   
   return 0;
}

C++: #include<iostream>
#include<cstdio>
using namespace std;
int main() {
	unsigned int a, b, i = 0;
	while (scanf_s("%d %d", &a, &b)!=EOF){
		a += b;
	while (1) {
		if (a / 10 != 0) {
			a /= 10;
			i++;
		}
		else
			break;
	}
	cout << i + 1 << endl;
	i = 0;
}
		return 0;
}

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

int main() {
	long a,b,c,ans;
	for(long i  = 0 ; i  <= 200; i++){
		cin >> a >> b;
		if(0 <= a,b  && b <= 1000000){
		ans = 0;
		c = a + b;
		while(c!=0){
		c = c / 10;

		++ans;
	}
	}
	cout << ans << endl;
	}
	return 0;
}

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

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

C++: #include <iostream>
#include <cmath>
int main()
{
  int a, b;
  while (std::cin >> a >> b) {
    for (int i = 1; i < 7; i++) {
      if (a + b < pow(10, i)) {
        std::cout << i << std::endl;
        break;
      }
    }
  }
  return 0;
}

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

int main(int,char**){
	int i,j,temp,digits;
	while(std::cin >> i){
		std::cin >>j;
		temp = i+j;
		digits=1;
		while(temp/=10) ++digits;
		std::cout << digits <<std::endl;
	}
	return 0;
}

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

int main(){
	int a,b,i = 0,c[200];
	while(cin >> a >> b){
		c[i] = a + b;
		i++;
	}
	for(int j = 0; j < i ; j++){
		int res = 0;
		while(c[j] > 0){
			res++;
			c[j] /= 10;
		}
		cout << res << endl;
	}
}

C++: #include <iostream>
using namespace std;
int main( void )
{
  int x,y,z;
  while( !cin.eof() ){
    cin >> x >> y;
    x += y;
    z = 0;
    if( x == 0 ) z = 1;
    while( x > 0 ){
      z++;
      x /= 10;
    }
    cout << z << endl;
  }
  return 0;
}

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

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

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

int main(){
	
	int a, b;
	while(std::cin >> a >> b){ // input
		std::cout << (int)log10(a + b) + 1 << std::endl;
	}
	
	return 0;
}

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

	}
	return 0;
}

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

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

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

int main(void)
{
	int i, x;
	int a,b;

	while(scanf("%d %d", &a, &b) != EOF){
		for(i = 0, x = a+b; x >= 1; x /= 10, i++);
		printf("%d\n", i);
	}


	return 0;
}

C++: #include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	int ab[200][2],f,i=0,a,g,k=0;
	while(cin>>f){
		scanf("%d %d",&ab[i][1],&ab[i][2]);
		i++;
	}
	for(int j=0;j<i;j++){
		a=ab[j][1]+ab[j][2];
		for(g=0;;g++){
			if(a==0){
				printf("%d\n",a);
				break;
			}
			a=a/10;
			k++;
			if(a==0){
				printf("%d\n",k);
				break;
			}
		}
		k=0;
	}
	return 0;
}

C++: #include<iostream>
#include<sstream>
#include<cstdio>
#include<fstream>
#include<vector>
#include<list>
#include<stack>
#include<queue>
#include<deque>
#include<map>
#include<set>
#include<algorithm>
#include<string>
#include<cmath>
#include<cstdlib>
using namespace std;

int size(int n){
	int ret = 0;
	while(n>0){
		++ret;
		n/=10;
	}
	return ret;
}

int main(){
	int i,j;
	while(scanf("%d %d",&i,&j)==2){
		printf("%d\n",size(i+j));
	}
	return 0;
}

C++: #include<stdio.h>
#define DATASET 200

int main(void)
{
	int a,b,n,i,k=0;

	for(i=0;i<DATASET;i++)
	{
	scanf("%d %d",&a,&b);
	}
	
	n=a+b;
	
while(n!=0)
{
	n=n/10;
	k++;
}
	printf("%d",k);

	
}