// Arup Guha
// 2/26/2024
// Solution to 2024 February Bronze USACO Problem: Maximizing Productivity

import java.util.*;
import java.io.*;

public class productive {

	public static void main(String[] args) throws Exception {
	
		BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer tok = new StringTokenizer(stdin.readLine());
		int n = Integer.parseInt(tok.nextToken());
		int q = Integer.parseInt(tok.nextToken());
		
		// Will store time left...
		int[] tLeft = new int[n];
		tok = new StringTokenizer(stdin.readLine());
		for (int i=0; i<n; i++)
			tLeft[i] = Integer.parseInt(tok.nextToken());
			
		// Sub out offsets...
		tok = new StringTokenizer(stdin.readLine());
		for (int i=0; i<n; i++)
			tLeft[i] -= Integer.parseInt(tok.nextToken());
			
		// Sort it!
		Arrays.sort(tLeft);
		
		// Process queries.
		StringBuffer sb = new StringBuffer();
		for (int i=0; i<q; i++) {
		
			tok = new StringTokenizer(stdin.readLine());
			int minReq = Integer.parseInt(tok.nextToken());
			int sleep = Integer.parseInt(tok.nextToken());
			
			// Returns the number of items in the sorted array greater than sleep.
			int numBig = binsearch(tLeft, sleep);

			// Add answer accordingly.
			if (numBig >= minReq)
				sb.append("YES\n");
			else
				sb.append("NO\n");
		}
		
		// Ta da!
		System.out.print(sb);
	}
	
	// Returns # of values above above.
	public static int binsearch(int[] arr, int above) {
		
		if (arr[arr.length-1] <= above) return 0;
		
		int low = 0, high = arr.length-1;
		while (low < high) {
			
			int mid = (low+high)/2;
			
			// Smallest index w/a number > above is no more than mid.
			if (arr[mid] > above)
				high = mid;
			
			// Has to be at least mid+1...
			else
				low = mid+1;
		}
		
		// # of values > above is this.
		return arr.length-low;
	}
}