Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
	"unicode/utf8"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	var strs []string
	var a, b, sum int64
	var digits int
	for scanner.Scan() {
		strs = strings.Split(scanner.Text(), " ")
		a, _ = strconv.ParseInt(strs[0], 10, 64)
		b, _ = strconv.ParseInt(strs[1], 10, 64)

		sum = a + b
		// goでlen(string)はbyte数が返る
		digits = utf8.RuneCountInString(strconv.FormatInt(sum, 10))

		fmt.Printf("%d\n", digits)
	}
}

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

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

C++: #include <bits/stdc++.h>
#define INT(name) int name; scanf("%d",&name);
#define VINT(name,n) vector<int> name(n); for(int i = 0;i < n;i++) scanf("%d",&name[i]);

using namespace std;

int main(int argc, char const *argv[]){
	int a,b;
	vector<int> answer;
	while(1){
		cin >> a >> b;
		printf("%d\n",(int)log10(a+b) + 1);
		if(cin.bad()) break;
	}
}

C++: #include<iostream>

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

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

int main()
{
	int a, b,sum,n;
	n = 0;
	cin >> a >> b;

	sum = a + b;

	for (;;)
	{
		sum = sum / 10;
		n = n + 1;

		if (sum == 0)
		{
			break;
		}
	}

	cout << n << endl;
  return 0;
}

C++: #include <stdio.h>

int main(){
	
	int x ,y;
	while(	scanf("%d %d",&x,&y) != EOF){
		int z  = x+y;
		int digCnt = 1;
		while(z/10!=0){
			z/=10;
			digCnt++;
		}
		printf("%d",digCnt);
	}
	
	return 0;
}

C++: #include "stdafx.h"


int main()
{	
	int a,b,digit;
	scanf("%d %d", &a, &b);
	digit = 0;


	while(a != 0){
		a = a / 10;
		++digit;
	}

	while (b != 0) {
		b = b / 10;
		++digit;
	}

	printf("%d", digit);
    return 0;
}

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

int main(){
    int count = 0;
    int digit_num;
    int a[200],b[200];
    int sum;
    while(1){
        cin >> a[count] >> b[count];
        if(a[count] >=0 && a[count] <= 1000000)
            if(b[count] >= 0 && b[count] <= 1000000){
                sum = a[count] + b[count];
                digit_num = 1;
                while((sum/10) != 0){
                    digit_num ++;
                    sum = sum / 10;
                }
                cout << digit_num<<endl;
                count++;
                if(count >200) break;
            }
    }
    return 0;
}

C++: #include <stdio.h>

int main() {
	int a, b, sum, i = 1;

	while(scanf("%d %d", &a, &b) != EOF){

	sum = a + b;

	while (sum / 10 != 0){
		sum = sum / 10;
		i++;
	}

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

	return 0;
}

C++: #include <cstdio>
  
#define MAX 1000000
#define MIN 0
#define SIZE 200
  
int main() {
 int i,j;
 int a,b;
 int cnt = 0;
 int buf = 0;
 int sets[SIZE];
  
 while(scanf("%d %d",&a,&b) != EOF) {
  if((a < MIN) || (b > MAX)) {
   continue;
  }
   
  sets[cnt] = a + b;
  ++cnt;
 }
 
 for(i = 0;i <= cnt;++i) {
  j = MAX;

  while(j != 0) {
   if((sets[i] / j) != 0) {
    ++buf;
    sets[i] -= (sets[i] / j) * j;
   }
  
   j /= 10;
  }
 
  buf = 0;
 }
 
 for(i = 0;i <= cnt;++i) {
  printf("%d\n",sets[i]);
 }
 
 return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
  long int a,b;
  int x[200];
  int n = 0;
  while(cin >> a >> b){
    x[n] = 1;
    a = a + b;
    while(1){
      a = a/10;
      if(a >= 1)
        x[n]++;
      else
        break;
    }
    n++;
  }

  for(int i = 0; i < n; i++)
    cout << x[i] << '\n';

  return 0;
}

C++: #include <stdio.h>
int main()
{
  int a,b,sum,cou;
  while( scanf("%d %d",&a,&b)!=EOF ){
    //printf("%d%d",a,b);//
    sum=a+b;
    cou=0;
    while(1){
      if(sum<10)break;
      sum=sum/10;
      cou++;
    }
    printf("%d\n",cou+1);
  }
  return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <array>
#include <queue>
#include <deque>
#include <set>
#include <list>
#include <map>
#include <stack>
#include <utility>
#include <algorithm>
#include <numeric>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <climits>
#include <bitset>
#include <random>
#include <functional>
#include <sstream>
#include <iomanip>

using namespace std;

#define _CRT_SECURE_NO_WARNINGS
#define rep(i, n) for(int i=0; i<(n); i++)
#define FOR(i, m, n) for(int i=(m);i<(n);i++)
#define SZ(x) ((int)(x).size())
#define all(x) (x).begin(),(x).end()
#define SORT(x) sort((x).begin(),(x).end())
#define REVE(x) reverse((x).begin(),(x).end())
#define mp make_pair
#define pb push_back

typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int>> VVI;
typedef pair<int, int> PII;
typedef long long LL;

int keta(int n) {
	int k = 0;
	for (int i = n; i > 0; i /= 10)k++;
	return k;
}

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

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

int main(){
	int a,b,c;
	int ans;
	bool flg;
	int cnt=-1;
	
	while(cin>>a>>b){
		cnt++;flg=false;
		//-----test-----
		if(cnt==104) break;
		//--------------
		c=a+b;
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: #include <stdio.h>
int main(){
	int a = 0,b = 0;
	int c = 0;
	int count = 1;
	while(scanf("%d %d",&a,&b)){
		if(a == 0 && b == 0){
			break;
		}
		c = a + b;
		while(1){
			if(c / 10 < 10){
				count++;
				break;
			}
			else{
				c /= 10;
				count++;
			}
		}
		printf("%d\n",count);
		count = 1;
	}
	return 0;
}

C++: #include<iostream>
int main(){
	int a,b,c,d;
	while(1){
		std::cin>>a>>b;
		if(std::cin.eof())break;
		c=a+b;
		     if(c>=1000000)d=7;
		else if(c>=100000)d=6;
		else if(c>=10000)d=5;
		else if(c>=1000)d=4;
		else if(c>=100)d=3;
		else if(c>=10)d=2;
		else if(c>=0)d=1;
		std::cout<<d<<std::endl;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

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

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

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

int main(void) {
    string str;
    vector<string> v;
    while (getline(cin, str)) {
        v.push_back(str);
    }

    for (vector<string>::iterator itr = v.begin(); itr != v.end(); itr++) {
        int a, b;
        sscanf((*itr).c_str(), "%d %d", &a, &b);

        int sum = a + b;

        int c = 1;
        int d = 10;
        int z = sum / d;

        while (z != 0) {
            d = d * 10;
            z = sum / d;
            c++;
        }
        printf("%d\n", c);
    }
    return 0;
}

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

int main(){
	int x,y;
	int tmp;
	int count = 0;
	while(cin >> x >> y){
		tmp = x + y;
		count = 0;
		while(tmp != 0){
			tmp /= 10;
			count++;
		}
		cout << count << 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++: //c++11
#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    long int x, y;
    int ans;
    vector<long int> vx, vy;
    
    while(cin >> x >> y){
        vx.push_back(x);
        vy.push_back(y);
    }

    for(int i=0; i < vx.size(); i++ ){
        long int div = 1, sum = vx[i]+vy[i];
        for(int j = 1; ; j++){
            if(sum % div < 1){
                ans = j;
                break;
            }else{
                div *= 10;
            }
        }
        cout << ans << endl;
    }

}