public int calcAlignmentScore() {
		// Initialize
		for (int i = 0; i <= a.length; i++)
			score[i][0] = 0;

		for (int j = 0; j <= b.length; j++)
			score[0][j] = 0;

		// Calculate
		for (int i = 1; i <= a.length; i++)
			for (int j = 1; j <= b.length; j++) {
				int match = score[i - 1][j - 1] + simmilarity(i, j);
				int del = score[i - 1][j] + scoreGap;
				int ins = score[i][j - 1] + scoreGap;
				int s = Math.max(match, Math.max(del, ins));
				score[i][j] = s;
			}
		return bestScore();
	}