Problem:
Score : 100 points

Problem Statement

AtCoDeer the deer recently bought three paint cans.
The color of the one he bought two days ago is a, the color of the one he bought yesterday is b, and the color of the one he bought today is c.
Here, the color of each paint can is represented by an integer between 1 and 100, inclusive.

Since he is forgetful, he might have bought more than one paint can in the same color.
Count the number of different kinds of colors of these paint cans and tell him.

Constraints

1≦a,b,c≦100

Input

The input is given from Standard Input in the following format:

a b c

Output

Print the number of different kinds of colors of the paint cans.

Sample Input 1

3 1 4

Sample Output 1

3

Three different colors: 1, 3, and 4.

Sample Input 2

3 3 33

Sample Output 2

2

Two different colors: 3 and 33.

Solution in JavaScript (node.js v5.12) (judge verdict: Runtime Error)

function Main(input) {
  input = input.split("\n");
  var n = parseInt(input[0]);
  t = new Array(n).fill(0);
  a = new Array(n).fill(0);
  for(i=0;i<n;i++){
      t[i]=UInt64(parseInt(input[i+1].split(" ")[0]));
      a[i]=UInt64(parseInt(input[i+1].split(" ")[1]));
  }
  var tvote=UInt64(t[0]);
  var avote=UInt64(a[0]);
  
  for(i=1;i<n;i++){
      var x=UInt64(Math.ceil(tvote/t[i]));
      var y=x.multiply(a[i]);
      if(UInt64.compare(y,avote)==1){
          var t1=UInt64(t[i]);
          var t2=UInt64(Math.ceil(tvote/t[i]));
          tvote=t2.multiply(t1);
          avote=y;
      }else{
          var t1=UInt64(t[i]);
          var x2=UInt64(Math.ceil(avote/a[i]));
          tvote=x2.multiply(t1);
          var x3=UInt64(Math.ceil(avote/a[i]));
          var y2=UInt64(a[i]);
          avote=x3.multiply(y2);
      }
  }
  var ans=UInt64(0);
  ans.set(avote)
  ans.add(tvote);
  console.log('%s', ans.toString());
}
function UInt64(value) {
    var uint64 = Object.create(UInt64.prototype);
    uint64._wordArray = new Array(4);
  
    uint64.set(value);
  
    return uint64;
  }
  
  UInt64.compare = function(a, b) {
    for (var i = a._wordArray.length; i >= 0; i--) {
        if (a._wordArray[i] > b._wordArray[i]) {
            return 1;
        }
        else if (a._wordArray[i] < b._wordArray[i]) {
            return -1;
        }
        else {
        }
    }
    return 0;
  };
  
  UInt64.prototype.set = function(value) {
    var div = 0;
  
    if (UInt64.prototype.isPrototypeOf(value)) {
        for (var i = 0; i < this._wordArray.length; i++) {
            this._wordArray[i] = value._wordArray[i];
        }
    }
    else if (typeof value == 'number') {
        div = 1;
        for (var i = 0; i < this._wordArray.length; i++) {
            this._wordArray[i] = (Math.floor(value / div) & 0xFFFF);
            div *= 0x10000;
        }
    }
    else {
        for (var i = 0; i < this._wordArray.length; i++) {
            this._wordArray[i] = 0;
        }
    }
  };
  
  UInt64.prototype.add = function(value) {
    var prevCarry = 0;
    var carry = 0;
  
    for (var i = 0; i < this._wordArray.length; i++) {
        carry = (((this._wordArray[i] + value._wordArray[i] + prevCarry) & 0xFFFF0000) >>> 16);
        this._wordArray[i] = ((this._wordArray[i] + value._wordArray[i] + prevCarry) & 0xFFFF);
        prevCarry = carry;
    }
  
    return this;
  };
  
  UInt64.prototype.multiply = function(value) {
    var prevCarry = 0;
    var carry = 0;
    var prod = UInt64(0);
  
    for (var i = 0; i < this._wordArray.length; i++) {
        prevCarry = 0;
        for (var j = 0; j < value._wordArray.length; j++) {
            if (i + j >= prod._wordArray.length) {
                break;
            }
  
            carry = (((this._wordArray[i] * value._wordArray[j] + prevCarry + prod._wordArray[i + j]) & 0xFFFF0000) >>> 16);
            prod._wordArray[i + j] = ((this._wordArray[i] * value._wordArray[j] + prevCarry + prod._wordArray[i + j]) & 0xFFFF);
            prevCarry = carry;
        }
    }
  
    this.set(prod);
  
    return this;
  };
  
  UInt64.prototype.isZero = function() {
    var ret = true;
  
    for (var i = 0; i < this._wordArray.length; i++) {
        if (this._wordArray[i] > 0) {
            ret = false;
            break;
        }
    }
  
    return ret;
  };
  
  UInt64.prototype.toString = function() {
    var work = UInt64(this);
    var prevMod = 0;
    var mod = 0;
    var str = '';
  
    if (work.isZero()) {
        str = '0';
    }
    else {
        while (!work.isZero()) {
            mod = 0;
            prevMod = 0;
            for (var i = work._wordArray.length - 1; i >= 0; i--) {
                mod = (work._wordArray[i] + prevMod) % 10;
                work._wordArray[i] = Math.floor((work._wordArray[i] + prevMod) / 10);
                prevMod = mod << 16;
            }
  
            str = String.fromCharCode('0'.charCodeAt() + mod) + str;
        }
    }
  
    return str;
  };
Main(require("fs").readFileSync("/dev/stdin", "utf8"));