Problem:
Score : 400 points

Problem Statement

Given is a positive integer N.

Find the number of pairs (A, B) of positive integers not greater than N that satisfy the following condition:

When A and B are written in base ten without leading zeros, the last digit of A is equal to the first digit of B, and the first digit of A is equal to the last digit of B.

Constraints

1 \leq N \leq 2 \times 10^5

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer.

Sample Input 1

25

Sample Output 1

17

The following 17 pairs satisfy the condition: (1,1), (1,11), (2,2), (2,22), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8), (9,9), (11,1), (11,11), (12,21), (21,12), (22,2), and (22,22).

Sample Input 2

1

Sample Output 2

1

Sample Input 3

100

Sample Output 3

108

Sample Input 4

2020

Sample Output 4

40812

Sample Input 5

200000

Sample Output 5

400000008

Solution in Fortran (gfortran v4.8.4) (judge verdict: Accepted)

program ddd
implicit none

integer :: n, i, p, q, r, x, y, res, chk, co
integer,dimension(99) :: t
character(10) :: c

t = 0
read*, n


if(n<10) then
print*, n
return
end if

do i = 10, n

write(c,'(i10)') i

c = adjustl(c)
r = len_trim(c)
read(c(1:1),*) x
read(c(r:r),*) y
p = max(x,y)
q = min(x,y)

if (q==0) cycle
t(10*x+y) = t(10*x+y) + 1

end do

chk = 0
res = 9
do i = 1, 9
co = 11*i
if (t(co)>0) then
t(co) = t(co) + 1
chk = chk + 1
res = res + t(co)**2
end if
end do

do i = 12, 99

if (t(i)==0) cycle
x = int(i*0.1)
y = i - 10*x

if (y==0) cycle
if (mod(i,11)==0) cycle

p = t((10*x) + y)
q = t((10*y) + x)
res = res + p*q
end do

print*, res - chk

end program