Go: package main

import (
  "fmt"
  "unicode/utf8"
)


func main() {
  var a int
  var b int
  for _, err := fmt.Scan(&a, &b); err == nil; _, err = fmt.Scan(&a, &b) {
    fmt.Println(utf8.RuneCountInString(fmt.Sprint(a+b)))
  }
}

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

C++: #include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define vec_input(v) for(auto it=v.begin();it!=v.end();it++){cin>>*it;}
#define vec_output(v) for(auto it=v.begin();it!=v.end();it++){if(it!=v.begin())cout<<" ";cout<<*it;}cout<<endl;
#define vec_debug(v) for(auto it=v.begin();it!=v.end();it++){cerr<<*it<<" ";}cerr<<endl;
#define yn(ans) cout<<(ans?"Yes":"No")<<endl
#define YN(ans) cout<<(ans?"YES":"NO")<<endl
using namespace std;
using ll = long long;
template <typename T>T digitsum(T n);
template <typename T>bool isPrime(T n);
template <typename T>vector<pair<T, T>> prime_factor(T n);
long long int intpow(long long int,long long int);
template <typename T>T intlog(T);
long long int combination(long long int,long long int);
long long int series_sum(long long int);

int main(){
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF){
        cout<<intlog(a+b)+1<<endl;
    }
}
template <typename T>T intlog(T x){
    string a=to_string(x);
    return a.length()-1;
}

C++: #include<stdio.h>
#define N 200

struct{int a,b;} d[N];

int main(){
    int i,j,l,s,k;
    for(i=0; i<N,scanf("%d %d",&d[i].a,&d[i].b)!=EOF; i++);
    l=i;
    for(i=0;i<l;i++){        
        s=d[i].a+d[i].b;
        for(j=1,k=0; s>=j; j*=10,k++);
        printf("%d\n",k);        
    }
    return 0;
}

C++: #include<iostream>
#include<stdio.h>
#include<math.h>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
    int a,b;
    while(cin>>a>>b){
        int c=a+b;
        int co=1;
        while(c/10){
            co++;
            c/=10;
        }
        cout<<co<<endl;
    }
}

C++: #include<iostream>
using namespace std;
int main(){
  for(int i=0;i<200;i++){
    int a,b,i=0;
    cin>>a>>b;
    int num=1;
    int c=a+b;
    while(c/10!=0){
      num++;
      c/=10;
    }
    cout<<num<<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[200],b[200],i=0,sum,count;
	while(cin>>a[i]){
		cin>>b[i];
		i++;
	}
	for(int j=0;j<i;j++){
		sum = a[j]+b[j];
		count = 0;
		while(sum != 0){
			sum/=10;
			count++;
		}
		cout<<count<<endl;
	}
    return 0;
}

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

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