Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

//Sliceconvtoi ...
func Sliceconvtoi() []int {
	strs := strings.Split(sc.Text(), " ")

	var ints []int
	var x int

	for _, s := range strs {
		x, _ = strconv.Atoi(s)
		ints = append(ints, x)
	}

	return ints
}

func main() {

	for sc.Scan() {
		i := Sliceconvtoi()
		fmt.Println(i[0] + i[1])
	}

}

C++: #include <set>
#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#define REP(i,n) for(int i=0; i<(int)(n); i++)

typedef long long ll;

using namespace std;

inline int decode(ll data, int pos){
  return (data >> (pos * 4)) & 0xf;
}

inline ll encode(int data, int pos){
  return ((ll)data) << (pos * 4);
}

int distof(ll data, int n){
  int tmp[10] = { 0 };
  REP(i,n) tmp[decode(data, i)] = 1;
  int ret = 0; REP(i,9) ret += tmp[i + 1];
  return ret;
}

struct Data{
  ll data;
  int cnt;
  int dist;
  int n;
  Data(ll d, int c, int nn) : data(d), cnt(c), n(nn){
    dist = distof(data, n) + cnt;
  }
};

bool operator < (const Data &lhs, const Data &rhs){
  if(lhs.data != rhs.data) return lhs.dist > rhs.dist;
  return lhs.cnt > rhs.cnt;
}

int main(){
  int n;
  while(cin >> n, n){
    string s1, s2;
    ll start = 0;
    vector<int> v;
    cin >> s1 >> s2;
    REP(i,n){
      int c1 = s1[i];
      int c2 = s2[i];
      v.push_back((c1 + 10 - c2) % 10);
    }
    v.erase(unique(v.begin(), v.end()), v.end());
    n = v.size();
    REP(i,n) start |= encode(v[i], i);

    priority_queue<Data> pq;
    set<ll> memo;
    pq.push(Data(start, 0, n));

    while(pq.size()){
      Data d  = pq.top(); pq.pop();
      ll data  = d.data;
      int cnt  = d.cnt;
      int dist = d.dist;
      int nn   = d.n;
      vector<int> tmp(nn); REP(i,nn) tmp[i] = decode(data, i);
      tmp.erase(unique(tmp.begin(), tmp.end()), tmp.end());
      nn = tmp.size();

      if(memo.count(data)) continue;
      memo.insert(data);

      // REP(i,nn) printf("%d ", tmp[i]); printf(" : %d\n", cnt);

      {
        int t[10] = {0}; REP(i,nn) t[tmp[i]]++;
        bool ok = true;
        REP(i,9) if(t[i+1] > 1) ok = false;
        if(ok){
          int ans = cnt;
          REP(i,9) ans += t[i + 1];
          printf("%d\n", ans);
          break;
        }
      }

      if(data == 0){
        printf("%d\n", cnt);
        break;
      }

      REP(i, nn) if(tmp[i]) REP(j, i + 1) if(tmp[j]){
        bool ok = true;
        for(int k = j + 1; k < i; k++)
          if(tmp[k] == 0) ok = false;
        if(!ok) continue;

        REP(k, 9){
          ll next = 0;
          REP(l, nn){
            if(j <= l && l <= i){
              next |= encode((tmp[l] + k + 1) % 10, l);
            }else{
              next |= encode(tmp[l], l);
            }
          }
          if(next == 0){
            printf("%d\n", cnt + 1);
            goto end;
          }
          if(cnt + 1 + distof(next, nn) >= n) continue;
          if(!memo.count(next)){
            pq.push(Data(next, cnt + 1, nn));
          }
        }
      }
    }
  end:;
  }
  return 0;
}

C++: #include<stdio.h>

int main(){
    int a, b;
    while( scanf("%d %d", &a, &b) != EOF ){
        printf("%d\n", a + b);
    }
    return 0;
}

C++: #include<cstdio>

using namespace std;

int main()
{
	int a, b;
	while (scanf("%d %d", &a, &b) != EOF){
		printf("%d\n", a + b);
	}
}

C++: #include <iostream>
int a,b;
int main(){
while(std::cin>>a>>b){
int c=0;
for(int i=0;i<6e6;i++)c++;
std::cout<<a+b+c/1e9<<std::endl;
}
}

C++: #include<iostream>
#include<math.h>
#include <string>
#include <stack>
#include<stdio.h>
#include <queue> 
#include <functional>
#define rep(i,n) for (int i=0; i < (int)(n); i++)


using namespace std;

int main(){
	
	stack<int> st; // スタックを宣言＋初期化
	
	int a,b,c,d,e,num;
	int i,j,k;
	int arr[100];
	int arr2[100][100];
	char crr[100];
	char crr2[100][100];
	string str;
	stack<int> istk; // 整数値を格納するスタックを宣言
    stack<string> sstk; // 文字列を格納するスタックを宣言	
	queue<int> ique; // 整数値を格納するキューを宣言
    queue<string> sque; // 文字列を格納するキューを宣言

	while(scanf("%d %d" ,&a , &num) == 2){
	

	
	
	cout << a+num << endl;
	
	}
		
	return 0;
		
}

C++: /*
 * $File: p1000.cpp
 * $Author: Wayne <tletletle@163.com>
 *
 * Task:
 *   Compute A + B.
 * 
 * Solution:
 *   Straight forward.
 *   Remember to process to EOF.
 */

#include <cstdio>

int main() {
	for (int a, b; scanf("%d%d", &a, &b) != EOF; )
		printf("%d\n", a + b);
	return 0;
}

C++: int a,b;main(){for(;~scanf("%d%d",&a,&b);printf("%d\n",a+b));}

C++: #include <iostream>

using namespace std;

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

C++: import java.io.BufferedReader;
import java.io.InputStreamReader;

class ABProblem{
	public static void main(String args[]){
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input_str;
		try{
			while((input_str = br.readLine()) != null){
				String[] input_strs = input_str.split(" ");
				int a = Integer.parseInt(input_strs[0]);
				int b = Integer.parseInt(input_strs[1]);
				System.out.println(a + b);
			}
		}catch(Exception e){
			//System.err.println(e);
		}
	}
}

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

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

C++: 
#include<stdio.h>

int main(){
    int a, b;
    while( scanf("%d %d", &a, &b) != EOF ){
        printf("%d\n", a + b);
    }
    return 0;
}

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

C++: #include <iostream>
int a,b;
int main(){
while(std::cin>>a>>b){
int c=0;
for(long long i=0;i<1000000000000000000LL;i++)c++;
std::cout<<a+b+(int)c/9e18<<std::endl;
}
}