Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func Sliceconvtoi() []int {
	strs := strings.Split(sc.Text(), " ")

	var ints []int
	var x int

	for _, s := range strs {
		x, _ = strconv.Atoi(s)
		ints = append(ints, x)
	}

	return ints
}

func main() {
	for sc.Scan() {
		i := Sliceconvtoi()
		fmt.Println(int(math.Log10(float64(i[0]+i[1]))) + 1)
	}

}

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

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

using namespace std;

int main()
{
	int a[200], b[200], n, ans=0;
	for (int i = 0; i < 200; i++) 
	{
		cin >> a[i] >> b[i];
		n = a[i] + b[i];
		while (n >= 1) 
		{
			n /= 10;
			ans++;
		}
		cout << ans << endl;
		ans = 0;
	}
}

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

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

int main()
{
    int a,b;
    string s;
    vector<int> d(0);
    while (cin>>a>>b)
    {
        d.push_back(0);
        a+=b;
        s=to_string(a);
        d[d.size()-1]=s.size();
    }
    for (int i=0; i<d.size(); i++) cout<<d[i]<<'\n';
    return 0;
}

C++: #include <stdio.h>
#define ld long long int
int adddig(ld a, ld b);
int main()
{
    ld a, b;
    while(scanf("%lld %lld", &a, &b)!=EOF)
        printf("%d\n", adddig(a,b));
}
int adddig(ld a, ld b)
{
    int c=0;
    a+=b;
    for(;a!=0;a/=10)
        c++;
    return c;
}