Problem3509--Polo the Penguin and Segments

3509: Polo the Penguin and Segments

[Creator : ]
Time Limit : 2.000 sec  Memory Limit : 256 MiB

Description

time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Little penguin Polo adores integer segments, that is, pairs of integers [l;r] (lr).

He has a set that consists of n integer segments: [l1;r1],[l2;r2],...,[ln;rn]. We know that no two segments of this set intersect. In one move Polo can either widen any segment of the set 1 unit to the left or 1 unit to the right, that is transform [l;r] to either segment [l-1;r], or to segment [l;r+1].

The value of a set of segments that consists of n segments [l1;r1],[l2;r2],...,[ln;rn] is the number of integers x, such that there is integer j, for which the following inequality holds, ljxrj.

Find the minimum number of moves needed to make the value of the set of Polo's segments divisible by k.

Input

The first line contains two integers n and k (1≤n,k≤105). Each of the following n lines contain a segment as a pair of integers li and ri (-105liri≤105), separated by a space.

It is guaranteed that no two segments intersect. In other words, for any two integers i,j (1≤i<jn) the following inequality holds, min(ri,rj)<max(li,lj).

Output

In a single line print a single integer − the answer to the problem.

Examples
Input
2 3
1 2
3 4
Output
2
Input
3 7
1 2
3 3
4 7
Output
0

Source/Category