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){
    cout<<(a+b)/10+1<<endl;
  }
  return 0;
}

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

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef complex<double> P;
typedef pair<int,int> pii;
#define REP(i,n) for(ll i=0;i<n;++i)
#define REPR(i,n) for(ll i=1;i<n;++i)
#define FOR(i,a,b) for(ll i=a;i<b;++i)

#define DEBUG(x) cout<<#x<<": "<<x<<endl
#define DEBUG_VEC(v) cout<<#v<<":";REP(i,v.size())cout<<" "<<v[i];cout<<endl
#define ALL(a) (a).begin(),(a).end()

#define MOD (ll)(1e9+7)
#define ADD(a,b) a=((a)+(b))%MOD
#define FIX(a) ((a)%MOD+MOD)%MOD

int main(){
  int a,b;
  while(~scanf("%d%d",&a,&b)){
    int c = a+b;
    int cnt = 1;
    while(c/=10)++cnt;
    cout<<cnt<<endl;
  }
  return 0;
}

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

int main(){
	int a;
	int b;
	int sum;

	while (cin >> a >> b){
		sum = a + b;
		int count = 0;
		while (true)
		{
			count++;
			sum = sum / 10;
			if (sum == 0) break;
		}
		cout << count << 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;
		while(i>a) i*=10;
		printf("%ld\n",i-1);
	}
	return 0;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="7767555555555555555555555555555555555555545555555555555555555555555555555555555555555555555555555555555";
	
	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>                                             
#include <cmath>                                                
using namespace std;                                            
                                                                
int main(void) {                                                
  int a, b;                                                     
  int ans = 0;                                                  
  while (true) {                                                
    cin >> a >> b;                                              
    ans = log10(a+b)+1;                                         
    cout << ans << endl;                                        
  }                                                             
  return 0;                                                     
}

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

using namespace std;

int main(){
  int a, b, c, ans = 1;
  while(cin >> a >> b){
    c = a + b;
    ans = 1;
    while(c >= 10){
      ++ans;
      c /= 10;
    }
    cout << ans << "\n";
  }
}

C++: #include <iostream>
#include<vector>
#include<stdlib.h>
#include<algorithm>
#include<string>
using namespace std;



int main(void){

	int a, b, sum = 0, count;

	while (cin >> a >> b){//??°????????????????????°?????????
		count = 0;
		sum = a + b;


		if (sum == 0){ cout << sum << endl; }
		else if (sum != 0){
			{


				sum /= 10;
				++count;

			}

			cout << count << endl;
		}
	}

	return 0;

}

C++: #include <cstdio>
#include <cstring>
int digitnumber(int number){
  //存入字符数?，求数??度
  char a[256];
  memset(a,0,sizeof(a));
  return sprintf(a,"%d",number);
}
int main(){
  int a,b;
  while (scanf("%d%d",&a,&b)==2) {
    //?入多?数据,且??多个数据?
    printf("%d\n",digitnumber(a+b));
  }
  return 0;
}

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

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

C++: #include <iostream>
#include <sstream>
int main()
{
        for(uint8_t i=0;i<200;i++)
        {
                std::string str;
                getline(std::cin, str);
                std::stringstream s(str);
                uint32_t a,b;
                s>>a>>b;
                uint32_t sum=a+b;
                uint8_t count;
                for(count=0;sum>0;count++)
                        sum=sum/10;
                printf("%u\n",count);
        }

        return 0;
}

C++: #include<iostream>

int main()
{
	int a, b, sum, product;
	while (std::cin >> a >> b)
	{
		product = 10;
		sum = a + b;
		for (int digit = 1; ; ++digit)
		{
			if (sum < product)
			{
				std::cout << digit << std::endl;
				break;
			}
			product *= 10;
		}
	}

	return 0;
}

C++: #include <iostream>

using namespace std;

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

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

C++: #include <iostream>
int main() {
  int a, b;
  while (std::cin >> a >> b) {
    std::cout << a+b << std::endl;
  }
}

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

int main()
{
    int a,b,count;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        count=0;
        if(a>0)
            for(;a>0;a=a/10)
                count++;
        else
            count ++;

        if( b>0)
        for(;b>0;b=b/10)
            count++;
            else
                count++;
        printf("%d\n",count);
    }
    return 0;
}

C++: #include <stdio.h>

int ketasu(int num){
	if(num == 0) return 0;
	int i;
	for(i = 0; num != 0; i++){
		num /= 10;
	}
	return i;
}
int main(){
	int a, b;
	while(scanf("%d %d", &a, &b) != EOF){
		printf("%d\n",ketasu(a + b));
	}
	return 0;
}

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

using namespace std;

#define rep(i,n) for(int i = 0; i < n; i++)
#define REP(i,j,n) for(int i = j; i < n; i++)


int main(){

	int a,b;
	int sum = 0;
	cin >> a >> b;

	sum = a + b;

	int x = 1;

	while(sum / 10 > 0){
		x++;
		sum = sum / 10;
	}

	if(x != 0){
		cout << x << endl;
	}
	else{
		cout << 0 << endl;
	}
	return 0;
}

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

int digitCount(int number)
{
    int result = 1;
    while (number > 9) {
        number /= 10;
        result++;
    }
    return result;
}

int main(int argc, const char * argv[]) {
    // insert code here...
   // std::cout << "Start\n";

    std::string line;
    std::vector<int> sum;
    int n1 = 0;
    int n2 = 0;
    
    while (std::getline(std::cin, line))
    {
        //std::cout << line << std::endl;
        sscanf((const char*) line.c_str(), "%d %d", &n1, &n2);
        //std::cout << n1 + n2 << std::endl;
        
        sum.push_back(digitCount(n1 + n2));
        
    }
    std::cout << std::endl;
    
    std::vector<int>::iterator it = sum.begin();
    std::cout << *it << std::endl;
    
    while (++it < sum.end()) {
        
        std::cout << *it << std::endl;
    }
    
    
    //std::cout << "End!\n";
    return 0;
}