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<algorithm>
using namespace std;
int main(){
	int a,b;
	while(cin>>a>>b){
	int t=9000;
	for(int i=t;i;i--){
		for(int j=i;j;j--){
			if(i+j==2)a+=b;
		}
	}
	int cnt=0;
	while(a)a/=10,cnt++;
	cout<<cnt<<endl;
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;
 
int main(int argc, char** argv) {
    int a, b; // 0 ??? a, b ??? 1000000
    while(cin >> a >> b) {
        cout << (int)floor(log10((double)a+b))+1 << endl;
    }
    return 0;
}

C++: #include<stdio.h>
#include<iostream.h>
using namespace std;
int main(){
	int ab[200][2],f,i=0,a,g,k=0;
	while(cin<f){
		scanf("%d %d",&ab[i][1],&ab[i][2]);
		i++;
	}
	for(int j=0;j<i;j++){
		a=ab[j][1]+ab[j][2];
		for(g=0;;g++){
			a=a/10;
			k++;
			if(a==0){
				printf("%d\n",k);
				break;
			}
		}
		k=0;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

int main() {
	
	int a, b;
	
	while( cin >> a >> b) {
		
		int count = 0;
		
	int sum = a + b;
	
	while( sum != 0) {
		
		sum /= 10;
		count ++;
		
	}
		cout << count << "\n";
}
	return 0;
}

C++: #include<stdio.h>

int main(){
 int i,j,k;

 while(scanf("%d %d",&i,&j)!=EOF){
  i+=j;
  for(k=i,j=1;k<10;j++,k/=10)
   ;
  printf("%d\n",j);
 }
 return 0;
}

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

int main() {
  int a, b, N;
  stringstream ss;
  while (cin >> a >> b) {
    ss << a + b;
    N = ss.str().size() - 1;
    cout << ss.str()[N] << endl;
  }
  return 0;
}

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

int main() {
	long long int a, b, c;
	int x;
	bool flg = true;

	for (int i=0;i<3;i++) {
		cin>>a;
		if (a==0)
			break;
		cin>>b;

		c=a+b;

		x = 1;
		flg = true;
		while (flg) {
			if ((c=c/10)>0)
				x++;
			else
				flg = false;
		}
		cout<<x<<endl;
	}
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
    int a,b,c;
    kuri :
    while ( cin >> a >> b){
        if(cin.eof()){break;}
        c = a+b;
        if (c/1000000>=1){
            cout << "7" << endl; goto kuri;
        }
        if (c/100000>=1){
            cout << "6" << endl; goto kuri;
        }
        if (c/10000>=1){
            cout << "5" << endl; goto kuri;
        }
        if (c/1000>=1){
            cout << "4" << endl; goto kuri;
        }
        if (c/100>=1){
            cout << "3" << endl; goto kuri;
        }
        if (c/10>=1){
            cout << "2" << endl; goto kuri;
        }
        else{
            cout << "1" << endl; goto kuri;
        }


    }
}

C++: #include <iostream>

int main(){
  int a, b, c;
  int i = 10;
  int num = 1;
  
  std::cin >> a;
  std::cin >> b;
  
  c = a + b;
  while(1){
    if(c/i!=0){
      num++;
      i *= 10;
    }else{
      break;
    }
  }
  std::cout << num << std::endl;
  
  return 0;
}

C++: #include <map>
#include <string>
#include <iostream>
#include<vector>
#include <set>
#include<math.h>
#include<algorithm>

using namespace std;

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

C++: #include <iostream>
#include <sstream>
int main()
{
        for(uint8_t i=0;i<200;i++)
        {
                std::string str;
                getline(std::cin, str);
                if(str=="eof")
                        break;
                std::stringstream s(str);
                uint32_t a,b;
                s>>a>>b;
                uint32_t sum=a+b;
                uint8_t count;
                for(count=0;sum>0;count++)
                        sum=sum/10;
                if(count==0)
                        count++;
                printf("%u\n",count);
        }

        return 0;
}

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

using namespace std;

 string IntToString(int num){
	stringstream ss;
	ss << num;
	return ss.str();
}


int main(void){
	int count = 0;
	int arr[200] = {0, };
	for (int i=0; i<200; i+=2){
		int a, b;
		cin >> a >> b;
		if (((a < 0) || (b < 0)) || ((1000000 < a) || (1000000 < b))){
			break;
		}
		arr[i] = a;
		arr[i+1] = b;

		++count;
	}
	for (int i=0; i<(2*count); i+=2){
		int sum = arr[i]+arr[i+1];
		string str = IntToString(sum);
		cout << str.length() << endl;
	}
	return 0;
}

C++: //by azidoazideazide(c2n14)
#include<iostream>
#include<string>
#include<cmath>
#include<algorithm> //#include<map>
#include<vector>
using namespace std;
typedef long long ll;
//#include<fstream>
//ifstream fin("rps.in");
//ofstream fout("rps.out");
//#define pb push_back
int cd(int n){
  int ans=0;
  while(n>0){
    n/=10,ans++;
  }
  return ans;
}
int main(){
	ios::sync_with_stdio(0);
	int a,b;
  while(cin>>a>>b){
      cout<<cd(a+b)<<"\n";   
  }
return 0;
}

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

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

    return 0;
}

C++: #include <iostream>

using namespace std;

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

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

int main() {
	int a, b;

	while(cin >> a >> b) {
		a += b;
		int t = 1, cnt = 0;
		while(1) {
			if( a < t ) {
				break;
			} else {
				t *= 10;
				++cnt;
			}
		}
		cout << cnt << endl;
	}
}

C++: #include <stdio.h>

int main(){
  int a, b, c;
  int keta;

  while(cin >> a){
    cin >> b;
    c=a+b;
    keta=1;
    while((c/=10)>0) keta++;
    printf("%d\n", keta);
  }
  
  return 0;
}

C++: #include <cstdio>

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

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

int main(){
    int a, b, result;
    while (cin >> a >> b) {
        int sum = a + b;
        while (true) {
            sum = sum / 10;
            result++;
            if (sum == 0) {
                cout << result << endl;
                break;
            }
        }
    }

    return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	int a,b;
	cin >>  a >>  b;
	int sum = a + b;
	int flag = 0;
	int rest = 100;
	while(sum >= 10){
		sum = sum / 10 ;
		flag++;
	}
	flag++;
	cout << flag <<endl;
    return 0;
}

C++: #include <iostream>

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

    return 0;
}

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

using namespace std;

int main(){
        double i, a, b;
        scanf("%lf%lf", &a, &b);
        printf("%d\n", (int)ceil((a + b) / 10.0));
        return 0;
}