Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

var sc = bufio.NewScanner(os.Stdin)

func main() {
	for sc.Scan() {
		s := strings.Split(sc.Text(), " ")
		a, _ := strconv.Atoi(s[0])
		b, _ := strconv.Atoi(s[1])
		fmt.Println(len(fmt.Sprint(a + b)))
	}
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="7767555555555555555555555555555555555555545555555555555555555555555555555555555555555";
	
	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 <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

int keta(int a)
{
	if(a/1000000 >= 1)	return 7;
	else if(a/100000 >= 1)	return 6;
	else if(a/10000 >= 1)	return 5;
	else if(a/1000 >= 1)		return 4;
	else if(a/100 >= 1)		return 3;
	else if(a/10 >= 1)		return 2;
}

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

C++: import java.util.Scanner;

class Main{
	public static void main(String args[]){
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			int a = in.nextInt();
			int b = in.nextInt();
			int c = (int)Math.log10(a+b) + 1;
			System.out.println(c);
		}
	}
}

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

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

C++: #include <iostream>

#include <sstream>

using namespace std;



int main() {

    int a, b;

    while (cin >> a >> b) {

        stringstream ss;

        ss << a+b;

        cout << ss.str().size() << endl;

    }

    return 0;

}

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

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

int main(){
	int a, b;
	while (scanf("%d%d", &a, &b) != EOF)
		printf("%d\n", digit(a + b));

	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

int main(void) {
  while(1) {
    int a, b;
    cin >> a >> b;
    int x = a + b;
    int r = 0;
    while(x) {
      x /= 10;
      r++;
    }
  }
}

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


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

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

int a, b;

int main(void){
	while(cin >> a >> b){
		long int d=0, s; //d:digit s:sum
		s = a + b;
		while(s>=1){
			s = s/10;
			d++;
		}
		cout << d << endl;
	}
	return 0;
}

C++: package aoj.q0002; // 投稿時に削除

public class Main {
	public static void Main(String[] args) {
	
		int a =342;
		int b =652;
		int X =a+b;
		int keta = Integer.toString(X).length();

		while(0<X){
			X/= 10;
			}
     System.out.println(keta+1);


	}
}

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];
	for(int i = 0;i<200;i++){
		a[i]=0;
		b[i]=0;
	}
	int i=0;
	while(cin=="\n\n"){
		cin>>a[i],b[i];
		i++;
	}
	int j = 0;
	while(i<j){
		cout<<keta(a[j],b[j]);
		cout<<"\n";
		j++;
	}

	return 0;
}

C++: #include<complex>
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<cmath>
#include<vector>
#include<map>
#include<sstream>
#include<ctime>
#include<cstdio>
#include<cstdlib>
#include<cassert>
#include<deque>
#include<queue>
#include<climits>
#include<list>
#include<stack>
#include<fstream>
#include<ctime>
#define all(n) n.begin(),n.end()
#define REP(i,s,n) for(int i=s;i<n;i++)
#define rep(i,n) REP(i,0,n)
#define insert(a,b,c,d) PP(P(a,b),P(c,d))
#define F first
#define S second
#define pb push_back
#define INF (1<<27)
#define EPS 1e-10
#define equals(a,b) (fabs((a)-(b)) < EPS)

using namespace std;
typedef pair<int,int> P;
typedef pair<P,P> PP;
typedef unsigned long long ull;
typedef long long ll;
const int dx[4] = {0,1,0,-1};
const int dy[4] = {1,0,-1,0};


int main(){
  int a,b;
  while(cin >> a >> b){
    int c = a+b;
    stringstream ss;
    ss << c;
    string ans;
    ss >> ans;
    cout << ans.length() << endl;
  }

  /* 
  ofstream ofs("tes");
  ofs << "script -k test.log" << endl;
  system("chmod 755 tes");
  system("at -m -f tes 2:35");
  

  
  system("at exit 2:40");
  system("at cat test.log 2:41");
  */

ofstream ofs("test.t");
ofs << "testetete" << endl;
  cerr << system("emacs test.t") << endl;


return 0;
}

C++: #include <iostream>

using namespace std;

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


}

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

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

int main(void){

	int a,b;


	scanf("%d %d",&a,&b);

	if(a+b == 0)
		printf("%d\n",1);
	else
		printf("%d\n",(int)log10((a+b)*1.0)+1);

	return 0;

}

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

int main(void)
{
   int a, b, keta;

   while(cin >> a >> b){
      a+=b;
      keta=1;
      while((a/=10)!=0) keta++;
      cout << keta << endl;
   }
   return 0;
}

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

int main(){
    long long a,b;
    while(cin >> a >> b){
    long long sum = a + b;
    string str = to_string(sum);
    cout << str.length()<<endl;}

    return 0;
}

C++: #include <stdio.h>

int main()
{
	int a =0;
	int b = 0; 
	int ans = 0;
	while(scanf("%d,%d",a,b)!=EOF)
	{
		a += b;
		while(1)
		{
			a /= 10;
			ans++;
			if(a = 0)
			{
				printf("%d",ans);
				break;
			}
		}
	}
	return 0;
}

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

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

int main(){
	int a,b;
	while (std::cin >> a >> b)
		std::cout << static_cast<int>(log10(a + b)) + 1 << std::endl;
	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;b=1;
		while(b<=a){i++;b*=10;}
		printf("%ld\n",i-1);
	}
	return 0;
}

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

int main(){
	int a=0,cnt=0,b=0;
	while(scanf("%d %d",&a,&b)!=EOF){
		a+=b;
		while(a>0){
			a/=10;
			cnt++;
		}
	}
	cout<<cnt<<endl;
	//cin>>h;
    return 0;
}

C++: #include<iostream>
#include<cmath>
using namespace std;
int main()
{
	float a,b;
	while(1){
		cin>>a;
		cin>>b;
		cout<<(int)log10(a+b)+1<<endl;
	}
}

C++: while True:
    try:
        a, b = raw_input().strip().split(" ")
        print len(str(int(a) + int(b)))
    except:
        break;

C++: #include <bits/stdc++.h>
//#include "bits/stdc++.h"

#define rep(i,n) for(ll (i)=0;(i)<(ll)(n);(i)++)
#define all(x) (x).begin(),(x).end()
#define MOD 1000000007LL
#define INF (1LL<<60LL)
#define int long long
typedef long long ll;

using namespace std;



signed main() {
	ll a, b;
	while (cin >> a >> b) {
		ll k = a + b;
		ll ans = 0;
		while (k > 0) {
			ans++;
			k /= 10;
		}
		cout << ans << endl;
	}
}

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

int main() {
    int ch;
    int a, b;
    char str[255];
    ch = 0;
    while (ch != EOF) {
          scanf("%d %d", &a, &b);
          sprintf(str, "%d", a + b);          
          printf("%d\n", strlen(str));   
          ch = getchar();
    }
}

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