Go: package main

import (
  "fmt"
  "unicode/utf8"
)


func main() {
  var a int
  var b int
  for _, err := fmt.Scan(&a, &b); err == nil; _, err = fmt.Scan(&a, &b) {
    fmt.Println(utf8.RuneCountInString(fmt.Sprint(a+b)))
  }
}

C++: #include<iostream>

using namespace std;
 
int main(){
  int x[3],y[3],sum,i;
  int digit[3] = {0};

  for(i=0; i<3; ++i){
    cin >> x[i] >> y[i];
    //if(x[i] < 0 || 1000000 < x[i] || y[i] < 0 || 1000000 < y[i])
    //i = i-1;
  }

  for(i=0; i<3; ++i){
    sum = x[i] + y[i];

    if(sum == 0){
      digit[i] = 1;
      break;
    }

    while(sum != 0){
      sum = sum / 10;
      ++digit[i];
    }
  }

  for(i=0; i<3; ++i)
    cout << digit[i] << "\n";

    return 0;
}

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

using namespace std;

int main(int argc, char *argv[]) {
  int a, b;
  vector<int> result;
  stringstream ss;

  while (true) {
    cin >> a >> b;
    if (cin.eof())
      break;
    result.push_back(a+b);
    cin.clear();
  }
  for (int i = 0; i < result.size(); i++) {
    ss << result[i];
    cout << ss.str().size() << endl;
    ss.str("");
  }
}

C++: #include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
int main(){
	while (true) {
		int a, b;
		cin >> a >> b;
		if (cin.eof()) break;
		int sum = a + b;
		int res = 1;
		while (sum >= 10) {
			res ++;
			sum /= 10;
		}
		cout << res << "\n";
	}
    return 0;
}

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

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

C++: /* Aizu0002 Digit Number */

#include <stdio.h>

int sum_digits(int n, int base)
{
    int count = 0;

    while(n) {
        count++;
        n /= base;
    }

    return count;
}

int main(void)
{
    int a, b;

    while(~scanf("%d%d", &a, &b))
        printf("%d\n", sum_digits(a + b, 10));

    return 0;
}

C++: #include<stdio.h>

int main( void ) 
{
	int a,b;
	int  res=0;
	int i;	
	while( EOF != scanf( "%d%d", &a, &b ) ) {
		res=a+b;
		a=10;
		for( i=1; ; i++ ) {
			b=res-a;
			if( 0<=b ) {
				a*=10;			
			} else {
				break;
			}
		}
		printf( "%d\n", i);
	}

	return 0;
}

C++: #include <iostream>

int main(int argc, char **argv) {
	int a, b, sum, digit;
	
	while(std::cin) {
		a = 0;
		b = 0;
		std::cin >> a >> b;
		sum = a + b;
		
		digit = 0;
		if(a * b > 0) {
			while(sum != 0) {
				sum /= 10;
				digit += 1;
			}
			std::cout << digit << std::endl;
		}
	}
}

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

using namespace std;

int main(){
  int n, a[3];
  cin >> n;
  for(int i = 0; i < n; i++){
    for(int j = 0; j < 3; j++)
      cin >> a[j];
    sort(a, a + 3);
    cout << (a[2] * a[2] == a[0] * a[0] + a[1] * a[1] ? "YES\n" : "NO\n");
  }
}

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

int main() {
	int a, b;

	while (1) {
		cin >> a >> b;
		if (cin.eof()) {
			break;
		}
		a = (int) log10((double) (a + b)) + 1;
		cout << a << endl;
	}

	return 0;
}

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

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

C++: #include<iostream>
using namespace std;
int main(){
	int a,b,c=1;
	while(c<=200){
	cin>>a>>b;
	a=a+b;
	b=1;
	while(a>=9){
		b=b+1;
		a=a/10;
	}
	cout<<b<<endl;
	c=c+1;
	}
}

C++: #include<stdio.h>

int main()
{	
	int a,b,digit;
	scanf("%d %d", &a, &b);
	digit = 0;


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

	while (b != 0) {
		b = b / 10;
		++digit;
	}

	printf("%d", digit);
    return 0;
}

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

int main()
{
	int a,b;
	while(cin>>a>>b){
		int k=1,stac=a+b;
		while(stac>10){
			stac/=10;
			k++;
		}
		cout<<k<<"\n";
	}
}

C++: #include <iostream>
#include <cmath>
int main()
{
  int a, b;
  while (std::cin >> a >> b) {
    for (int i = 1; i < 7; i++) {
      if (a + b < pow(10, i)) {
        std::cout << i << std::endl;
        break;
      }
    }
  }
  return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <math.h>
#include <vector>
#include <queue>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <string>
using namespace std;
#define rep(I,N) for(int I = 0; I < (int)(N); I++)
#define FIN(V) cout<<V<<endl
#define pb push_back
#define INF (1 << 30)
typedef pair<int, int> P;
typedef long long ll;
typedef priority_queue<int> pq;

int main(void){
	int a;
	while(cin>>a){
		int b;
		cin >> b;
		int c = a + b;
		stringstream ss;
		string s;
		ss << c;
		s = ss.str();
		cout << s.size() << endl;
	}


	return 0;	
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
  int a,b,c,ans=1;
  cin>>a>>b;

  c=a+b;

  while(c>=10){
    c/=10;
    ans++;
  }

  cout<<ans<<endl;
  return(0);
}

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

using namespace std;

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

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

int main(void) {
    int a, b;
    while(scanf("%d %d", &a, &b) != EOF) cout << to_string(a + b).length() << endl;
    
    return(0);
}

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

#define MAX 256

int f(int z){
	int z;
	if (z < 10)return 1;
	return 1 + f(z / 10);
}

int main(void){
	
	int ans[200];
	for (long i = 0; i < 200; i++){
		ans[i] = 0;
	}

	long a, b;
	long i = 0;

	while (scanf("%ld%ld", &a, &b) != EOF){
		ans[i] = f(a, b);
		i++;
	}

	for (int j = 0; j < i; j++){
		printf("%d\n", ans[j]);
	}

	return 0;
}

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

int get_number_of_digits(int num)
{
    if(num == 0)
        return 1;
        
    int digit = 0;
    while(num != 0){
        num /= 10;
        ++digit;
    }
    return digit;
}

int main()
{
    const int num_of_data = 200;
    const int min = 0;
    const int max = 1000000;
    
    int a, b;
    //std::cout << num_of_data << "個のまでの整数データa bの入力" << std::endl;
    for(int i = 0; i < num_of_data; ++i){
        std::cin >> a >> b;
        if(min <= a && a <= max && min <= b && b <= max)
        std::cout << get_number_of_digits(a + b) << std::endl;
        else{
            --i;
            std::cout << "整数は" << min <<"以上" << max << "以下に設定" << std::endl;
        }
    }
    
    return 0;
}

C++: #include<cstdio>

int main(int argc, char const *argv[])
{
    int a, b;
    while(scanf("%d %d", &a, &b) != EOF){
        int c = a+b;
        int cnt = 0;
        while(c!=0){
            c /= 10;
            cnt++;
        }
        printf("%d\n", cnt);
    }
    return 0;
}

C++: #include<stdio.h>
int main(void)
{
	int dec1,dec2,sum,keta=0;
	scanf("%d %d",&dec1,&dec2);
	sum=dec1+dec2;
	while(sum>=10){
		sum=sum/10;
		keta++;
	}
	printf("%d\n",keta+1);
	return 0;
}

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

int main(){
    int a,b;
    int cnt=1;
    
    while(scanf(" %d %d",&a,&b)){
        cnt=1;
        for(int i=1;i<8;i++){
            if(a+b-i*10<0)break;
            cnt++;
        }
        cout << cnt << endl;
    }
    
    
    return 0;
}

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

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

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

    return 0;
}