Go: package main

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

var (
	sc = bufio.NewScanner(os.Stdin)
)

func main() {
	for sc.Scan() {
		chunks := strings.Split(sc.Text(), " ")
		a, _ := strconv.Atoi(chunks[0])
		b, _ := strconv.Atoi(chunks[1])
		fmt.Println(len(fmt.Sprint(a + b)))
	}
}

C++: #include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <bitset>
#include <set>
#include <queue>

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

const float PI = 3.1415926;
static const int INFTY = (1<<30);

using namespace std;

typedef long long ll;
typedef long double ld;

int n, a, b, res;

int main() {
  rep(i,3) {
    cin >> a >> b;
    n = a+b;
    if(n %10 == 0) n++;
    res = 0;
    
    while(n>0) {
      n /= 10;
      res++;
    }
    cout << res << endl;
  }

  return 0;
}

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

using namespace std;

int main()
{
	int a, b, i;
	while(cin>>a>>b){
		a += b;
		
		for(i = 1;; i++){
			if(a < 10){
				break;
			}
			a = a / 10;
		}
		
		cout << i << endl;
	}
}

C++: #include <stdio.h>

int main() {
    int a;
    int b;
    while (scanf("%d %d", &a, &b)) {
    int result = a + b;
    int digit = 0;
    while (result != 0) {
        digit++;
        result /= 10;
    }

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

C++: #include <cstdio>
#include <cstring>
#include <cstdlib>


int main()
{
    int a,b;
    char str[32], *p;
    while(1){
        gets(str);
        if(strlen(str) < 3)return 0;
        a = atoi(strtok(str, " "));
        b = atoi(strtok(NULL, " "));
        sprintf(str,"%d",a+b);
        printf("%d\n",strlen(str));
    }
}

C++: #include <iostream>
using namespace std;
int main(){
	int a,b,x,y,k=1;
	cin >> a >> b;
	x=a+b;
	while(true){
		if(x<10){
			break;
		}
		x=x/10;
		k=k+1;

	}cout << k << endl;
	return 0;
}

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

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

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

int main() {
    int a, b;
    while(~scanf("%d %d", &a, &b))
      printf("%ld\n", std::to_string(a + b).size());
}

C++: #define scanf_s scanf
#include <string>
#include <stdio.h>
#include <math.h>
#include <stack>
#include <queue>
#include <list>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 200
int main(void)
{
	int a, b, i, sum, cou = 0;
	int ans[MAX] = { 0 };
	while (scanf_s("%d %d", &a, &b) != 0) {
		sum = a + b;
		++ans[cou];
		if (sum != 0){
			while (1) {
				if (sum <= 1) break;
				sum /= 10;
				++ans[cou];
			}
		}
		++cou;
	}
	for (i = 0; i < cou; ++i) {
		if (i != 0) printf("\n");
		printf("%d", ans[i]);
	}
}

C++: #include <iostream>
using namespace std;
int main(){
    int a,b,sum=0,count;
    while(cin>>a>>b){
        count++:
        sum=a+b;
        if(sum<10)cout<<"1"<<endl;
        else if(sum<100)cout<<"2"<<endl;
        else if(sum<1000)cout<<"3"<<endl;
        else if(sum<10000)cout<<"4"<<endl;
        else if(sum<100000)cout<<"5"<<endl;
        else if(sum<1000000)cout<<"6"<<endl;
        else if(sum<10000000)cout<<"7"<<endl;
        else if(sum<100000000)cout<<"8"<<endl;
        
        if(count==200)break;
        
    }
    return 0;
}

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

int main() {

    int a, b;

    while (cin >> a >> b) {
        cout << a+b << endl;
    }
     
    return 0;

}

C++: #include<iostream>

using namespace std;

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

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

C++: #include<iostream>
using namespace std;
int main()
	{
		int a, b, sum, result = 0;
		while (scanf("%d %d", &a, &b) != EOF)
		{
			result = 0;
			sum = a + b;
			while (sum > 0){
				sum /= 10;
				result++;
			}
			cout << result<<endl;
		}

		return 0;
	
}

C++: #include <iostream>
using namespace std;
int main(void){
    int a,b = 1;
    int ans,line = 0;
    
    while(std::cin >>a>>b){
        ans = a + b;
        ans /= 10;
        if(ans  <= 9){
            ans = 2;
        }
        else if(ans <= 99){
            ans = 3;
        }
        else if(ans <= 999){
            ans = 4;
        }
        std::cout << ans << std::endl;
    }
    return 0;
}

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


int main(){

  int a,b;

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


    return 0;
}

C++: #include <iostream>

using namespace std;

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

	cin >> a >> b;
	c = a+b;

	while(1){
		if (c<10) break;
		c = c/10;
		i++;
	}
	

		cout << i << endl;
}

C++: #include <iostream>

typedef struct _Data {
    int leftVal;
    int rightVal;
} Data;

typedef struct _DataList {
    int effectCount;
    Data dataList[200];
    int digitNumber[200];
} DataList;

class DigitNumber {
public:
    DigitNumber();
    // DigitNumber(const DigitNumber& other);
    // ~DigitNumber();

    bool Run();

private:
    bool ReadLine();
    bool Calc();
    void Show() const;

private:
    DataList m_DataList;
};

DigitNumber::DigitNumber()
{
    m_DataList = { 0 };
}

bool DigitNumber::Run()
{
    // Ignore return value
    (void)ReadLine();
    (void)Calc();
    Show();

    return true;
}

bool DigitNumber::ReadLine()
{
    int l = 0, r = 0;
    while (std::cin >> l >> r) {
        m_DataList.dataList[m_DataList.effectCount].leftVal = l;
        m_DataList.dataList[m_DataList.effectCount].rightVal = r;
        ++m_DataList.effectCount;
    }

    return true;
}

bool DigitNumber::Calc()
{
    unsigned int digitNumber = 0;
    unsigned int num = 0;

    for (int i = 0; i < m_DataList.effectCount; ++i) {
        digitNumber = 0;
        num = m_DataList.dataList[i].leftVal + m_DataList.dataList[i].rightVal;
        while (num != 0) {
            num /= 10;
            ++digitNumber;
        }
        m_DataList.digitNumber[i] = digitNumber;
    }
    return true;
}

void DigitNumber::Show() const
{
    for (int i = 0; i < m_DataList.effectCount; ++i) {
        std::cout << m_DataList.digitNumber[i] << std::endl;
    }
}

int main()
{
    DigitNumber digitNumber;
    digitNumber.Run();
}