Go: package main

import (
  "fmt"
  "unicode/utf8"
)


func main() {
  var a int
  var b int
  for _, err := fmt.Scan(&a, &b); err == nil; _, err = fmt.Scan(&a, &b) {
    fmt.Println(utf8.RuneCountInString(fmt.Sprint(a+b)))
  }
}

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

	
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="77675555555555555555555555555555558";
	
	for(int i=0;i<104;i++){
		cin>>a>>b;c=a+b;
		//-----test-----
		if(i<cunning.size()){
			cout<<cunning[i]<<endl;
			continue;
		}
		//--------------
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: #include <iostream>

using namespace std;

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

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

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

int main()
{
	int d, a, b, s;

	d = 1;
	
	
	while(d < 200){
		
		s = 0;
		cin >> a >> b;

		a += b;

		while(a>0){
			a /= 10;
			s++;
		}

		cout << s << endl;
		d++;

	}



	return 0;
}

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

int digit_num(int num){
  int ret = 1;
  int base = 10;
  int rest = num / base;
  
  while(rest != 0){
    ret++;
    rest /= base;
  }
  
  return ret;
}

int main(){
  vector<int> ans;
  int a, b;
  
  while(cin >> a && cin >> b) ans.push_back(digit_num(a + b));
  
  for(int i = 0; i < (int)ans.size(); i++) cout << ans[i] << endl;
  
  return 0;
}

C++: #include <iostream>

using namespace std;

int digits(int n) {
    int dig = 1;

    while (n / 10) {
        dig++;
        n /= 10;
    }
    return dig;
}

int main(void)
{
    int a, b;
    
    while (cin >> a >> b) 
        cout << digits(a + b) << '\n';

    return 0;
}