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>
#include <vector>
#include <algorithm>
#include <functional>

using namespace std;

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

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

int main(){

	array<int, 6> t{ {10, 100, 1000, 10000, 100000, 1000000} };

	for (int i = 0; i < 200; ++i) {
		 if (!cin) {
			 break;
		 }
		 int a, b, sum;
		 cin >> a >> b;
		 
		 sum = a + b;
		 auto result = find_if(t.begin(), t.end(), [sum](const int x){return sum < x; });
		 auto output = result - t.begin() + 1;
		 cout << output << endl;
	}


	return 0;
}

C++: #include<stdio.h>

int main(){

	int a, b, sum=0, x;
	scanf("%d, %d", a, b);
	sum = a+b;

	if(sum<10) x=1;
	else if(10<=sum && sum<100) x=2;
	else if(100<=sum && sum<1000) x=3;
	else if(1000<=sum && sum<10000) x=4;
	else if(10000<=sum && sum<100000) x=5;
	else if(100000<=sum && sum<1000000) x=6;

	printf("%d",x);

	return 0;
}

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

int main()
{
	int a,b,c,count = 0;
	char dummy[10];
	
	cin >> a >> b;
	c  = a + b;
	
	count = sprintf(dummy,"%d",c);
	
	cout << count;
	
	return 0;
}

C++: # include <iostream>
using namespace std;
int main(){
	int a, b;
	int sum=0;
	int n = 0;
	cout << "Enter two numbers:  ";
	cin >> a >> b;
	sum = a + b;
	while (sum>=1)
	{
		++n;
		sum /= 10;
	}
	cout << n << endl;
	return 0;
	/*Javad SHeybani*/
}

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

int counter(int x)
{
	int count=0;
	while(x)
	{
		x/=10;
		count++;
	}
	return count;
}


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

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

C++: /*
AOJ_0002_DigitNumber

EOFはWindowsはCtrl+Z,UNIXはCtrl+D

*/

#include <iostream>
#include <string>
#include <cstdio>
#include <math.h>

using namespace std;

int main() {
	int a, b;

	//while (scanf("%d %d", &a, &b) != EOF){
	while (cin >> a >> b){
		cout << (int)log10(a + b) + 1 << endl;
	}
	return 0;
}

C++: #include<iostream>

using namespace std;

#define rep(i, n) for (int i = 0; i < int(n); ++i)

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

C++: #include <iostream>

using namespace std;

int main() {
	int a[500], b[500],sum[500],d[500],k[500];
	int i = 0;
	k[500] = 0;
	while (1) {
		cin >> a[i] >> b[i];
		if (a[i] == 0 && b[i] == 0)break;
		sum[i] = a[i] + b[i];
		while (!sum[i]) {
			sum[i] /= 10;
			k[i]++;
		}
		i++;
	}
	for (int j = 0; j <= i;j++) {
		cout << k[j] << endl;
	}
	return 0;
}

C++: #define debug(x) cout<<#x<<": "<<x<<endl
#define rep(a, b) for(int unsafe_cnt=a; unsafe_cnt < b;unsafe_cnt++)
#include <iostream>
// #include <stdio.h>
// #include <vector>
// #include <math.h>
// #include <algorithm>
// #include <string>
// #include <map>
// #include <set>
using namespace std;

void newline() {cout << endl;}
template <typename T> void display(T input){cout << input;}
template <typename T> void put(T input){display(input); newline();}

int main() {
  int a, b;
  while(cin >> a){
      cin >> b;
      put(a + b);
  }
}

C++: #include<iostream>

using namespace std;

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

	while (cin >> a >> b) {
		sum = a + b;
		for (digit = 1; sum /= 10; digit++);
		cout << digit << endl;
	}

	return 0;
}

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

C++: #include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	int a = 0, b = 0;
	int i = 0;
	while (1){
		cin >> a >> b;
		int c = a + b;
		if (a + b < 10){
			cout << "1" << endl;
		}
		else if (a + b < 100){
			cout << "2" << endl;
		}
		else if (a + b < 1000){
			cout << "3" << endl;
		}
		else if (a + b < 10000){
			cout << "4" << endl;
		}
		else if (a + b < 100000){
			cout << "5" << endl;
		}
		else if (a + b < 1000000){
			cout << "6" << endl;
		}
		else{
			cout << "7" << endl;
		}
	}
	return 0;
}

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

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

C++: #include<iostream>
using namespace std;
int main(){
  longint a,b;
  int x[200];
  int n = 0;
  while(cin >> a >> b){
    x[n] = 0;
    a = a + b;
    while(1){
      a = a/10;
      if(a >= 10)
        x[n]++;
    }
    n++;
  }

  for(int i = 0; i < n; i++)
    cout << x[i] << '\n';

  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;
    }
    for(int k=0;k<200;k++){
        if(i<1000000||o<1000000){
            break;
        }
    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{
        cout<<"7"<<endl;
    }
    }
}

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

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

int extract_the_number(char *n1,char *n2)
{
	int data_size1=0;
	int data_size2=0;
	for (data_size1=0;!(*(n1+data_size1)=='\0');data_size1++){}
	for (data_size2=0;!(*(n2+data_size2)=='\0');data_size2++){}
	/*int data_size1 = sizeof(n1) / sizeof(n1[0]);
	int data_size2 = sizeof(n2) / sizeof(n2[0]);*/
	/*for (i=0;i<=data_size-1;i++)
		if (a[i] == ' ')
			break; */
	int a1=0;
	int j=0;
	for (j=0;j<=data_size1 - 1;j++){
		int j_keta = int(*(n1+(sizeof n1[0])*j)) - 48;
		a1 = a1 + (pow(10,(data_size1 - j - 1))) * j_keta;
	}
	int a2=0;
	int k=0;
	for (k=0;k<=data_size2 - 1;k++){
		int k_keta = int(*(n2+(sizeof n2[0])*k)) - 48;
		a2 = a2 + (pow(10,(data_size2 - k - 1)))*k_keta;
	}
	return a1+a2;
}

int main()	
{
	char n1[100];
	char n2[100];
	while(cin >> n1 && cin >> n2){
		/*cin >> n1;
		cin >> n2;*/
		cout << stringers_number(extract_the_number(n1,n2)) << endl;
	}
	return 0;
}

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

int main(){

	int a[2];
	cin >> a[0] >> a[1];
	int check=a[0]+a[1],retval=1;
	while(check>=10){
		check/=10;
		retval++;
	}
	cout << retval << endl;

    return 0;
}

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

int main() {
  int a,b;
  while (cin >> a >> b) {
    int sum = a+b;
    int count = 0;
    while (1) {
      ++count;
      sum /= 10;
      if (sum == 0) {
	cout << count << endl;
	break;
      }
    }
  }
  return 0;
}

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

using namespace std;

int main() {
	int sum;
	int x,y;
	int kekka;
	
	while(1){
		cin >> x >> y;
		if ( cin.eof() ) { break; }
		sum = x + y;
		kekka = (double)log10((double) sum)+1;
		cout << kekka << endl;
	}
	
    return 0;
}