6159: Polo the Penguin and Segments

内存限制:256 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:0 通过:0

题目描述

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