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>
#include <string>
using namespace std;

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

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

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

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

C++: #include <iostream>
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(){
  while(!cin.eof()){
    int a, b;
    cin >> a;
    cin >> b;

    int c = a + b;
    cout << digit_num(c) << endl;
  }

  return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
    int a,b,c;
    
    while(cin >> a >> b,a!=EOF || b!= EOF){
        int ans = 0;
        for(c = a + b;c!=0;ans++,c/=10);

        cout << ans << endl;
    }
    return 0;
}

C++: try:
    s = []
    while True:
        t = input()
        s.append(t)
except EOFError:
    for i in range(len(s)):
        a = int(s[i].split(' ')[0])
        b = int(s[i].split(' ')[1])
        print(len(str(a + b)))

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

int main() {
	ios_base::sync_with_stdio( false );

	int a, b;
	while( (cin >> a) && (cin >> b) ) {
		int x = a+b;
		int dg = 1;

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

		cout << dg << endl;
	}
}

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

using _i64 = int64_t;
using _u64 = uint64_t;
using _f64 = double;

#define _for(i, start, end) for(_i64 i = (_i64)start; i < (_i64)end; ++i)
#define _rep(i, number) _for(i, 0, number)
#define _foreach(e, data) for(auto& e : data)
#define _all(data) data.begin(), data.end()

template<typename type>
_i64 _size(const type& data) { return static_cast<_i64>(data.size()); }
template<typename type, size_t size>
_i64 _size(const type (&)[size]) { return static_cast<_i64>(size); }

enum _flag : bool { able = true, disable = false };

struct _time {
    _time(_flag flag) { check = flag; if(!check) { return; } gettime(start); }
    ~_time() {
        if(!check) { return; }; gettime(end);
        _i64 elapse = chrono::duration_cast<chrono::milliseconds>(end - start).count();
        cout << endl << "Time: " << elapse << " ms" << endl;
    }
    private:
    using _timer = chrono::time_point<chrono::system_clock>;
    _timer start, end; bool check;
    void gettime(_timer& time) { time = chrono::system_clock::now(); }
};

struct _ini { _ini() { ios::sync_with_stdio(false); cin.tie(nullptr); } } _ini;

int main() {
    {
        _time time(disable);
        _i64 a, b;
        while(cin >> a >> b) { cout << (_i64)log10(a + b) + 1 << endl; }
    }
    return 0;
}

C++: #include<iostream>

using namespace std;



long  n(int k){
       if(k<10&&k>0) return 1;
     if(k>=10&&k<=99) return 2;
     if(k>=100&&k<=999) return 3;
     if(k>=1000&&k<=9999) return 4;
     if(k>=10000&&k<=99999) return 5;
     if(k>=100000&&k<=999999) return 6;
     
     return n(k);
     }

int main(){
    
    
    int i,j,k;
    
    cin>>i;
    cin>>j;
    k=i+j;
  
    cout<<n(i);
      return 0;
    
  
    
    }

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


int main(){

	int a,b,sum;

	while(cin>>a){
		cin>>b;

		sum = a+b;

		int count=1;

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

		cout<<count<<endl;
	}
	return 0;
}

C++: #include <iostream>

int main(){
	int cnt,a,b;
	while(std::cin>>a>>b){
                cnt=0;
		for(int i=10;;i*=10){
			if((a+b)/i==0){
				std::cout<<cnt<<'\n';
				break;
			}
                        cnt++;
		}
	}
	return 0;
}

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

using namespace std;

void readData(vector<string>& input_data){
    string buff;
    while(getline(cin, buff))
        input_data.push_back(buff);
}

int perseString(string line) {
    stringstream ss;
    ss << line;

    int a, b;
    ss >> a >> b;

    return a + b;
}

int countDigit(int n){
    int cnt = 1;

    while(n /= 10)
        ++cnt;

    return cnt;
}

void mainRoutine(){
    vector<string> input_data;

    readData(input_data);

    for(int i = 0; i < input_data.size(); ++i){
        auto ret = perseString("100 200");
        cout << countDigit(ret) << endl;
    }
}

int main() {
    mainRoutine();

    return 0;
}

C++: num = []
i=1
while a = gets
      num = a.split(" ")
      sum = num[0].to_i + num[1].to_i
      puts sum.to_s.size
end

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

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

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

C++: #include <iostream>

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

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

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

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

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

int main( int argc, char **argv ) {

  int a;
  int b;
  int s;
  int keta;

  while (1) {
    scanf("%d %d", &a, &b);
    s = a + b;
    keta = 0;
    while (s) {
      s /= 10;
      ++keta;
    }
    printf("%d\n", keta);
  }
  
  return EXIT_SUCCESS;
}

C++: #include<iostream>

using namespace std;

int main(void) {
    int a, b;
    while(cin >> a >> b) {
        int sum = a + b;

        int c = 1;
        while (9 < sum) {
            sum = sum / 10;
            c++;
        }

        cout << c << endl;
    }
}

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

int main(){
	int a, b, num;
	
	cin >> a >> b;
	num = a * b;
	cout << (int)log10(num) + 1 << endl;
    return 0;
}