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 <iostream>
#include <cstdio>

using namespace std;

int sum(int n){
int res = 1;
while(n / 10 != 0){
res++;
n/=10;
}

return res;
}

int main()
{
int a,b;
while(~scanf("%d %d",&a,&b)){
printf("%d\n",sum(a)+sum(b));
}

return 0;
}

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

int main(){
  int a,b,ans;
  string fig;
  while(cin >> a >> b){
    ans=a+b;
    fig=to_string(ans);
    cout << fig.size() << endl;
  }
}

C++: #include<cstdio>
using namespace std;
int main(){
printf("hello world\n");
return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <deque>
#include <list>
#include <string>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <algorithm>

using namespace std;

int main() {
	int a = -1;
	int b = -1;

	cin >> a >> b;

	while (a != -1) {
		for (int i = 1; i <= 7; i++) {
			if (a + b < pow(10, i)) {
				cout << i << endl;
				break;
			}
		}

		a = -1;
		cin >> a >> b;
	}

	return 0;
}

/*@@@@@@@@@@@@@@@@@@@@@@@@@*/
/*@                       @*/
/*@ debug output erased ? @*/
/*@                       @*/
/*@@@@@@@@@@@@@@@@@@@@@@@@@*/

C++: #include<bits/stdc++.h>
using namespace std;

int main(){
  int a, b;
  while(scanf("%d %d", &a, &b)){
    int sum = a + b, cnt = 1;
    while(sum /= 10) cnt++;
    cout << cnt << endl;
  }
}

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

using namespace std;

int main ()
{
    int i, j, d;
    while (cin >> i >> j) {
        cout << (d = (int)log10(i + j) + 1) << endl;
    }
    return 0;
}

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

using namespace std;
#define MAX_N 200
unsigned a[MAX_N],b[MAX_N];
unsigned s[MAX_N];
int Count[MAX_N];
int main(){
  for(int i = 0;i < 3;i++){
  Count[MAX_N] = 0;
  scanf("%u %u",&a[i],&b[i]);
  s[i] = a[i]+b[i];
  for(; s[i] !=0; s[i]/=10){
    Count[MAX_N]++;
  }
  }
  for(int i = 0;i < 3;i++){
  cout << Count[i]<<endl;
  }
}

C++: #include <iostream>

using namespace std;

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

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

int GetDigit(const int n)
{
	int Digit = 1;
	int m = n;
	while(true){
		m /= 10;
		if(m == 0) break;
		Digit++;
	}
	return Digit;
}

int main()
{
	int a, b;
	while(true){
		cin >> a >> b;
		if(cin.eof()) break;
		cout << GetDigit(a+b) << endl;
	}
	return 0;
}

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

using namespace std;


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

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

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

C++: #include<iostream>
using namespace std;
int main(){
	long int a , b ;
	while (cin >> a >> b){
		int S = a + b;
		int c = 0;
		while (S){
			S /= 10;
			c = c + 1;
		}
		cout << c << endl;
	}
	return 0;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="7767555555555555555";
	
	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++: //
//  main.cpp
//  b
//
//  Created by h3037178 on 2017/07/31.
//  Copyright ?? 2017??´ ?????£?????????. All rights reserved.
//

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i,o,b=0;
    for(int p=0;p<200;p++){
        cin>>i>>o;
        b=0;
        if(i+o<=0){
            break;
        }
        for(int j=1;j<=1000000000000;j=j*10){
            if(i+o>=j){
                b++;
            }else{
                break;
            }
        }
        cout<<b<<endl;
        }
}

C++: #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <math.h>
#include <vector>
#include <queue>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <string>
using namespace std;
#define rep(I,N) for(int I = 0; I < (int)(N); I++)
#define FIN(V) cout<<V<<endl
#define pb push_back
#define INF (1 << 30)
typedef pair<int, int> P;
typedef long long ll;
typedef priority_queue<int> pq;

int main(void){
	int a;
	while(cin>>a){
		int b;
		cin >> a;
		int c = a + b;
		stringstream ss;
		string s;
		ss << c;
		s = ss.str();
		cout << s.size() << endl;
	}


	return 0;	
}

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

using namespace std;

int main() 
{
	int a, b,tmp,len,tmp_1=1;
	int i, j;
	for (i = 0; i < 200; i++) {
		tmp_1 = 1;
		cin >> a >> b;
		tmp = a + b;
		for (j = 1;j<10 ; j++) {
			tmp_1 *= 10;
			
			len = tmp / (tmp_1);
			if (len == 0) {
				break;
			}
		}
		cout << j << "\n";
		
	}

	return 0;
}

C++: #include <cstdio>

int main()
{
  int a, b;
  while(scanf("%d%d", &a, &b) != EOF){
    a += b;
    int cnt = 0;
    while(a){
      cnt++;
      a /= 10;
    }
    printf("%d\n", cnt);
  }
  return 0;
}

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

int main() {
	int a,b;
	std::stringstream ss;
	while(std::cin >> a >> b){
		int sum = a+b;
		ss << sum;
		std::string str = ss.str();
		std::cout << str.length() <<std::endl;
	}

	return 0;
}

C++: #include <iostream>
#include <math.h>

using namespace std;

int main(void){
	int	a,b;

	for(int i=0;i<200;i++){
		cin >> a;
		cin >> b;

		cout << (int)log10(a+b)+1 << endl;
	}

	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

typedef long int lint;
typedef long long int llint;
typedef pair<int, int> pii;
typedef pair<int, string> pis;
typedef pair<long, long> pll;

#define EACH(i, c) for (__typeof((c).begin()) i = (c).begin(); i != (c).end(); ++i)
#define ALL(c) (c).begin(), (c).end()
#define FOR(i, s, e) for (int i = (s); i < (int)(e); ++i)
#define REP(i, n) FOR(i, 0, n)
#define endl '\n'
#define mod 1000000007
#define INF 100000000
#define fk first
#define sv second

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

template<typename T>
void print(const std::vector<T>& v, char sep=' ') {
  for (int i = 0; i < (int)v.size(); i++) {
    if (i != 0) cout << sep;
    cout << v[i];
  }
  cout << endl;
}

int main()
{
  cin.tie(0);
  ios::sync_with_stdio(false);
  int a, b;
  cin >> a >> b;
  int res = a + b, ct = 0;
  while (res != 0){
    ct++;
    res /= 10;
  }
  cout << ct << endl;
}

C++: #include <stdio.h>
#define N 16
int main(){
	char temp[N];
	int a[200],b[200];
	int i,j,k,n;
	for(i=0;i<200;i++){
		fgets(temp,N,stdin);
		if(temp[1]!='\0'){
			sscanf_s(temp,"%d %d",&a[i],&b[i]);
		}else{
			j=i;
			break;
		}
	}
	for(i=0;i<j;i++){
		k=1,n=0;
		while(a[i]+b[i]>=k){
			k*=10;
			n+=1;
		}
		printf("%d\n",n);
	}
	return 0;
}

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

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