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(){
	int a,b,c;
	int ans;
	
	for(int i=0;i<103;i++){
		cin>>a>>b;c=a+b;
		//-----test-----
		
		//--------------
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int digit(int);
int main(){
  int a,b,x;
  while(cin >>a>>b && a!=EOF){
    x=a+b;
    cout <<digit(x)<<endl;}
    return 0;
}

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

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

using namespace std;

int main(void){
	int i, j;
	while (cin >> i >> j){
		int tmp = i+j;
		stringstream ss;
		ss << tmp;
		string c = ss.str();
		cout << c.length() << endl;
	}
	return 0;
}

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

string sum(string s, string t){
    reverse(s.begin(), s.end());
    reverse(t.begin(), t.end());
    
    string res;
    int carry = 0;
    int md = max(t.size(), s.size());
    for(int i=0; i<=md; i++){
        int sc = i<s.size()? s[i]-'0': 0;
        int tc = i<t.size()? t[i]-'0': 0;
        int d = sc + tc + carry;
        char nd = '0' + (d%10);
        if(i == md && nd == '0')
            continue;
        res += nd;
        carry = d/10;
    }
    reverse(res.begin(), res.end());
    return res;
}

int main(){
    string s, t;
    while(cin >> s >> t){
        cout << sum(s, t).size() << endl;
    }
    return 0;
}

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

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