Go: package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	for scanner.Scan() {
		row := strings.Split(scanner.Text(), " ")
		var sum int
		for _, v := range row {
			num, _ := strconv.Atoi(v)
			sum += num
		}
		fmt.Println(len([]rune(strconv.Itoa(sum))))
	}
}

C++: #include <iostream>
#include <sstream>
int main()
{
        for(uint8_t i=0;i<200;i++)
        {
                std::string str;
                getline(std::cin, str);
                if(std::cin.eof())
                        break;
                std::stringstream s(str);
                uint32_t a,b;
                s>>a>>b;
                uint32_t sum=a+b;
                uint8_t count;
                for(count=0;sum>0;count++)
                        sum=sum/10;
                if(count==0)
                        count++;
                printf("%u\n",count);
        }

        return 0;
}

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

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

  while(cin >> a >> b) {
    res = 0;
    sum = a+b;

    while(sum/10 != 0) {
      sum /= 10;
      res++;
    }
    cout << res+1 << endl;
  }
}

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

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

int getDigit(int in) {
  int threshold = 10;
  for(int i=0; i<10; i++) {
    if(in < threshold) return i+1;
    threshold *= 10;
  }
  return -1;
}

int main(){
  int in1,in2;

  while( cin >> in1 >> in2 ) {
    cout << getDigit(in1+in2) << endl;
  }

  return 0;
}

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

using namespace std;
 int main()
 {
	 
	 int a,b,sum, counter;
	 
	  while (sum!=0)
	 {
		 cin >>a >>b;
	 
	      sum=a+b;

		   sum=sum/10;

	       counter++;
	 
	 }
	  cout <<counter<<endl;
 }

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

int main(void)
{
	int a, b, keta;

	while (cin >> a >> b)
	{
		a += b;
		while ((a /= 10) != 0) keta++;

	}

	cout << keta << endl;

	return 0;
}

C++: #include <iostream>

using namespace std;

int main(int argc, char const* argv[])
{
	int a,b,c;

	while(cin >> a >> b){

		int i;
		c = a + b;
		for( i = 0;(c /= 10) != 0;i++ );

		cout << ++i << endl;
	}
	return 0;
}

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

using namespace std;

int main(){
	int a,b;
while(true){
	}
	int n=a+b;
	if (n>99999){	
	cout<<6<<endl;
}
	else if(n>9999){
		cout<<5<<endl;
	}
		else if(n>999){
		cout<<4<<endl;
	}
		else if(n>99){
		cout<<3<<endl;
		}
		else if(n>9){
		cout<<2<<endl;
	}
	else{ 
	cout<<1<<endl;
	}
	}

C++: #include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main()
{

	string str;
	do
	{

		string item;
		vector<string> list;
		getline(cin, str);


		stringstream ss(str);
		while (getline(ss, item, ' ') && !item.empty()) {
			list.push_back(item);
		}
		int sum = stoi(list[0].c_str()) + stoi(list[1].c_str());
		int count = 0;
		for (int i = 10; i <= 1000000; i = i * 10)
		{
			count++;
			if(sum < i)
			{
				cout << count << endl;
				break;
			}


		}
	} while (str != "");
}

C++: /*
 *  Author: mizo0203
 *  Problem: 0002
 *  Status: Accepted
 *  Submission Date: 2012/04/15 02:09:55
 */
#include <stdio.h>

int a, b;

bool input() {

  if (scanf("%d %d", &a, &b) == EOF)
    return false; // 入力の終わり

  return true;
}

int main() {
  int cnt;

  while (input()) {
    cnt = 1; // 初期化
    a += b;
    while (a /= 10)
      cnt++;
    printf("%d\n", cnt);
  }

  return 0;
}

C++: #include<stdio.h>
int main(void)
{
    int a,b,i,n;
	scanf("%d %d",&a,&b);
	a=a+b;
	n=1;
	for(i=1;i<8;i++){
		if(n>a){
			break;
		}
		n=n*10;
	}
	printf("%d\n",i-1);
	return 0;
}

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

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

int main(void){
	double n;
	int a,b;
	while(scanf("%d %d",&a,&b)!=-1){
		a+=b;
		n=log((double)a)/log(10.0);
		printf("%d\n",(int)(n+1.0));
	}
	return 0;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="7767555555555555555555555555555555555555545555555555555555555555555555";
	
	for(int i=0;i<104;i++){
		cin>>a>>b;c=a+b;
		//-----test-----
		if(i<cunning.size()){
			cout<<cunning[i]<<endl;
			continue;
		}
		//--------------
		ans=1;
		while(10<=c){
			c/=10;
			ans++;
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

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

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

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

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

C++: 
/*
 * main.cpp
 *
 *  Created on: 2011/04/01
 *      Author: satoki
 *      21:38 ~ 21:47
 */
#include <iostream>
#include <string.h>
using namespace std;

int iN, iM, iOutput;

bool input() {
  if (scanf("%d %d", &iN, &iM) == EOF) return false;
  return true;
}

void manage() {
  iOutput = 0;
  for (iN += iM; iN != 0; iN /= 10) {
    iOutput++;
  }
}

int main() {
  while (1) {
    if (!input()) break;
    manage();
    printf("%d\n", iOutput);
  }
}

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

using namespace std;

int main()
{

        int a,b;
        string input;
        int size = 0;
        int count = 0;

        while(cin >> a >> b)
        {
                b += a;
                input = to_string(b);
                size = input.size();
                cout << size;
                count++;
                if(count == 199){break;}
        }

}

C++: #include<cstdio>
#include<cstring>
using namespace std;
int main(void)
{
	int a,b,x,cnt,len;
	char y[10000];
	while(scanf("%d %d",&a,&b)!=EOF){
		x=a+b;
		cnt=0;
		while(x>0){
			x=x/10;
			cnt++;
		}
		printf("%d\n",cnt);
		
	}
	return 0;
}

C++: #include<stdio.h>

main(void){
    int a[3],b[3],c[3];
    
    scanf("%d %d", &a[0], &a[1]);
    scanf("%d %d", &b[0], &b[1]);
    scanf("%d %d", &c[0], &c[1]);
    
    a[0] = a[0] + a[1];
    b[0] = b[0] + b[1];
    c[0] = c[0] + c[1];
    
    for( a[3] = 0; a[0] > 1; a[3]++){
        a[0] = a[0] / 10;
    }
    for( b[3] = 0; b[0] > 1; b[3]++){
        b[0] = b[0] / 10;
    }
    for( c[3] = 0; c[0] > 1; c[3]++){
        c[0] = c[0] / 10;
    }    
    printf("%d\n%d\n%d\n", a[3], b[3], c[3]);

    return 0;
}

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

int main()
{
	string strNumber;
	long long int iNumberA=0,iNumberB,iLength[256]={0},i=0;
	
	while( cin >> iNumberA ){
		cin >> iNumberB;

		strNumber = to_string( iNumberA+iNumberB );

		iLength[i] = strNumber.length();
		i++;
	}

	for( int j=0;j<i;j++ ){
		cout << iLength[j] << endl;
	}

	return 0;
}

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

int main(void){
	
	int a[200], b[200], i;
	string str = "";
	ostringstream ostr;
	
	for(i=0; (cin >> a[i]) != NULL; i++){
		cin >> b[i];
	  ostr << a[i] + b[i];
		str = ostr.str();
		cout << str.length() << endl;
	}
		
	return 0;
}