Go: package main

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

var (
	sc = bufio.NewScanner(os.Stdin)
)

func main() {
	for sc.Scan() {
		chunks := strings.Split(sc.Text(), " ")
		a, _ := strconv.Atoi(chunks[0])
		b, _ := strconv.Atoi(chunks[1])
		fmt.Println(len(fmt.Sprint(a + b)))
	}
}

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

#define rep(i,n) for(ll (i)=0;(i)<(ll)(n);(i)++)
#define all(x) (x).begin(),(x).end()
#define MOD 1000000007LL
#define INF (1LL<<60LL)
#define int long long
typedef long long ll;

using namespace std;



signed main() {
	ll a, b;
	while (cin >> a >> b) {
		ll k = a + b;
		ll ans = 0;
		while (k > 0) {
			ans++;
			k /= 10;
		}
		cout << ans << endl;
	}
}

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

int main() {
    int ch;
    int a, b;
    char str[255];
    ch = 0;
    while (ch != EOF) {
          scanf("%d %d", &a, &b);
          sprintf(str, "%d", a + b);          
          printf("%d\n", strlen(str));   
          ch = getchar();
    }
}

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

C++: #include<iostream>

using namespace std;

int z,x,y;
int main(){
 cin>>x>>y;
 z=x+y;
if(z>=0){
if(z<10){
	cout<<1<<endl;}
else
 if(z<100){
 	cout<<2<<endl;}
 else
  if(z<1000){
  	cout<<3<<endl;}
  else
   if(z<10000){
   	cout<<4<<endl;}
   else
    if(z<100000){
     cout<<5<<endl;}
    else
     if(z<1000000){
      cout<<6<<endl;}
     else
      cout<<7<<endl;}
else
 cout<<"wrong input"<<endl;
return 0;
	
}

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

int main(){

  int a,b,count;

  while(cin >> a >> b){

    count=0;
    a+=b;

    while(a!=0){
      a=a/10;
      count++;
    }

    cout << count << endl;

  }
}

C++: #include<stdio.h>
#include<vector>
#include<algorithm>
#include<cmath>
#include<string>
#include<iostream>

int main(){
    int i, j;
    int a,b,c;
    std::vector<int> avec, bvec;
    for (i = 0; i <= 200; i++){
        scanf("%d %d", &a, &b);
        c = a + b;

        std::string str = std::to_string(c);
        std::cout << str.length() << "\n";

        // for(j = 0; j < 8; j++){
        //     if (c == 0){
        //         printf("1\n");
        //         break;
        //     }
        //     if (c / std::pow(10,j) < 1){
        //         printf("%d\n",j);
        //         break;
        //     }
        // }
        // // avec.push_back(a);
        // // bvec.push_back(a);
    }

    return 0;
}

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

using namespace std;

int main()
{
	int a[200], b[200], n, ans = 1;
	for (int i = 0; i < 200; i++)
	{
		cin >> a[i] >> b[i];
		n = a[i] + b[i];
		while (n > 1)
		{
			n /= 10;
			ans++;
		}
		cout << ans << endl;
	}
}

C++: #include<iostream>
using namespace std;
class DigitNumber{ 
    public:
        void solve(int a,int b){
            string sum=to_string(a+b);
            if(sum=="0")cout<<0<<endl;
            else cout<<sum.length()<<endl;
        }
};
int main(){
    DigitNumber inst;
    int a,b;
    while(true){ 
        cin>>a>>b;
        inst.solve(a,b);
    }
}

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

int main(){
	long long int a,b;
	int ans;
	while(true){
		scanf("%lld %lld",&a,&b);
		if(a==0&&b==0)break;
		a+=b;
		ans=0;
		while(a>0){
			a=a/10;
			ans++;
		}
		printf("%d\n",ans);
	}
	return 0;
}

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

int main()
{
	int n;
	vector<int> prime;

	while (cin >> n) {
		prime.push_back(2);

		for (int I = 2; I <= n; I++) {
			bool isPrime = true;
			for (int i = 0; i < prime.size(); i++) {
				if (I%prime[i] != 0)
					isPrime = false;
			}
			if (isPrime)
				prime.push_back(I);
		}
		cout << prime.size() << endl;
		prime.clear();
	}
	return 0;
}

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

int main(){
  int a,b;
  int n = 0;
  int k = 1;
  int i = 0;
  int x[200]={};
   
    
    
  while(i < 200 && cin >> a >> b){
      
      if(a < 0 || a > 1000000 || b < 0 || b > 1000000){
          cout << "データを入力し直してください!!" << endl;
          break;
      }
      
      else{
          i++;
          n = a+b;
          
    while(n/10 !=0){
        k++;
        n = n/10;
    }
          x[i-1] = k;
          k = 1;
      }
  }
    
    for(int j = 0;j < i;j++)
        cout << x[j] << endl;
    
  return 0;
}

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

using namespace std;

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

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

int a;
int b;

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

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

int a,b;

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

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

int main(int argc, char const *argv[]){
	int fig_1,fig_2;
	std::vector<int> dig;

	while(std::cin >> fig_1 >> fig_2){
		dig.push_back(log10(fig_1+fig_2)+1);
	}

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

	return 0;
}

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

int main(){
  int a,b;
  while(cin>>a>>b){
    string s(to_string(a+b));
    cout<<s.size()<<endl;
  }
  return 0;
}

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

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

C++: #include <iostream>
#include <math.h>
#include <stdio.h>
#include <string>
#include <string.h>
#include <algorithm>
#include <cmath>
#include <limits>
#include <sstream>

using namespace std;

int main (void)
{
	long long n = 0,m = 0;

	while(cin >> n >> m)
	{
		ostringstream p;
		string pp;
		p << n + m;

		pp = p.str();
		cout << pp.size() << endl;
	}
}

C++: #include<iostream>
#include<cmath>
using namespace std;
   
int main()
{
    int num1[3], num2[3],sum[3];
 
    for(int i = 0;i < 3;i++)
   {
       cin >> num1[i] >> num2[i];
       sum[i] = num1[i] >> num2[i];
   }


    for(int i = 0;i < 3;i++)
    {
       int n = 1;
   
       while (true)
       {
           int po = pow(10, n);
           if (!((sum % po) == sum))
               n++;
           else
               break;
       }
        cout << n << endl;
     }
}

C++: #include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define repb(i, a, b) for(int i = a; i >= b; i--)
#define all(a) a.begin(), a.end()
#define int long long
using namespace std;
typedef pair<int, int> P;

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

C++: #include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> v;
    int a, b;
    while (cin >> a >> b) {
        int d = 1;
        int sum = a + b;
        while (sum / 10) {
            sum /= 10;
            ++d;
        }      
        v.push_back(d);
    }
    
    for (auto d : v) {
        cout << d << endl;
    }
    
    return 0;
}

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

int main() {
	int a[3],b[3];
	for(int i=0; i<3; i++) scanf("%d %d", &a[i], &b[i]);

	int cnt;
	int keta[3] = {0,0,0};
	for(int i=0; i<3; i++) {
		cnt = a[i] + b[i];
		while(cnt >= 10) {
			cnt/=10;
			keta[i] ++;
		}
		keta[i]++;
	}

	printf("%d\n%d\n%d\n", keta[0], keta[1], keta[2]);

	return 0;
}

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


int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	printf("%d",(int)log10((double)(a+b)) + 1);
	return 0;
}