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 <cstdio>
#include <iostream>

using namespace std;

int main(void)
{

	for(int i = 0; i < 3; i++){
		int a, b;
		scanf("%d %d", &a, &b);
		a+=b;
		int d = 1;
		while(a > 0){
			a /= 10;
			d++;
		}
		cout << d << endl;
	}

	return 0;
}

C++: #include<iostream>
#include<cmath>
using namespace std;
int main(){
  int a,b;
  while(cin >>a>>b)cout<<(int)log10(a+b)+1<<endl;
  return 0;
}

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

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

using namespace std;

int main(){
	int num1,num2;
	char str[10];
	int i;

while(1){

	// 値の入力
	cin >> num1 >> num2;

	//整形
	sprintf(str,"%d\0",(num1 + num2));

	// 文字数計測
	for(i=0;str[i] != '\0';i++){
	}

	// 文字数表示
	cout << i << endl;

}

	return 0;
}

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

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

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

#define GET_MACRO(a, b, c, d, NAME, ...) NAME
#define REP(...) GET_MACRO(__VA_ARGS__, REP4, REP3, REP2)(__VA_ARGS__)
#define REP2(i, a) REP3(i, 0, a)
#define REP3(i, a, b) REP4(i, a, b, 1)
#define REP4(i, a, b, s) for (int i = (a); i < (int)(b); i += (s))
#define REPR(...) GET_MACRO(__VA_ARGS__, REPR4, REPR3, REPR2)(__VA_ARGS__)
#define REPR2(i, a) REPR3(i, 0, a)
#define REPR3(i, a, b) REPR4(i, a, b, 1)
#define REPR4(i, a, b, s) for (int i = (b)-1; i >= (int)(a); i -= (s))
#define ALL(c) (c).begin(), (c).end()
#define DUMP(x) (std::cerr << #x << ':' << ' ' << x << '\n')
#define TMPL_T template <typename T>
#define TMPL_TU template <typename T, typename U>
#define mut auto
#define let const auto

using Int = long long;
// clang-format off
namespace extio {
std::string delimiter=" ",pdelimiter=" ";
std::string bracket_b="",bracket_e="";
void chdelim(const std::string&s){delimiter=s;}
void chpdelim(const std::string&s){pdelimiter=s;}
void chbracket(const std::string&b,const std::string&e){bracket_b=b,bracket_e=e;}
TMPL_T  void pcont(std::ostream&os,const T&x){int c=0;for(const auto&a:x){if(c++)os<<delimiter;os<<a;}}
TMPL_TU void ppair(std::ostream&os,const std::pair<T,U>&p){os<<bracket_b<<p.first<<pdelimiter<<p.second<<bracket_e;}
}
namespace std {
TMPL_T ostream& operator<<(ostream&os,const vector<T>&x){extio::pcont(os,x);return os;}
TMPL_T ostream& operator<<(ostream&os,const set<T>&x){extio::pcont(os,x);return os;}
TMPL_T ostream& operator<<(ostream&os,const multiset<T>&x){extio::pcont(os,x);return os;}
TMPL_T ostream& operator<<(ostream&os,const deque<T>&x){extio::pcont(os,x);return os;}
TMPL_TU ostream& operator<<(ostream&os,const map<T,U>&x){extio::pcont(os,x);return os;}
TMPL_TU ostream& operator<<(ostream&os,const pair<T,U>&x){extio::ppair(os,x);return os;}
}
TMPL_TU inline bool chmax(T&x,U a){return x<a&&(x=a,1);}
TMPL_TU inline bool chmin(T&x,U a){return a<x&&(x=a,1);}

inline int in(){int x;std::cin>>x;return x;}

struct Initializer_ {
  Initializer_(){
    std::cin.tie(0);
    std::ios::sync_with_stdio(0);
    std::cout << std::setprecision(10);
    std::cerr << std::setprecision(10);
  }
} precalc;
// clang-format on
// }}}

using namespace std;

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

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

int main()
{
	int a, b, sum, ans;
	cin >> a >> b;
	sum = a + b;
	ans = (int)log10 ((double)sum)+ 1;
	cout << ans << endl;
	
	return 0;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="7767557";
	
	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 <cstdio>
#include <cmath>

using namespace std;

int main()
{
	int a;
	int b;

	while (!feof(stdin)) {
		scanf("%d%d", &a, &b);
		if (a + b == 0) printf("%d\n", 1);
		else printf("%d\n", (int)log10(a + b) + 1);
	}

		return (0);
	
}

C++: #include <iostream>

int main(int argc, const char * argv[]) {
    
    std::string a, b ;
    
    
    while ( std::cin >> a >> b )
        std::cout << (a+b).length() << "\n";
    
    return 0;
}

C++: #include <iostream>

using namespace std;

int main(){
	int a,b;
	while(eof){
	cin>>a>>b;
int c=0;
int n;
n=a+b;
while (n>0){
	c++;
	n=n/10;
}

cout<<c<<endl;
}
}

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

using namespace std;

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

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

int main()
{
	int d, a, b, s;

	d = 1;
	
	
	while(cin >> a >> b){
		
		s = 0;
		

		a += b;

		while(a>0){
			a /= 10;
			s++;
		}

		cout << s << endl;
		d++;

	}


	

	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
int A,B,C,i=10,test=1;
cin >> A >> B;
C = A + B;
if(C<10){
cout << 1 << endl;
}
else{
while(test!=0){
i = i * 10;
test++;
if(C<i){
cout << test << endl;
test = 0;
}
}
}
}

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

int main()
{
  int n1, n2;
  int ans = 0;
  cin >> n1 >> n2;
  int sum = n1 + n2;
  while(sum > 0){
    sum /= 10;
    ans++;
  }
  cout << ans << endl;
}

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

int main(void){
	while(cin.eof()){
		int a, b, d=0, s; //d:digit s:sum
		cin >> a >> b;
		s = a + b;
		while(s>=1){
			s = s/10;
			d++;
		}
		cout << d << endl;
	}
	return 0;
}

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

int main(){
	int a,b,c;
	int ans;
	
	string cunning="7767555555555555555555555555555555555555545555555555555555555555555555555555555555555555555555555555";
	
	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 <cmath>

using namespace std;

void solve() {
	int a, b;
	while (cin >> a) {
		cin >> b;
		cout << floor(1 + log10(a + b)) << endl;
	}
}


int main() {
	solve();
	return 0;
}

C++: #include<iostream>
#include <cstdio>
#include<functional>
#include<algorithm>

using namespace std;

int main() {
    int a[10];
	for(int i=0;i<=9;i++) std::cin>>a[i];
 std::sort(a, a + 10, greater<int>());            // ツソツーツトツつキツづゥツ。
    for (int j = 0; j < 3; j++) {
        std::cout << a[j] << ", ";    // ツ個仰嘉環づーツプツδ環δ督トツつオツづづ敖づゥツ。
    }
    return 0;
}

C++: #include<iostream>

int main(){
int a, b, c = 0, d = 0;
std::cin >> a >> b;
for(){
        if(a < 10){
                a = a % 10;
                c++;
                }else
                break;
        }
for(){
        if(b < 10){
                b = b % 10;
                d++;
                }else
                break;
        }
std::cout << c + d;
}