Problem:
Score : 400 points

Problem Statement

Given is a string S consisting of digits from 1 through 9.

Find the number of pairs of integers (i,j) (1 ≤ i ≤ j ≤ |S|) that satisfy the following condition:

Condition: In base ten, the i-th through j-th characters of S form an integer that is a multiple of 2019.

Constraints

1 ≤ |S| ≤ 200000

S is a string consisting of digits from 1 through 9.

Input

Input is given from Standard Input in the following format:

S

Output

Print the number of pairs of integers (i,j) (1 ≤ i ≤ j ≤ |S|) that satisfy the condition.

Sample Input 1

1817181712114

Sample Output 1

3

Three pairs - (1,5), (5,9), and (9,13) - satisfy the condition.

Sample Input 2

14282668646

Sample Output 2

2

Sample Input 3

2119

Sample Output 3

0

No pairs satisfy the condition.

Solution in Perl (5.26.1) (judge verdict: Wrong Answer)

#! /usr/bin/perl

use strict;
use warnings;

my $in = <>;
chomp($in);
my $len = length($in);

# (1,5),(5,9),(9,13)

my %map;
$map{0} = 1;
for(my $i = 0;$i < $len;$i ++){
    #    print substr($in, $i), "\n";
    my $mod = substr($in, $i) % 2019;
#    print "$i $mod\n";
    $map{$mod} ||= 0;
    $map{$mod} ++;
}
#print "\n\n";

my $n = 0;
foreach my $i (keys %map) {
    $n ++ if 1 < $map{$i};
}
print "$n\n";