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 a;
int b;

int main(){
	for (int i = 0; i < 200; i++){
		cin >> a >> b;
		}
		if (a + b >= 1000000){
			cout << "7" << endl;
		}
		if (a + b >= 100000&&a+b<1000000){
			cout << "6" << endl;
		}
		if (a + b >= 10000&&a+b<100000){
			cout << "5" << endl;
		}
		if (a + b >= 1000&&a+b<10000){
			cout << "4" << endl;
		}
		if (a + b >= 100&&a+b<1000){
			cout << "3" << endl;
		}
		if (a + b >= 10&&a+b<100){
			cout << "2" << endl;
		}
		if (a + b >= 0 && a + b<10){
			cout << "1" << endl;
		}

	

	return 0;
}

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

using namespace std;

int main(void) {
	int a, b;
	int x, i;
	
	while(1) {
		cin >> a >> b;
		if(cin.eof()) { break; }
		
		x = a + b;
		for(i=1; x+1-pow(10, i) > 0; i++);
		cout << i << endl;
	}
	
	return 0;
}

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

C++: #include<stdio.h>
#include<string.h>

int main(){
	int a,b;
	char str[8];

    while(scanf("%d %d",&a,&b) != EOF){
		sprintf(str, "%d", a+b);
		printf("%lu\n", strlen(str));
	}

	return 0;
}

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

int main(void){

	int a,b;

	scanf("%d %d",&a,&b);

	printf("%d\n",(int)log10(a+b*1.0)+1);

	return 0;

}

C++: #include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <algorithm>
#include <utility>
#include <queue>
int n,a,b;
using namespace std;
int main(){
	std::ios::sync_with_stdio(false);
	cin>>a>>b;
	n=a+b;
	int counter=0;
	while(n){
		n=n/10;
		counter++;
	}
	cout<<counter;
	return 0;
}

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

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

int main(){

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

return 0;
}

C++: #include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int a,b;
	while(cin>>a>>b){
	int t=8700;
	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 a[200],b[200],c[200],i=0,k=0;
	
	while(1){
		cin>>a[k]>>b[k];
		c[k]=a[k]+b[k];
		while(1){
			
			if(c[k]<=pow(10,i)){
				cout<<i<<endl;
				break;
			}
			
			else{
				i++;	
			}	
		}
		i=1,k++;		
	}
	return 0;
}

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

using namespace std;

int main(void) {
	int n, m, sum;
	int digit = 1;
	vector<int> v;

	while (cin >> n >> m){
		sum = n + m;
		while (sum /= 10) {
			digit++;
		}
		v.push_back(digit);
	}

	for (int i = 0; i < v.size(); i++) {
		cout << v[i] << endl;
	}

	return 0;
}

C++: #include <cstdio>

long maks(long a, long b, long c);

int main() {
    int t;
    scanf("%d", &t);
    for (;t > 0; t--) {
        long a, b, c;
        scanf("%d %d %d", &a, &b, &c);
        a = a*a;
        b = b*b;
        c = c*c;
        if ( maks(a, b, c) == (a + b + c - maks(a, b, c))) {
             printf("YES\n");
        } else printf("NO\n");
    }
    return 0;
}

long maks(long a, long b, long c) {
     if ((a > b)&&(a > c)) {return a;}
     else if ((b > a)&&(b > c)) {return b;}
     else {return c;}
}

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

int main() {
    int a, b;
    while (cin >> a >> b) {
        int c = a + b;
        int res = 0;
        while (c) {
            c /= 10;
            res ++;
        }
        cout << (c == 0 ? 1 : res) << endl;
    }
    return 0;
}

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

using namespace std;

int main(void) {
	int p, q;
	while(scanf("%d %d", &p, &q) == 2) {
		int s = p + q;
		int ans = (int)log10((double)s) + 1;
		printf("%d\n", ans);
	}
	return 0;
}

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

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

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

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

C++: #include<bits/stdc++.h>
#define ll long long 
#define ull unsigned long long 
#define ld long double
#define ui unsigned int 
using namespace std;
int main()
{
	int a, b;
	while (cin >> a >> b) {
		int s = a + b;
		int c = 0;
		while (s > 0) {
			s = s / 10;
			c++;
		}
		cout << c<<endl;
	}
}

C++: #include <cstdio>
using namespace std;
int a,b,s;
int p,cnt,ans;
int scan(){
  scanf("%d %d",&a,&b);
  if(a==EOF) return 0;
  return s=a+b;
}
int count(int s){
  if(s/10==0) return cnt;
  else {
    cnt++;
    count(s/10);
  }
}
int main(){
  while(1){
    cnt=1;
    ans=count(scan());
    printf("%d\n",ans);
  }
}

C++: #include<iostream>
using namespace std;
int main()
{
	int a, b, sum;
	cin >> a >> b;
	sum = a + b;
	if (sum < 10)cout << "1" << endl;
	if (sum < 100 && sum >= 10)cout << "2" << endl;
	if (sum < 1000 && sum >= 100)cout << "3" << endl;
	if (sum < 10000 && sum >= 1000)cout << "4" << endl;
	if (sum < 100000 && sum >= 10000)cout << "5" << endl;
	if (sum < 1000000 && sum >= 100000)cout << "6" << endl;
	if (sum < 10000000 && sum >= 1000000)cout << "7" << endl;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
typedef long long LL;
int main(){
	LL a,b;
	while(cin>>a,cin>>b){
	   LL c=a+b;
	   LL count=0;
	   while(c!=0){
	      c/=10;
	      count++;
	   }
           cout<<count<<endl;
        }
	return(0);
}

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

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

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

C++: #include <stdio.h>

int main(void)
{
	int a[200],b[200],sum[200],keta[200],cnt=0,set=3;

	//scanf("%d",&set);
	for(int i=0;i<set;i++) //input
		scanf("%d%d",&a[i],&b[i]);

	for(int i=0;i<set;i++){
		sum[i]=a[i]+b[i];
		while(sum[i]!=0){
			sum[i]=sum[i]/10;
			cnt++;
		}
		printf("%d\n",cnt);
		cnt=0;
	}

	return 0;
}

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


using namespace std;

int main(){
  while(!cin.eof()){
	int a, b; cin >> a >> b;
	cout << (a+b == 0? 0: 1+(int)log10(a+b)) << endl;
  }
  return 0;
}

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

int main()
{
	int d, a, b, s;

	d = 0;
	
	
	while(d < 200){
		
		s = 0;
		cin >> a >> b;

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

	}



	return 0;
}