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++: int main()
{
	int a, b,sum,n;
	n = 0;


	while (cin >> a >> b)
	{
		sum = a + b;

		for (;;)
		{
			sum = sum / 10;
			n = n + 1;

			if (sum == 0)
			{
				break;
			}
		}

		cout << n << endl;
	}

  return 0;
}

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

using namespace std;

int main()
{
	int a, b;

	while (cin >> a >> b)
	{
		cout << log10(a + b) + 1 << endl;
	}

	return 0;
}

C++: #include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<vector>
#include<math.h>
#include<queue>
#include <algorithm>
#include<functional>
#include<cstdlib>
#include<cmath>

#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define CI cin >>
#define CO cout <<
#define E << endl;

using namespace std;

typedef pair<int, int> P;
typedef pair<long, long> LP;
typedef pair<int, P> PP;
typedef pair<long, LP> LPP;



int dy[] = { 0, 0, 1, -1, 0 };
int dx[] = { 1, -1, 0, 0, 0 };

int A = 0, B = 0, K = 0, T = 0, W = 0, N = 0, H = 0;
int n = 0;
double L = 0;
double S = 0;
double ar = 0, br = 0, cr = 0;
int answer = 0;

string C;
string sA, strB;
vector<vector<char>> map;
vector<double> num;
vector<string> str;

int sum = 0;

vector<int> value;
vector<int> weight;

int dp[110][10010];

int data_[210][2] = {-2};

void input() {
	int i = 0;

	while (scanf_s("%d%d",&data_[i][0],&data_[i][1]) != EOF) {
		i++;
	}

	return;
}


int main(void) {
	input();
	int i = 0;
	int sum = 0;
	int numb = 0;

	while (true) {
		sum = data_[i][0] + data_[i][1];
		while (sum != 0) {
			numb++;
			sum /= 10;
		}
		if (data_[i + 1][0] == -2) {
			break;
		}
	}

	CO numb E

	return 0;
}

C++: #include <iostream>
using namespace std;
int main(void){
  long a, b, sum, count;
  
  while(true) {
    cin >> a >> b;
    
    count = 0;
    sum = a + b;
      while(sum != 0) {
        sum /= 10;
        count++;
      }
    cout << count << endl;
    
    if ( cin.eof() ) { break; }
  }
}

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

int main(){
	int sum,j;
	int i=0;
	int N;
	
	cout << "How many date sets (N<=200) N=";
	cin >> N;
	int a[N], b[N], dig[N];
	
	while(i<N){
		cout << "please input `a b' : ";
		cin >> a[i] >> b[i];
		dig[i]=1;
		if(0<=a[i] && a[i]<=1000000 && 0<=b[i] && b[i]<=1000000){
			sum = a[i]+b[i];
			while(sum/10 != 0){
				sum = sum/10;
				dig[i] += 1;
			}
			i++;
		}
		else{
			cout << "error!\n";
		}
	}
	
	for(j=0; j<i; j++){
		cout << dig[j] << "\n";
	}
}

C++: #include <cstdio>
int main(){
 int d,n,a,b; 
 while(true){
  d=0;
  if (scanf("%d %d",&a,&b)==EOF) break;
  n=a+b;
  while(n>0) { d++, n/=10;  };
  printf("%d\n",d);
 };
 return 0;
};

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

int get_digit(int num);

int main() {
	int first;
	int second;
	int data_cnt = 0;
	std::vector<int> inputs;

	while ((cin >> first >> second) /*|| (data_cnt < 200)*/) {
		data_cnt++;
		inputs.push_back(first + second);
	}

	for (int i = 0; i < data_cnt; i++) {
		cout << get_digit(inputs[i]) << endl;
	}

	return 0;
}

int get_digit(int num) {
	unsigned digit = 0;
	while (num != 0) {
		num /= 10;
		digit++;
	}
	return digit;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="77675555";
	
	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<complex>
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<cmath>
#include<vector>
#include<map>
#include<sstream>
#include<ctime>
#include<cstdio>
#include<cstdlib>
#include<cassert>
#include<deque>
#include<queue>
#include<climits>
#include<list>
#include<stack>
#include<fstream>
#include<ctime>
#define all(n) n.begin(),n.end()
#define REP(i,s,n) for(int i=s;i<n;i++)
#define rep(i,n) REP(i,0,n)
#define insert(a,b,c,d) PP(P(a,b),P(c,d))
#define F first
#define S second
#define pb push_back
#define INF (1<<27)
#define EPS 1e-10
#define equals(a,b) (fabs((a)-(b)) < EPS)

using namespace std;

typedef pair<int,int> P;
typedef pair<P,P> PP;
typedef unsigned long long ull;
typedef long long ll;
const int dx[4] = {0,1,0,-1};
const int dy[4] = {1,0,-1,0};


int main(){

  int a,b;
  while(cin >> a >> b){
    int c = a+b;
    stringstream ss;
    ss << c;
    string ret;
    ss >> ret;   
    cout << ret.size() << endl;
  }

  for(int j=0;j<=1000;j++){
    string name = "out";
    stringstream ss;
    ss << j;
    string index;
    ss >> index;
    name += index+".txt";
    ofstream ofs(name.c_str());
      ofs << string(100000,'?') << endl;
    
  }

return 0;
}

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

int main()
{
  int a,b,ans;
  int d[10]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000};
  int e[10]={0,0,1,2,3,4,5,6,7,8};
  
  while(cin >> a >> b){
    int sum=a+b;
    for(int i=1;i<10;i++){
      if(d[i-1]<=sum && sum<d[i]){
	ans=e[i];
      }
    }
    cout << ans << endl;
  }
  
  return 0;
}

C++: #include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;

int main()
{ 
	int i1, i2;
	cin >> i1 >> i2;
	i1 += i2;
	i2 = 0;
	while (i1) {
		i2++;
		i1 /= 10;
	}
	cout << i2 << endl;
    return 0;
}

C++: #include<iostream>

using namespace std;

int main()
{
	int num[2];
	int numLength = sizeof(num) / sizeof(num[0]);
	int n;
	int sum;
	while(1){
		n = 1;
		sum = 0;
		
		int h;
		for(h = 0; h < numLength; h++)
		{
			cin >> num[h];
			sum += num[h];
		}
		
		while(sum/10 != 0){
			n++;
			sum = sum / 10;
		}
		
		cout << n << endl;
		
	}
	return(0);
}

C++: #include<stdio.h>

int calc(int x,int y){
  int a,t,k =0;
  t = x+y;
  while(t){
    t = t/10;
    k += 1;
  }
  return k;
}
int main(void){
  int a,b;
  while(scanf("%d %d",&a,&b) != EOF){
    printf("%d\n",calc(a,b));
  }
}

C++: #include<iostream>
#include<cstdio>
#include<vector>
#include <algorithm>
#include <functional>
#include<cmath>

using namespace std;

int main(){
	int a,b;
	
	while(cin>>a>>b)
	{
		a = a+b;
		a = (int)log10(a)+1;
		cout << a << endl;
	}

	return 0;
}

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

int main()
{
	int a,b,c;
	while(cin >> a >> b)
	{
		stringstream s;
	c = a+b;

	s << c;
	cout << s.str().size() << endl;
	}
	return 0;
}

C++: //
// Created by Undefined on 2018/2/2.
//

#include <iostream>

using namespace std;

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

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const ll MOD = 1e9 + 7/*998244353*/;
const ll INF = 1LL << 60;
ll mod_pow(ll, ll, ll); ll mod_fact(ll, ll); ll mod_inv(ll, ll); ll gcd(ll, ll); ll lcm(ll, ll);
//
int main(){
    int a, b;
    while(cin >> a >> b){
        cout << to_string(a + b).size() << "\n";
    }
}