        // parameter "input" gets all data
        function Main(input) {
        	// the first line is assigned to input[0], the second line is assigned to input[1] similarly.
        	input = input.split("\n");
        	text = input[0].split(" ");
        	
         
          	let powOfTen = 1;
    	let map = new Map();
    	let mod = 2019;
    	let ans = 0;
    	let suf = 0;
    	map.set(0, 1);
    	for (let i = text.length -1; i>=0; i--) {
    		suf = (suf + parseInt(text[i], 10) * powOfTen) % mod;
    		powOfTen = 10 * powOfTen % mod;
    		let mapTmp = map.get(suf);
    		ans += (typeof mapTmp !== 'undefined') ? mapTmp : 0;
    		
    		if (typeof mapTmp !== 'undefined') {
    			map.set(suf, mapTmp++);
    		} else {
    			map.set(suf, 1);
    		}
    	}
     
          
        	//output
        	console.log('%d',ans);
        }
        // Don't edit this line!
        Main(require("fs").readFileSync("/dev/stdin", "utf8"));