#include <iostream>

/*50 以下の正の整数 n を入力し、0 〜 9 の範囲の整数 a,b,c,d の組で
a+b+c+d=n
を満たすものの組み合わせ数を出力するプログラムを作成して下さい。
例えば、n が 35 のとき、(a,b,c,d) の組み合わせは (8,9,9,9)、(9,8,9,9)、(9,9,8,9)、(9,9,9,8) の 4 通りとなります。*/

/*input*/
/*複数のデータセットが与えられます。
各データセットに n (1 ≤ n ≤ 50) が１行に与えられます。
入力の最後まで処理して下さい。データセットの数は 50 を超えません。*/

/*output*/
/*各データセットごとに、a,b,c,d の組み合わせ個数を１行に出力して下さい。*/


int combinationCount(int, int);
bool inputAndJadgeEOF(int& n);

int main(){

	int n;  //入力される正の整数
	int life = 4;  //組み合わせる数字の数

	while (inputAndJadgeEOF(n)){
		std::cout << combinationCount(n, life) << std::endl;
	}
}

//組み合わせの個数を返す関数
//入力:n 数字の組み合わせで表現する数
//入力:life 組み合わせに使える数字の個数
//出力:組み合わせの数
int combinationCount(int n, int life){

	if (static_cast<double>(n) / life > 9){
		return 0;
	}

	if (n < 0){  //nが0以下なら表現不可
		return 0;
	}
	if (life == 1){  //残りの数字が一つなら
		if (n < 10 && n > -1){  //0~9の範囲内なら、組み合わせが一つできる
			return 1;
		}
		else{  //0~9の範囲外なら表現不可
			return 0;
		}
	}

	int count = 0; //組み合わせの総数 
	for (int i = 0; i <= 9; i++){  //1~9までの数字で調査
		count += combinationCount(n - i, life - 1);  //一つの数字を固定した場合の、組み合わせの総数
	}
	return count;
}

bool inputAndJadgeEOF(int& n){
	if (std::cin >> n){
		return true;
	}
	else{
		return false;
	}
}
