Go: // 九九を出すだけ
package main
import (
	"fmt"
	"os"
	"bufio"
	"strconv"
)

var sc = bufio.NewScanner(os.Stdin)
var out = bufio.NewWriter(os.Stdout)

func main(){
	sc.Split(bufio.ScanWords)
	defer out.Flush()
	for sc.Scan(){
	    s := nextIntIs()
	    sc.Scan()
	    t := nextIntIs()
        a := len(strconv.Itoa(s+t))
	    fmt.Fprintln(out, a)
	}
}

func next() string{
	sc.Scan()
	return sc.Text()
}

func nextInt() int{
	a, _ := strconv.Atoi(next())
	return a
}

func nextIntIs() int{
	a, _ := strconv.Atoi(sc.Text())
	return a
}

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

using namespace std;

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

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

int main()
{
	int a,b,sum;
	int count = 0;
	
	cin >> a >> b;

	sum = a + b;

	for(int i = 1 ;sum != 0 ;i++){

		sum /= 10;
		count = i;
	}

	cout << count << endl;
	

	return 0;
}

C++: #include <stdio.h>

int main(void)
{
	int a, b;
	int add;
	int count;

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

	add = a + b;

	count = 0;

	while (add){
		add /= 10;

		count++;
	}

	printf("%d\n", count);

	return (0);
}

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

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

	return 0;
}

C++: #include <iostream>

using namespace std;

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

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

int a = 0, b = 0;

int digit(int n){
    return log10(n)+1;
}

int main(void){
    while(std::cin >> a >> b){
        std::cout << digit(a+b) << std::endl;
    }
}

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

int main() {
  int x, y;
  while(cin>>x>>y) {
    char s[100];
    sprintf(s,"%d",x+y);
    cout << strlen(s) << endl;
  }
}

C++: #define _USE_MATH_DEFINES
#include <iostream> 
#include <string>
#include <map>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std; 
int main(){
	int a, b;
	while (cin >> a >> b){
		int k = log10(a+b) + 1;
		cout << k << endl;
	}
	return 0;
}

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

#define pout(n)  printf ("%d\n", n)

#define rep(i,a,n) for (int i = a;i < n;i++)
#define per(i,n,a) for (int i = n-1;i >= a;i--)

const int d4x[4] = {1, 0, -1, 0};
const int d4y[4] = {0, 1, 0, -1};
const int d8x[8] = { 1,1,0,-1,-1,-1,0,1 };
const int d8y[8] = { 0,1,1,1,0,-1,-1,-1 };
 
typedef long long ll;
using namespace std;
 
int main() {
  ll a,b;
  while(cin >> a >> b){
    a += b;
    int count = 1;
    
    while((a /= 10) > 0){
       a /= 10;
      count++;
    }
    
    printf("%d",count);
  }
  return 0;
}

C++: #include <bits/stdc++.h>
#define INT(name) int name; scanf("%d",&name);
#define VINT(name,n) vector<int> name(n); for(int i = 0;i < n;i++) scanf("%d",&name[i]);

using namespace std;

int main(int argc, char const *argv[]){
	int a,b;
	vector<int> answer;
	while(1){
		if(cin.eof())	break;
		cin >> a >> b;
		printf("%d\n",(int)log10(a+b) + 1);
	}
}

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<10000) break;
		
		//--------------
		c=a+b;
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
    
int main(){
   int a[200],b[200],c[200],digit[200];
   int i,imax,j;
   i = 0;
   j = 1;
   do{
     cin >> a[i] >> b[i];
     i++;
   }while(a[i]!=NULL||b[i]!=NULL);
    
   imax = i;
   for(i=0;i<imax+1;i++){
     digit[i] = 1;
     c[i] = a[i] + b[i];
   }   
 
   for(i=0;i<imax+1;i++){
     while(c[i]>=10){
       c[i] /= 10;
       digit[i]++;
     }
   }
    
   for(i=0;i<imax+1;i++)cout << digit[i] << endl;
    
   return 0;
}

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

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

using namespace std;

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

C++: #include <stdio.h>
#include <math.h>
using namespace std;
int main(void){
    // Here your code !
    int a,b;
    while(~scanf("%d %d", &a, &b)){
        printf("%d\n", int(log10(a+b))+1);
    }
}

C++: //
//  main.cpp
//  Sample
//
//  Created by h3037183 on 2017/07/31.
//  Copyright ?? 2017??´ ?°????. All rights reserved.
//

#include <iostream>
#include<algorithm>
using namespace std;
int main(){
    long a,b,i=0,sum=0;
    while(cin>>a>>b){
    sum=a+b;
    if(sum==1000000)i=7;
    else if(sum>99999)i=6;
    else if(sum>9999)i=5;
    else if(sum>999)i=4;
    else if(sum>99)i=3;
    else if(sum>9)i=2;
    else i=1;
    cout<<i<<endl;
        i=0;
    }
    return 0;
}

C++: #include <cstdio>

int main()
{
        unsigned int a, b, sum;
        unsigned int digit;

        while (scanf("%u %u", &a, &b) != EOF) {
                sum = a + b;
                digit = 0;
                while (sum) {
                        sum /= 10;
                        digit++;
                }
                printf("%u\n", digit);
        }

        return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
	int a,b;
	while(true){
	cin>>a>>b;
	int i=0;
	int h=a+b;
	while(true){
		if(0==h)
			break;
		i++;
		h/=10;
	}
	cout<<i<<endl;
	}
	return 0;
}

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

int main(){
	double a_heap[3];
	double b_heap[3];
	int digit[3];
	int count;
	for(int i=0;i<3;i++){
		cin >> a_heap[i] >> b_heap[i];
		cout << endl;
	}
	for(int i=0;i<3;i++){
		int num1 = 1;
		int j;
		for(j=1;;j++){
			num1 = 10 * num1;
		if((a_heap[i] + b_heap[i])/num1 < 1)
			break;
		}
		digit[i] = j;
	}
	for(int i=0;i<3;i++){
	cout << digit[i] << endl;
	}
	return 0;
}

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

int unsignedGeddigit(int a){
	return log10(a)+1;
}

int main(){
	int a,b,x[200],i=0;
	while(cin>>a>>b){
	x[i]=unsignedGeddigit(a)+unsignedGeddigit(b);
	i++;
	}
	for(int j=0;j<i;j++){
		cout<<x[j]<<endl;
	}

	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
    int a,b;
    while(cin>>a>>b){
        a+=b;
        for(int i=1;i<1000;i++){
            if(!(a/10)){
                a=i;
                break;
            }
            else a/=10;
        }
        cout<<a<<endl;
    }
    return 0;
}

C++: //
//  main.cpp
//  sanpie
//
//  Created by h3037178 on 2017/07/28.
//  Copyright ?? 2017??´ ?????£?????????. All rights reserved.
//

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i,o;
    for(int p=0;p<200;p++){
    cin>>i>>o;
    if(i+o<10){
        cout<<"1"<<endl;
    }else if(i+o<100){
        cout<<"2"<<endl;
    }else if(i+o<1000){
        cout<<"3"<<endl;
    }else if(i+o<10000){
        cout<<"4"<<endl;
    }else if(i+o<100000){
        cout<<"5"<<endl;
    }else if(i+o<1000000){
        cout<<"6"<<endl;
    }else if(i+o<10000000){
        cout<<"7"<<endl;
    }else{
        break;
    }
    }
}

C++: #include <iostream>

using namespace std;

int main(){
	int n, m, dig;
    while(cin >> n >> m){
        n += m;
        while(n){
            sum /= 10;
            dig++;
        }
        cout << dig << endl;
    }
}

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

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

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

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