// Arup Guha
// 7/14/2012
// Solution to 1993 UCF HS Contest Problem: Interesting Intersections.
// Note: This is the problem that killed me in the real contest back in '93.
//       I was stuck on it for 2 1/2 hours back then and never got it.

import java.util.*;
import java.io.*;

public class segment {

	public static void main(String[] args) throws Exception {

		Scanner stdin = new Scanner(new File("segment.in"));

        // Go through each case.
		while (stdin.hasNext()) {

            // Read in our circle.
			double[] c = new double[2];
			double r;
			c[0] = stdin.nextDouble();
			c[1] = stdin.nextDouble();
			r = stdin.nextDouble();

            // And our segment.
			double[] pt1 = new double[2];
			double[] pt2 = new double[2];
			pt1[0] = stdin.nextDouble();
			pt1[1] = stdin.nextDouble();
			pt2[0] = stdin.nextDouble();
			pt2[1] = stdin.nextDouble();

            // Segment is entirely inside of the circle.
			if (dist(c, pt1) < r && dist(c, pt2) < r)
				System.out.println("The line segment does not intersect the circle.");

			// Segment starts in the circle and goes outside of it, so it crosses.
			else if (! (dist(c, pt1) > r && dist(c, pt2) > r))
				System.out.println("The line segment intersects the circle.");

            // Toughest case - neither end point is in the circle.
			else {

                // Do regular intersection code.
				if (cross(c, r, pt1, pt2))
					System.out.println("The line segment intersects the circle.");
				else
					System.out.println("The line segment does not intersect the circle.");

			}
		}
	}

    // Returns the distance between pt1 and pt2.
	public static double dist(double[] pt1, double[] pt2) {
		double sum = 0;
		for (int i=0; i<pt1.length; i++)
			sum = sum + Math.pow(pt2[i] - pt1[i], 2);
		return Math.sqrt(sum);
	}

    // Returns true iff the segment crosses the circle.
	public static boolean cross(double[] c, double r, double[] pt1, double[] pt2) {

        // Solve system of equations for lambda value for closest point to center on line.
		double det = (pt2[0] - pt1[0])*(pt2[0] - pt1[0])+(pt2[1] - pt1[1])*(pt2[1] - pt1[1]);
		double num =  (c[0]-pt1[0])*(pt2[0] - pt1[0]) + (c[1] - pt1[1])*(pt2[1] - pt1[1]);

		double lambda = num/det;

        // Line is on one side or other of circle, no intersection.
		if (lambda < 0 || lambda > 1) return false;

        // Get the distance from the line to the center, which is achieved on the segment.
		double[] close = new double[2];
		close[0] = pt1[0] + lambda*(pt2[0] - pt1[0]);
		close[1] = pt1[1] + lambda*(pt2[1] - pt1[1]);

        // This distance is what matters.
		if (dist(close, c) <= r+1e-10)
			return true;
		return false;

	}
}
