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>
using namespace std;
int main(){
	long int a = 0, b = 0, c = 0;
	while (cin >> a, b){
		c = a + b;
		if (c / 10000000 < 1){
			if (c / 10000000 < 1 && c / 1000000 < 1){
				if (c / 10000000 < 1 && c / 1000000 < 1 && c / 100000 < 1){
					if (c / 10000000 < 1 && c / 1000000 < 1 && c / 100000 < 1 && c / 10000 < 1){
						if (c / 10000000 < 1 && c / 1000000 < 1 && c / 100000 < 1 && c / 10000 < 1 && c / 1000 < 1){
							if (c / 10000000 < 1 && c / 1000000 < 1 && c / 100000 < 1 && c / 10000 < 1 && c / 1000 < 1 && c / 100 < 1){
								if (c / 10000000 < 1 && c / 1000000 < 1 && c / 100000 < 1 && c / 10000 < 1 && c / 1000<1 && c / 100 < 1 &&  c / 10 < 1){
									cout << 1;
								}
								else{ cout << 2 << endl; }
							}
							else{ cout << 3 << endl; }
						}
						else{ cout << 4 << endl; }
					}
					else{ cout << 5 << endl; }
				}
				else{ cout << 6 << endl; }
			}
			else{ cout << 7 << endl; }
		}
		else{ cout << 8 << endl; }
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

int main(){
	
	int i;

	int a,b,sum,figure;

	while(cin >> a >> b){
		sum = a + b;
		figure = 1;
		while(sum/10!=0){
			sum = sum/10;
			figure++;
		}
		cout << figure << "\n";
	}	
	return 0;
}

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

int a,b,c,hasil;

int main()
{
	for(a,b;scanf("%d %d",&a,&b);)
	{
		hasil=1;
		c=a+b;
		while(c>=10)
		{
			c=c/10;
			hasil++;
		}
		printf("%d\n",hasil);
	}
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
	int a, b;
	cin >> a >> b;
	cout << a + b << endl;
	return 0;
}

C++: #include<iostream>

int main(){
  int a,b;
  while(std::cin >> a >> b){
    int sum = a + b;
    int i = 0;
    do{
      sum /= 10;
      i++;
    }while(sum > 0);
    std::cout << i << std::endl;
  }

  return 0;
}

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

int main()
{
    long long n, m;
    string output;

    while (cin >> n >> m){
        output = to_string(n+m);
        cout << output.size()<<endl;
    }

    return 0;
}

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

int a;
int b;

int main() {
  while (c != EOF) {
    c = dainyuu();
    int i;
    a = a + b;
    while(a > 0) {
      a = a / 10;
      ++i;
    }
    
    cout << i << endl;
    
  }
}

int dainyuu() {
  cin >> a >> b;
}

C++: #include<iostream>
#include<string>
int main() {
	int data1,data2,i;
	char a[100];
	while (1) {
		std::cin >> data1 >> data2;
		if (data1==EOF) break;
		data1 += data2;
		std::string aa = std::to_string(data1);
		for (i = 0; aa[i] != '\0'; i++) {

		}
		std::cout << i << std::endl;
	}
	return 0;
}

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

#define MAX 100000000
#define MIN 0

using namespace std;

int main() {
    int i,j;
    int a,b;
    int buf = 0;
    vector<int> sum;
    vector<int> digit;
    
    while(scanf("%d %d",&a, &b) != EOF) {
        if((a < MIN) || (b > MAX)) {
            continue;
        }
        
        sum.push_back((a + b));
    }
    
    for(i = 0; i < sum.size(); ++i) {
        j = MAX;
        
        while(j >= MIN) {
            buf += ((sum.at(i) / j) * j);
            j /= 10;
        }
        
        digit.push_back(buf);
    }
    
    for(i = 0; i < digit.size(); ++i) {
        printf("%d\n",digit.at(i));
    }
    
    return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <string>
#include <set>
#include <queue>
#include <stack>
#include <cmath>
#include <functional>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<long long > vll;
typedef vector< vi > vvi;
int main() {
	int a, b, n = 0;
	while (cin >> a >> b) {
		a += b;
		for (int i = 0; a > 0; i++) {
			a = a / 10;
			n++;
		}
		if (n == 0) {
			n = 1;
		}
		cout << n << endl;
		n = 0;
	}
}

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

int main(){

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

return 0;
}

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

using namespace std;

int main(){
  int sum, ans, n1, n2;
  while(cin>>n1>>n2){
    sum = n1+n2;
    ans = (int)log10((double)sum) + 1;
    cout<<ans<<endl;
}
  return 0;
}

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

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

C++: #include <iostream>
using namespace std;
int main(){
  int a;
  int b;
  int k;//足した和
  int p;//引く数 
  for(;;){
    cin >> a >> b;
    k=a+b;
    for(int i=0;i<11;i++){
      p=1;
      for(int j=1;j<i;j++){
	p=p*10;
      }
      if(k<p){
	cout << i-1 << endl;
	i=99;
      }	 
    }
  }
}

C++: #include <iostream>
#include <cmath>
using namespace std;
int main(){
	int a,b;
	while(cin>>a>>b){
		cout << (int)log10(a+b) + 1 << endl;
	}
}

C++: #include <iostream>

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

C++: #include <bits/stdc++.h>

using namespace std;

int a, b;

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

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

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

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

C++: #include <bits/stdc++.h>
using namespace std;
int main(){
  long long a,b;
  cin >> a >> b;
  string s=to_string(a+b);
  cout << s.size() << endl;
  return 0;
}

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

using namespace std;

int main() {
  int a;
  int b;
  cin >> a >> b;
  if (a + b == 0) {
    printf("%d\n", 1);
  }else{
    printf("%d\n",1+((int)floor(log10(a + b))));
  }
  return 0;
}

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

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

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

int main(){
int a,b;

while(scanf(" %d %d",&a,&b)){
int cnt=1;
for(int i=1;i<8;i++){
if(a+b-i*10<0)break;
cnt++;
}

cout << ont << endl;

return 0;
}

C++: #include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main() {
	int a, b;
	while(cin >> a >> b) {
		a += b;
		a = (int)log10((double)a) + 1;

		cout << a << endl;
	}
	return 0;
}