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 <stdio.h>

int main(void){
	int a,b;
	int sum;
	int loop_i,loop_j;
	int cnt=0;

	while(1){
		sum = 0;
		if(fscanf(stdin,"%d %d",&a,&b) == EOF)
			break;

		sum = a+b;
		do{
			sum = sum/10;
			cnt++;
			if(sum == 0)
				break;
		}while(1);
		printf("%d\n",cnt);
	}
	return 0;
}

C++: #include <iostream>

int main()
{
    
        int a;
        int b;
        std::cin >> a;
        std::cin >> b;

        int c = a + b;
        int digit = 1;
        bool loop = true;
        while (loop) {
            if (c / 10 >= 1) {
                digit += 1;
                c = (c - (c % 10)) / 10;
            } else {
                loop = false;
                break;
            }
        }
        std::cout << digit << std::endl;

    
}

C++: #include<iostream>

using namespace std;
int main()
{
	int a, b;
	while (cin>>a>>b)
	{
		char s[7];
		sprintf_s(s, "%d", a + b);
		cout << strlen(s) << endl;
	}


	return 0;
}

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


using namespace std;

int main()
{
	
	int a,b;
	string input;
	int size[3];
	int i = 0;
	int count = 0;	
	//cout << "input two numbers" << endl;
	for(i=0;i<200;i++){
	cin >> a >> b;
	b += a;
	input = to_string(b);
	size[i] = input.size();	
	count++;
}
for(i=0;i < count;i++){
	cout << size[i] << endl;
}

}

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

using namespace std;

int main (void) {
    int a, b, sum;
    while (1) {
        cin >> a;
        cin >> b;
        if (cin.eof()) break;
        sum = a + b;
        if (sum == 0) cout << 1 << endl;
        else cout << (int)(log10(sum) + 1) << 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++: #include <iostream>
using namespace std;

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

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

int main()
{


	int a, b;
	while (cin >> a >> b) {
		stringstream ss;
		string sum;
		ss << a + b;
		sum = ss.str();

		cout << sum.size() << endl;
	}

	return 0;
}

C++: #include<cstdio>
#include <cstdlib>
#include<iostream>
#include<cstring> // ??????????????????????±???????????????????
using namespace std;

int main(){
	int a,b,s=0,l;
	while( cin >> a >> b  ){
		char str[100];
		s=a+b;
		itoa(s,str,10); // s???10?????°??§??????????????????
		l = strlen(str); // ???????????????????????????
		cout << l << "\n";
	}
	return 0;
}

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

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

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

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

C++: #include <iostream>
using namespace std;
unsigned short digitsofnum(unsigned short n) {
	int j = 0;
	while (n > 0) {
		n = n / 10;
		j++;
	}
	return j;
}
int main()
{
	unsigned short a, b;
	vector<unsigned short> dst;
	while (cin >> a >> b)
		cout <<digitsofnum(a + b) << endl;
	return 0;
}

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

int c = 0;

void keta(int C) {
	if (C > 9) {
		c++;
		keta(C/10);
	}
	return;
}

int main()
{
	while (1) {
		if (cin.eof()) {
			break;
		}
		c = 0;
		int A, B,C;
		cin >> A>> B;
		C = A + B;
		keta(C);
		c++;
		cout << c<<endl;
	}
    return 0;
}

C++: #include <stdio.h>

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

  while(scanf("%d %d", a, b)!=EOF){
    sum=a+b;
    count=1;
    while(sum/10!=0) count++;
    printf("%d\n", count);
  }
  return 0;
}

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

int main(){
	int a,b;

	while(scanf("%d %d",&a,&b) !=EOF){
	
		int tag = (a+b)/1000000;
		int keta = 7;
		if(tag==0){
			tag = (a+b)/100000;
			keta = 6;
		}
		if(tag==0){
			tag = (a+b)/10000;
			keta = 5;
		}
		if(tag==0){
			tag = (a+b)/1000;
			keta = 4;
		}
		if(tag==0){
			tag = (a+b)/100;
			keta = 3;
		}
		if(tag==0){
			tag = (a+b)/10;
			keta = 2;
		}
		if(tag==0){
			tag = (a+b)/1;
			keta = 1;
		}

		cout << keta << endl;
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	int a[2];
	while(cin>>a[0]>>a[1]){
	int sum=a[0]+a[1];
	int  i=0;
	while(1){
		i++;
	if(sum>=0&&9>=sum)break;
	sum/=10;
	}
	cout<< i<<endl;
	}
	return 0;
}

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

int main()
{
	int a,b,c,d=1000000;
	cin>>a>>b;
	
	for(int i=1;i<=200;i++){
		a+=b;
		short answer=7;
		while(1){
			if(a/d==0){
				answer--;
			        d/=10;
			}
			else{
				cout<<answer<<endl;
				break;
			}
		}
		d=1000000;
		answer=7;
		cin>>a>>b;
	}
	return 0;
}