Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

var sc = bufio.NewScanner(os.Stdin)

func main() {
	for sc.Scan() {
		s := strings.Split(sc.Text(), " ")
		a, _ := strconv.Atoi(s[0])
		b, _ := strconv.Atoi(s[1])
		fmt.Println(len(fmt.Sprint(a + 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;
}

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